20145337《Java程序设计》第八周学习总结

20145337《Java程序设计》第八周学习总结

教材学习内容总结

15.1日志

15.1.1日志API简介

  • 使用日志的起点是logger类,logger实例的创建有许多要处理的要素,必须使用logger的静态方法getLogger().

  • 通常在哪个类上取得的logger,名称空间就会命名为哪个类的全名,使用getName()就可以取得类全名,输出信息时可以使用静态成员指定信息层级。

  • Logger是起点,必须先通过Logger的Level与Filter过滤,再通过Handler的Level与Filter过滤,格式化信息的动作交给Formatter,输出信息的动作实际上是Handler负者。

  • Logger处理完自己的日志动作后,会向父Logger传播。

15.1.2指定日志层级

  • log时指定的Level实例内含的int值小于Logger设定的Level实例内含的int值,Logger就不会记录信息。

  • 若要显示INFO以后的信息,不仅要将Logger的层级设定为Level.INOF,也得将Handler的层级设定为Level.INFO.

15.1.3使用Handler与Formatter

  • MemoryHandler不会格式化信息,信息会储存在内存缓冲区,直到超过缓冲区大小,才将信息输出至指定目标Handler

  • streamHandle可自行制定信息输出时使用的outputStream,它与子类都会使用指定的Formatter格式信息。

  • 可以使用addHandler()新增Handler实例,使用removeHandler()移除Handler。

  • 建立FileHandler指定模式字符串时,可以使用“%h"来指定用户的根目录,“%g"自动为文档编号,config()是个简便方法,可以直接以Level。CONFIG层级输出信息。

  • 可以继承Handler类,操作抽象方法publish()、flush()与close()方法来定义Handler

  • Handler负者输出,Formatter负者格式化,Filter负者信息过滤。

加入额外过滤条件,可以操作Filter接口。

  • 可以通过logging.properties来设定Logger组态

15.2国际化基础

在不修改应用程序的基础上,根据不同用户采用不同语言。

  • 可以使用ResourceBundle来做信息绑定,将信息移至程序外。

  • 国际化的三个重要概念是地区信息,资源包和基础名称。

  • 地区信息:由语言编码和地区编码组成

  • 资源包:包括特定地区相关信息

  • 代表同一组信息但不同地区的各个资源包会共享相同的继承名称。

使用指定的Local对象取得信息文档。
使用Locale。getDefault()取得的对象取得信息文档。
使用继承名称取得信息文档。

15.3规则表示式

  • 切割字符串可以使用split方法

  • 字面意义的字符

  • 元字符

  • 规则表达式是规则表达式,要写在”“中还要另外考虑。

教材学习中的问题和解决过程

  • 对规则表示式的贪婪、逐步、独吞不是完全理解
  • 对书上495页Arrays新增的ParallelPrefix()方法不是很理解,不明白运行结果为什么是{1,3,6,10,15}
  • 解决过程:编译运行书上的例子,其实觉得“xfooxxxx”那个例子不是很直观,在通过自己的思考,所谓的{1,3,6,10,15}是把传入前一个参数,并相加得到的结果

其他(感悟、思考等,可选)

这周的学习任务不是很重,通过自学第15章,对日志、切割字符和字符串还有取得地区信息有了一定的了解。在规则表示式那个知识点里,需要注意规则表示式是规则表示式,写进“”里是另一回事。几小时前因为电脑自动升级重启没有保存,一早上的成果全部毁于一旦,不过在第二次敲知识点时,对知识的映像更加深刻的理解。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60
第四周 300/1300 2/9 30/90

参考资料

原文地址:https://www.cnblogs.com/5337my/p/5427028.html