20155236 2016-2017-2 《Java程序设计》第八周学习总结
2017-04-15 14:39
369 查看
20155236 2016-2017-2 《Java程序设计》第八周学习总结
教材学习内容总结
通用API
日志1.日志API简介:
java.util.logging包中提供了日志功能相关类与接口,使用日志的起点是Logger类;
2.
Logger类的构造函数标示为
protected,不是
java.util.logging,同包的类不能直接以new创建,要取得
Logger实例,必须使用
Logger的静态方法
getLogger();
3.调用
getLogger()时,必须指定
Logger实例所属名称空间,名称空间以
‘.’作为层级区分,名称空间层级相同的
Logger,其父
Logger组态相同;
代码如下:
package cc.openhome; import java.util.logging.*; public class LoggerDemo{ public static void main(String[] args){ Logger logger = Logger.getLogger(LoggerDemo.class.getName()); logger.log(Level.WARNING,"WARNING 信息"); logger.log(Level.INFO,"INFO 信息"); logger.log(Level.CONFIG,"CONFIG 信息"); logger.log(Level.FINE,"FINE 信息"); } }
4.在没有任何组态设定的情况下,默认取得的Logger实例,层级必须大于或等于Logger.GLOBAL-LOGGER-NAME名称空间logger实例设定的Level.INFO,才可能输出信息。
代码如下:
package cc.openhome; import java.util.logging.*; public class LoggerDemo2{ public static void main(String[] args){ Logger logger = Logger.getLogger(LoggerDemo2.class.getName()); logger.setLevel(Level.FINE); for(Handler handler : logger.getParent().getHandlers()){ handler.setLevel(Level.FINE); } logger.log(Level.WARNING,"WARNING 信息"); logger.log(Level.INFO,"INFO 信息"); logger.log(Level.CONFIG,"CONFIG 信息"); logger.log(Level.FINE,"FINE 信息"); } }
5.标准API提供了几个操作类:其中
MemoryHandler不会格式化日志信息,信息会暂存于内存缓冲区,直至超过大小才将信息输出至指定的目标
Handler。
StreamHandler可自行指定信息输出时使用的
OutputStream。
ConsoleHandler创建时,会自动指定
OutputStream为
System.err。SocketHandler创建时可以指定主机位置与端口。
API增强功能
1.在JDK8中,
String新增了
join()静态方法可以直接指定每个字符串间以逗号分隔进行连接。
2.JDK8中,针对大型数组的平行化操作,在Arrays上新增了
parallelPrefix()、
parallelSetAll()与
parallelSort()方法,
parallelSort()方法。
3.
parallelPrefix()方法,可以指定
×××BinaryOperator实例。
4.
parallelSetAll()方法,可以用来对数组进行初始化或者全面重设每个索引元素。
5.
parallelSort()方法,可以将指定的数组分为子数组并以平行化方式分别排序,然后再进行合并排序。
6.
Stream是JDK8中重要的新特性之一。
Files上有几个静态方法,例如
lines()、
list()、
walk()等方法,对于这类返回
Stream实例的API,主要可适用于需要管线化、惰性操作的场合。
7.如果想对数组进行管线化操作,方法之一是使用
Arrays的
asList()方法返回
List,而后调用
stream()方法取得Stream实例,另一个方法是使用
Arrays的
stream()方法,它可以指定数组后返回
Stream实例。
教材学习中的问题和解决过程
p471LoggerDemo为什么不会输出
Level.CONFIG和
Level.FINE的信息?
Logger的层级必须大于等于父
Logger,才能将信息输出至控制台,
Logger层级默认为
INFO,
Level.CONFIG和
Level.FINE都小于
INFO,所以不会输出
对数组进行管道化操作的方式有哪些?
方法之一是使用
Arrays的
asList()方法返回
List,而后调用
stream()方法取得
Stream实例。另一个方式是使用
Arrays的
stream()方法,它可以指定数组后返回
Stream实例。
代码调试中的问题和解决过程
java.util.regex.Pattern实例是规则表示式在JVM中的代表对象,
Pattern的构造函数被标示为
private,所以你无法用
new创建
Pattern实例,而必须通过
Pattern的静态方法
compile()来取得。
代码托管
上周考试错题总结
-b是以八进制输出。
JDK8中新时间API中,用于度量时间的类:
Duuration,
Period。
UML类图有助于我们查看程序中类的内容和他们之间的关系。
当应用到实例变量时,private可见性修饰符强制执行封装。
结对及互评
学习内容MemoryHandler不会格式化日志信息,信息会暂存于内存缓冲区,直至超过大小才将信息输出至指定的目标
Handler。
StreamHandler可自行指定信息输出时使用的
OutputStream实例,它与子类都会使用指定的
Formatter格式化信息。
ConsoleHandler创建时,会自动指定
OutputStream为
System.err,所以日志信息会显示在控制台。
FileHandler创建时会建立日志输出时使用的
FileOutputStream,文档位置与名称可以使用模式字符串指定。
SocketHandler创建时可以指定主机位置与端口,内部将自动建立网络联机,将日志信息传送至指定的主机。
Logger可以使用
addHandler()新增Handler实例,使用
removeHandler()移除
Handler。
结对照片
点评过的同学博客和代码
2015520520155211
20155226
20155212
20155305
其他(感悟、思考等,可选)
java的核心知识与难点之前都已经学完了,后面的章节全都是介绍一些类的应用。看第一遍教材的时候肯定觉得陌生,难以接受。这是个过程,很正常。之前娄老师说过,java的核心内容是封装、继承、多态那部分知识,确实比较抽象难懂。之后的内容都是介绍各种API的应用,都是活生生的例子,比较具体,如果觉得难那是因为对这部分知识感到陌生,不熟悉。自己首先理清头绪,不懂的基础知识多看几遍书,然后再多敲几遍代码,仔细思考总结,将代码与知识点结合,感觉立马就上来了!要讲究科学的学习方法~不要盲目!!!。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 10/10 | 1/1 | 10/10 | |
第二周 | 100/100 | 2/2 | 19/25 | |
第三周 | 200/278 | 1/3 | 10/26 | |
第四周 | 660/938 | 1/4 | 10/36 | |
第五周 | 1100/2100 | 1/5 | 18/54 | |
第六周 | 740/2840 | 1/6 | 23/77 | |
第七周 | 352/3192 | 2/8 | 20/97 | |
第八周 | 631/3805 | 1/9 | 20/117 |
实际学习时间:20小时
改进情况:自己动手敲了比平时要多的代码,意识到了自主学习的重要性。
参考资料
无0.0相关文章推荐
- 20155238 2016-2017-2 《JAVA程序设计》第八周学习总结
- 2016-2017-2 20155309 南皓芯《java程序设计》第八周学习总结
- 20155213 2016-2017-2 《Java程序设计》第八周学习总结
- 20155201 2016-2017-2 《Java程序设计》第八周学习总结
- 20155330 2016-2017-2 《Java程序设计》第八周学习总结
- 20155319 2016-2017-2 《Java程序设计》第八周学习总结
- 20155220 2016-2017-2 《Java程序设计》第八周学习总结
- 20155209 2016-2017-2 《Java程序设计》第八周学习总结
- 20155306 2016-2017-2 《Java程序设计》第八周学习总结
- 20155225 2016-2017-2 《Java程序设计》第八周学习总结
- 20155211 2016-2017-2 《Java程序设计》第八周学习总结
- 20155236 2016-2017-2 《Java程序设计》第五周学习总结
- 20155236 2016-2017-2 《Java程序设计》第七周学习总结
- 20155236 2016-2017-2 《Java程序设计》第四周学习总结
- 20155302 2016-2017-2 《Java程序设计》第八周学习总结
- 20155313 2016-2017-2 《Java程序设计》第八周学习总结
- 20155320 2016-2017-2《Java程序设计》第八周学习总结
- 20155305乔磊2016-2017-2《Java程序设计》第八周学习总结
- # 20155236 2016-2017-2 《Java程序设计》第二周学习总结
- 20155236 2016-2017-2 《Java程序设计》第一周学习总结