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月或其他月份

结对及互评

评分标准

  1. 正确使用Markdown语法(加1分):

    • 不使用Markdown不加分
    • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
    • 排版混乱的不加分
  2. 模板中的要素齐全(加1分)

    • 缺少“教材学习中的问题和解决过程”的不加分
    • 缺少“代码调试中的问题和解决过程”的不加分
    • 代码托管不能打开的不加分
    • 缺少“结对及互评”的不能打开的不加分
    • 缺少“上周考试错题总结”的不能加分
    • 缺少“进度条”的不能加分
    • 缺少“参考资料”的不能加分
  3. 教材学习中的问题和解决过程, 一个问题加1分

  4. 代码调试中的问题和解决过程, 一个问题加1分

  5. 本周有效代码超过300分行的(加2分)

    • 一周提交次数少于20次的不加分
  6. 其他加分:

    • 周五前发博客的加1分
    • 感想,体会不假大空的加1分
    • 排版精美的加一分
    • 进度条中记录学习时间与改进情况的加1分
    • 有动手写新代码的加1分
    • 课后选择题有验证的加1分
    • 代码Commit Message规范的加1分
    • 错题学习深入的加1分
    • 点评认真,能指出博客和代码中的问题的加1分
    • 结对学习情况真实可信的加1分
  7. 扣分:

    • 有抄袭的扣至0分
    • 代码作弊的扣至0分
    • 迟交作业的扣至0分

点评模板:

  • 博客中值得学习的或问题:

    • xxx
    • xxx
    • ...
  • 代码中值得学习的或问题:

    • xxx
    • xxx
    • ...
  • 基于评分标准,我给本博客打分:XX分。得分情况如下:xxx

  • 参考示例

点评过的同学博客和代码

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

面对庞杂的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小时

  • 改进情况:还是要扎实学习之前的知识,避免对后续学习产生过多不良影响

(有空多看看现代软件工程 课件

软件工程师能力自我评价表
)

参考资料

20155306 2016-2017-2 《Java程序设计》第八周学习总结的更多相关文章

  1. 201521123027 <java程序设计>第八周学习总结

    1.本周学习总结 1.1思维导图 2.书面作业 Q1.List中指定元素的删除(题目4-1) 1.1 实验总结 总结:判断List中是否存在指定元素,需要用到equals方法,若存在就用remove进 ...

  2. 20155306 2016-2017-2 《Java程序设计》第九周学习总结

    20155306 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 16.1 JDBC入门 Java语言访问数据库的一种规范,是一套API ...

  3. 201571030332 扎西平措 《面向对象程序设计Java》第八周学习总结

    <面向对象程序设计Java>第八周学习总结   项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https: ...

  4. 201871010106-丁宣元 《面向对象程序设计(java)》第八周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第八周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...

  5. 20155236 2016-2017-2 《Java程序设计》第九周学习总结

    20155236 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC入门 1.JDBC简介 JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标 ...

  6. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  7. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  8. 20145236 《Java程序设计》第九周学习总结

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  9. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

  10. 20145237 《Java程序设计》第九周学习总结

    20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...

随机推荐

  1. 在HTML中为JavaScript传递变量

    在html中为JavaScript传递变量是一个关键步骤,然后就可以通过对JavaScript变量操作,实现想要达到的目的 本节代码主要使用了JavaScript中的document对象中的getEl ...

  2. 第三周:构造一个简单的LINUX系统MENUOS

    吕松鸿 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.Linux内 ...

  3. PAT 甲级 1096 Consecutive Factors

    https://pintia.cn/problem-sets/994805342720868352/problems/994805370650738688 Among all the factors ...

  4. Windows 使用 StarWind 创建的 Oracle RAC环境 异常关机之后的处理过程

    创建好了 虚拟机之后发现 偶尔会出现 蓝屏重启的现象, 这个时候 需要进行 异常处理 确定虚拟机已经开机之后 1. 打开iscsi的连接设备, 确认 iscsi的正常连接到虚拟机的 存储设备 注意 r ...

  5. 基于 Laravel 的 文件管理

    以 laravel 5.5 为例,框架集成了文件系统和云存储功能 可以实现文件夹列表.创建.重命名.删除,文件列表.上传.重命名.删除等操作 一.先进行配置 在 config 文件夹下有 filesy ...

  6. 牛B的VUE讲解

    https://www.cnblogs.com/lvhw/p/8286544.html

  7. Java之数据流-复制二进制文件

    package test_demo.fileoper; import java.io.*; /* * 数值字节流操作,复制二进制文件 * 输入流:从文件中读取数据,扩展为数据流(二进制) * 输出流: ...

  8. 移动端web开发整理

    /* 移动端定义字体的代码 */body { font-family: "Helvetica Neue", Helvetica; } ios端触摸时,会出现一个半透明灰色遮罩 如果 ...

  9. IDEA 修改 jdk 版本

    3步 一  file--setting 二 file--Project Structure 三 file--Project Structure

  10. 【刷题】洛谷 P4320 道路相遇

    题目描述 在 H 国的小 w 决定到从城市 \(u\) 到城市 \(v\) 旅行,但是此时小 c 由于各种原因不在城市 \(u\),但是小 c 决定到在中途与小 w 相遇 由于 H 国道路的原因,小 ...