20155306 2016-2017-2 《Java程序设计》第八周学习总结
2017-04-16 14:57
435 查看
20155306 2016-2017-2 《Java程序设计》第八周学习总结
教材学习内容总结
第十五章 通用API
15.1 日志
java.util.loggging包提供了日志功能相关类与接口使用日志的起点是Logger类,Logger类的构造函数表示为protected,不是java.util.logging同包的类不能直接以new创建,取得Logger实例,必须用Logger的静态方法getLogger()
调用getLogger()时必须指定Logger实例所属空间名称,以 . 区分层级,名称空间层级相同的Logger,其父Logger组态相同
类之后接.class,可取得该类的java.lang.class实例,调用其getName()就可以取得类全名
Logger实例的getParent()取得父Logger实例,getlevel()取得设定的Level实例
Logger实例的层级必须大于或等于父Logger的Level
可通过Logger的setLevel()设定层级,可用Level内建几个静态成员来指定
使用intVlue()取得内含int值
log()时指定的Level实例内含的int值小于Logger设定的Level实例内含的int值,Logger就不会记录信息
建立FileHandler指定模式字符串,“%h”表示用户根目录,“%t”取得系统暂存目录,“%g”自动为文档编号
Logger的Config()是个简便方法,可以直接Level.CONFIG层级输出信息,也有severe()、info()等简便方法
15.2 国际化基础
ResourceBundle的静态getBundle()方法会取得一个ResourceBundle实例,给定自变量名称是信息文档的主文件名,取得实例后用getString()指定键取得文档中对应值国际化三个重要概念:地区(Locale)信息、资源包(Resource bundle)与基础名称(Base name)
将Unicode编码表示的.properties转回中文,使用-reverse自变量
15.3 规则表达式
规则表达式基本包括两种字符:字面意义字符与元字符使用matcher()方法指定要比较的字符串,find()方法看是不是有下一个符合字符串,lookingAt()看字符串开头是否符合规则表达式,group()方法返回符合的字符串
replaceAll()方法,将符合规则表达式的部分以指定的字符串替代,replaceFirst()与replaceEnd()分别可取代首个、最后反符合规则表达式部分,start()方法可取得符合字符串的起始索引,end()取得符合字符串最后一个字符后的索引
15.4 JDK8 API增强功能
String上有join()静态方法可以指定每个字符串间以什么间隔paralleSort()方法可以将指定的数组分为子数组并以平行化方式分别排序,然后再进行合并排序
使用Arrays的asList()方法返回List,而后调用stream()方法取得stream实例
使用Arrays的stream()方法,可以指定数组后返回Stream实例
教材学习中的问题和解决过程
问题一:书中代码LoggerDemo为什么不会输出Level.CONFIG和Level.FINE的信息解决过程:通过百度以及看书,发现Logger的层级必须大于等于父Logger,才能将信息输出至控制台,Logger层级默认为INFO,Level.CONFIG和Level.FINE都小于INFO,所以不会输出。
代码调试中的问题和解决过程
问题1:运行书上的 Hello.java代码时,出现如下错误:问题1解决方案:后来仔细翻看了课本,发现自己没有建立 .properties文档,当时在classpath路径下建立之后不知道为什么还是不能运行。
代码托管
(statistics.sh脚本的运行结果截图)上周考试错题总结
1.JDK8中的Lambda表达式有以下好处::【AD】
A .
消除重复性
B .
提高性能
C .
提高安全性
D .
改善可读性
2.JDK8 中新时间API中,用于度量时间的类有(BC)
:
A .
Instant
B .
Duration
C .
Period
D .
LocalDateTime
解析:对于时间计量,新时间与日期API以类Duration来定义;对于年、月、星期、日的日期差
3.An object can be thought of as a blueprint for a set of classes(对象被认为是类集合的蓝图).:
【B】
A . true
B . false
解析:一个类可以被看作是一组对象的蓝图;不是另一种方式。
4.Which of the following objects could contain the information “eastern standard time”?(下面哪些类的对象会包含“东部标准时间”的信息)
(Choose all that apply.)
:【E】
A .
Instant
B .
LocalDate
C .
LocalDateTime
D .
LocalTime
E .
ZonedDateTime
解析:
localxxxx明确排除时区。即时表示时间点,但
总是使用GMT,而不是期望的时区。
5.Given the following, which answers can correctly fill in the blank? (Choose all that apply.)针对下面的代码,()中应填入哪个选项?
LocalDate date = LocalDate.now(); LocalTime time = LocalTime.now(); LocalDateTime dateTime = LocalDateTime.now(); ZoneId zoneId = ZoneId.systemDefault(); ZonedDateTime zonedDateTime = ZonedDateTime.of(dateTime, zoneId); long epochSeconds = 0; Instant instant = ( );
:【F】
A .
Instant.now()
B .
Instant.ofEpochSecond(epochSeconds)
C .
date.toInstant()
D .
dateTime.toInstant()
E .
time.toInstant()
F .
zonedDateTime.toInstant()
解析:选项a正确创建当前的即时。选项b来自
秒到一个瞬间。选择f也是适当的转换。选项c、d和e是
因为源对象不表示时间点,因此不正确。没有时区,Java不知道现在使用什么时刻。
6.What is the output of the following code?(下面代码的运行结果是?)
LocalDate date = LocalDate.of(2018, Month.APRIL, 30); date.plusDays(2); date.plusYears(3); System.out.println(date.getYear() + " " + date.getMonth() + " "+ date.getDayOfMonth());
:【B】
A .
2018 APRIL 2
B .
2018 APRIL 30
C .
2018 MAY 2
D .
2021 APRIL 2
E .
2021 APRIL 30
F .
2021 MAY 2
G .
A runtime exception is thrown.
解析:日期从4月30日开始。由于日期是不可改变的和普卢斯方法
将其返回值忽略,结果不变。因此,备选案文b是正确的。
7.What is the output of the following code?(下面代码的运行结果是?)
LocalDate date = LocalDate.of(2018, Month.APRIL, 40);
System.out.println(date.getYear() + " " + date.getMonth()
" "+ date.getDayOfMonth());
:【F】
A .
2018 APRIL 4
B .
2018 APRIL 30
C .
2018 MAY 10
D .
Another date
E .
The code does not compile.
F .
A runtime exception is thrown.
解析:如果传递了无效的日期值,Java将引发异常。没有40天了,4月或其他月份
结对及互评
评分标准
正确使用Markdown语法(加1分):不使用Markdown不加分
有语法错误的不加分(链接打不开,表格不对,列表不正确...)
排版混乱的不加分
模板中的要素齐全(加1分)
缺少“教材学习中的问题和解决过程”的不加分
缺少“代码调试中的问题和解决过程”的不加分
代码托管不能打开的不加分
缺少“结对及互评”的不能打开的不加分
缺少“上周考试错题总结”的不能加分
缺少“进度条”的不能加分
缺少“参考资料”的不能加分
教材学习中的问题和解决过程, 一个问题加1分
代码调试中的问题和解决过程, 一个问题加1分
本周有效代码超过300分行的(加2分)
一周提交次数少于20次的不加分
其他加分:
周五前发博客的加1分
感想,体会不假大空的加1分
排版精美的加一分
进度条中记录学习时间与改进情况的加1分
有动手写新代码的加1分
课后选择题有验证的加1分
代码Commit Message规范的加1分
错题学习深入的加1分
点评认真,能指出博客和代码中的问题的加1分
结对学习情况真实可信的加1分
扣分:
有抄袭的扣至0分
代码作弊的扣至0分
迟交作业的扣至0分
点评模板:
博客中值得学习的或问题:xxx
xxx
...
代码中值得学习的或问题:
xxx
xxx
...
基于评分标准,我给本博客打分:XX分。得分情况如下:xxx
参考示例
点评过的同学博客和代码
本周结对学习情况20155339
结对照片
结对学习内容
一起敲代码
-复习以往学习过的继承方面的知识
...
上周博客互评情况
20155207
20155323
20155307
20155311
20155321
其他(感悟、思考等,可选)
面对庞杂的Java知识,感觉自己应该好好去复习以前看过的内容。学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 20/20 | 1/2 | 15/15 | 完成JDK、IDEA下载,并且可以简单操作 |
第二周 | 150/170 | 1/2 | 18/33 | 开始可以撰写简单的代码,了解了一些常用的语法 |
第三周 | 327/677 | 1/2 | 26/59 | 更深入认识类与对象,以及对象的封装,时间紧,任务重,需敲大量代码来熟练 |
第四周 | 1353/1830 | 1/2 | 25/84 | 通过学习继承和多态,感觉自己掌握了很多java的语法,代码量越来越重要 |
第五周 | 577/2407 | 1/2 | 24/112 | 本周学习了异常处理和Collection与Map,感觉自己对代码的学习越来越深入了,但是独立敲代码的能力还不好,感觉自己需要微改一波学习代码的方法了。 |
第六周 | 674/3081 | 1/2 | 27/139 | 主要学习了输入输出流和线程,学的越来越多,感觉以前的知识不牢固,现在有点吃力 |
第七周 | 291/3372 | 1/2 | 16/155 | 学习了时间与日期 |
第八周 | 344 / 3816 | 1/2 | 18/173 | 学习了通用API,复习了继承的内容 |
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
参考:软件工程软件的估计为什么这么难,软件工程 估计方法
计划学习时间:20小时
实际学习时间:18小时
改进情况:还是要扎实学习之前的知识,避免对后续学习产生过多不良影响
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)
参考资料
Java学习笔记(第8版)《Java学习笔记(第8版)》学习指导
...
相关文章推荐
- 20155321 2016-2017-2 《Java程序设计》第八周学习总结
- 20155209 2016-2017-2 《Java程序设计》第八周学习总结
- 20155117王震宇 2016-2017-2 《Java程序设计》第八周学习总结
- 20155304 2016-2017-2 《Java程序设计》第八周学习总结
- 20155306 2016-2017-2 《Java程序设计》第1周学习总结
- 20155306 2016-2017-2 《Java程序设计》第七周学习总结
- 20155302 2016-2017-2 《Java程序设计》第八周学习总结
- 20155305乔磊2016-2017-2《Java程序设计》第八周学习总结
- 20155213 2016-2017-2 《Java程序设计》第八周学习总结
- 20155227 2016-2017-2 《Java程序设计》第八周学习总结
- 20155211 2016-2017-2 《Java程序设计》第八周学习总结
- 20155320 2016-2017-2《Java程序设计》第八周学习总结
- 20155236 2016-2017-2 《Java程序设计》第八周学习总结
- 20155330 2016-2017-2 《Java程序设计》第八周学习总结
- 20155207 2016-2017-2 《Java程序设计》第八周学习总结
- 20155201 2016-2017-2 《Java程序设计》第八周学习总结
- 20155333 2016-2017-2 《Java程序设计》第八周学习总结
- 20155238 2016-2017-2 《JAVA程序设计》第八周学习总结
- 2016-2017-2 20155309 南皓芯《java程序设计》第八周学习总结
- # 20155337 2016-2017-2 《Java程序设计》第八周学习总结