教材学习内容总结
第十四章
NIO使用频道(channel)来衔接数据节点,对数据区的标记提供了clear(),rewind(),flip(),compact()等高级操作。
想要取得channel的操作对象,可以使用channels类。
Buffer的直接子类们都有一个allocate()静态方法,可以让你指定Buffer容量。
Buffer的容量大小可以使用capacity()方法取得。
在以前,并没有标准方式取得不同文件系统所支持的不同属性,在JDK7中,可以通过BasicFileAttributes,DosFileAttributes,PosixFileAttributes,可以针对不同的文件系统取得支持的属性信息。
NIO2文件系统API提供一组标准接口与类。
第十五章
日志API简介
java.util.logging包提供了日志功能相关类与接口,使用日志的起点是logger类,Logger类的构造函数标示为protected,不是java.util.logging同包的类不能直接以new创建,不许使用Logger的静态方法。
指定日志层级
Logger与Handler默认都会先依据Level过滤信息,如果没有做任何修改,取得的Logger实例之父Logger组态就是Logger.GLOBAL-LOGGER-NAME空间名称Logger实例的组态。
在没有任何组态设定的情况下,默认取得的Logger实例,层级必须大于或等于Logger.GLOBAL-LOGGER-NAME名称空间logger实例设定的Level.INFO,才可能输出信息。
使用Handler与Formatter
标准API提供了几个操作类:其中MemoryHandler不会格式化日志信息,信息会暂存于内存缓冲区,直至超过大小才将信息输出至指定的目标Handler。StreamHandler可自行指定信息输出时使用的OutputStream。ConsoleHandler创建时,会自动指定OutputStream为System.err。SocketHandler创建时可以指定主机位置与端口。
在建立FileHandler指定模式字符串时,可以使用“%h”来表示用户的根目录,还可以使用“%t”取得系统暂存目录,或者使用“%g”自动为文档编号。
自定义Handler、Formatter与Filter
在职责分配上,Handler是负责输出,Formatter负责格式化,而信息过滤是交由Filter。
自定义Formatter,可以继承Formatter后操作抽象方法format(),这个方法会传入LogRecord,储存所有日志信息。
使用ResourceBundle
ResourceBundle的静态getBundle()方法会取得一个ResourceBundle的实例,所给定的自变量名称是信息文档的主文件名,getBundle()会自动找到对应的.properties文档,取得ResourceBundle实例后,可以使用getString()指定键来取得。
使用Locale
国际化的三个标准是地区(Locale)信息、资源包(Resource bundle)与基础名称(Base name)。
地区信息的对应类是Locale,在建立Locale实例时,可以指定语言编码与地区编码。
JDK8中,针对大型数组的平行化操作,在Arrays上新增了一些方法。
parallelPrefix()方法可以指定XXXBinaryOperator实例,执行类似Stream的reduce()方法。
parallelSetAll()方法用来对数组进行初始化或全面重新设置每个索引元素。
parallelSort()方法可以将指定的数组分为子数组并以平行化当时分别排序。
学习感悟
感觉我已经跟不上JAVA进度了,之前的没搞懂的内容一堆,唉,抓紧学吧。
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/100 | 1/2 | 20/20 | |
第二周 | 300/500 | 1/2 | 18/38 | |
第三周 | 500/1000 | 1/3 | 22/50 | |
第四周 | 300/1300 | 1/4 | 18/60 | |
第五周 | 200/1500 | 1/5 | 15/75 | |
第六周 | 300/1800 | 1/6 | 15/90 | |
第七周 | 200/2000 | 1/7 | 14/104 | |
第八周 | 100/2100 | 1/8 | 12/116 |