第8周学习总结
20145339顿珠达杰Java第8周学习总结
教材学习内容总结
Logger
java.util.logging包提供了日志功能相关类与接口,使用日志的起点是logger类,Logger类的构造函数标示为protected,不是java.util.logging同包的类不能直接以new创建,必许使用Logger的静态方法;名称空间层级相同的Logger,父Logger组态会相同,每个Logger处理完自己的日志动作后,会向父Logger传播,让父Logger也可以处理日志。
指定日志层级
如果没有做任何修改,取得的Logger实例之父Logger组态,就是Logger.GLOBAL-LOGGER-NAME空间名称Logger实例的组态;在没有任何组态设定的情况下,默认取得的Logger实例,层级必须大于或等于Logger.GLOBAL-LOGGER-NAME名称空间logger实例设定的Level.INFO,才可能输出信息,可以通过setLevel()指定Level实例。
Handler、Formatter、Filter
负责日志输出;MemoryHandler不会格式化日志信息,信息会暂存于内存缓冲区,直至超过大小才将信息输出至指定的目标Handler;StreamHandler可自行指定信息输出时使用的OutputStream;ConsoleHandler,日志信息会显示在控制台;FileHandler ,文档位置与名称可以使用模式字符串指定;SocketHandler ,创建时可以指定主机位置与端口;Handler是负责输出,Formatter负责格式化,而信息过滤是交由Filter。
logging.properties
可以通过logging.properties来设定Logger组态。
ResourceBundle
对于日后可能变动的文字信息,可以考虑将信息移至程序之外,使用ResourceBundle来做信息绑定;.properties文档必须放置在CLASSPATH的路径设定下,文档中撰写的是键/值配对;getBundle()会自动找到对应的.properties文档,取得ResourceBundle实例后,可以使用getString()指定键来取得文档中对应的值。
Locale
国际化的三个标准是地区信息、资源包与基础名称;地区信息代表了特定的地理、政治或文化区,资源包中包括了特定地区的相关信息。
规则表示式
如果想根据某个字符或字符串切割,可以使用 String 的 split() 方法;字母和数字在规则表示式中都是按照字面意义比较的,有些字符之前加上\之后会被当做元字符;元字符在规则表示式中有特殊意义,比较标点时可以在每个符号前加上\;规则表示式中,多个字符可以分归在一起,成为一个字符类,会比较文字中是否有任一个字符符合字符类中某个字符。字符类中可以再有字符类;归类字符的方式之一是将字符放于[]中。“1到5任意数字出现”表示为[1-5];字符类中可以使用^作为字符类元字符,[^]则为反字符类。“a、b、c以外的字符”表示为[^abc];{n}是贪婪量词表示法的一种,表示前面的量词出现n次,会尽可能找出长度最长的符合文字;在贪婪量词表示法后加上?,将会成为逐步量词,会尽可能找出长度最短的符合文字;在贪婪量词表示法后加上+,将会成为独吐量词;使用()来将规则表示式分组。 Pattern、Matche 在程序中使用表示式,必须先针对规则表示式做剖析、验证等动作,确定规则表示式语法无误,对字符串进行比较。
教材学习中的问题和解决过程
api不太看得懂 其他也有一些 平时会多学 赶上去的