20145319 第八周学习总结

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

教材学习内容总结

一 日志

  • 日志API简介:java.util.logging提供了日志功能相关类和接口,使用日志的起点是Logger类,此外如果要取得Logger实例必须使用getLogger(),例如:

      Logger logger=Logger.getLogger("cc.openhome.Main");
    
  • 指定日志层级:Logger实际上是有层级关系的,Logger的信息处理会往父Logger传播,也就是说Logger实例,层级必须大于或者等于Logger_GLOBAL_LOGGER_NAME名称空间Logger实例设定的Level.INFO才可能输出信息。Level.ALL会允许所有信息输出

  • Handler和Formatter: MemoryHandler不会格式化日志信息,信息会暂存于内存缓冲去,直到超过缓冲区大小才将信息输出至指定的目标Handler,如果不想让父Logger的Handler处理日志,可以调用Logger实例的setUseParentHandlers()设定为false

  • 自定义Handler、Formatter和Filter:Handler是负责输出,Formatter是格式化,Filter是信息过滤。Handler有默认的isLoggablb()操作,会依据Level过滤信息

  • 使用logging.properties:除了通过程序,还可以通过logging.properties来设定Logger组态

二 国际化基础

  • 使用ResourceBundle:以后可能变动的文字信息,可以考虑将信息移动到程序之外,然后使用ResourceBundle来绑定,但是要事先准备一个.properties文档,并且放置在CLASSPATH路径之下

  • Locale:Locale信息的对应类为Locale,在建立Locale实例时,可以指定语言编码与地区编码,如Locale locle=new Locale("zh","TW")

三 规则表示式

  • 简介:

    1. 规则表示式一般包括两种字符,字面意义字符和元字符,字母和数字本身是一种字面意义字符,但是在这些字符之前加上了就会变成元字符,如 就是指换行
    2. 多个字符归在一起成为一个字符类,归类字符的方式之一就是放在[]中
    3. 如果想要用户输入格式xxxx-xxxx,可以表示成dddd-dddd,更可以简化成d{4}-d{4}
    4. 可以用来标出边界 边界比较用来表示文字必须符合指定的边界条件,也就是定位点,也可以称为锚点(Anchor)
  • pattern和Matcher:

    1. 通过Pattern的静态方法compile来取得Pattern实例

    2. 取得Pattern实例后,可以使用split()方法将指定字符串进行切割,效果与String的split()方法相似

四 JDK8 API新增功能

  • StringJoiner、Arrays新增API

    1. String.join()、StringJoiner:如果想用诸如逗号之类的符号分割一串字符串,可以直接使用String.join。例如String message=String.join("-",str)
    2. Arrays:新增了parallelPrefix(),parallelSetAll()和paralleSort()
  • Stream相关API:stream的range方法可以产生一个整数范围,java.util.Random类可以用来产生随机数

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

课后习题:B AB ABC AD A

代码调试中的问题和解决过程

代码托管截图:

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

  • 这一周稍作休息之后再来仔细学java感觉还是很有意思的,此外ctf、python之类的也挺有趣的

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 150/150 1/1 20/20
第二周 200/350 1/2 20/40
第三周 300/650 1/3 20/60
第四周 350/1100 1/4 25/85
第五周 200/1300 1/5 20/105
第六周 200/1500 2/7 25/130
第七周 200/1700 2/9 15/145
第八周 200/1900 2/11 8/153

参考资料

原文地址:https://www.cnblogs.com/20145319zk/p/5428878.html