20155334 2016-2017-2 《Java程序设计》第八周学习总结
20155334 2016-2017-2 《Java程序设计》第八周学习总结
教材学习内容总结
第十四章:NIO与NIO2
NIO的定义:
- InputStream、OutputStream的输入输出,基本上是以字节为单位进行低层次处理,虽然需要直接面对数组,但实际上多半是对字节数组中整个区块进行处理。
dump()方法是整块数据读入后又整块数据写出。
NIO2的定义:
- 现今世界上存在着各式各样的文件系统,不同的文件系统会提供不同的存取方式,文件属性,权限控制等操作。在JDK7出现以前,常需要对特定的文件撰写特定的程序,不仅撰写方式没有标准,针对特定功能撰写的程序也会增加应用程序开发者的负担。
- NIO2文件系统API提供一组标准类接口与类,应用程序开发者只要基于这些标准接口与类进行文件系统操作,底层实际如何进行文件系统的操作,是由文件系统提供者负责。
第十五章:通用API
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()方法 - 字面意义的字符
- 规则表达式是规则表达式,要写在中还要另外考虑。
JDK8 API增强功能
StringJoiner、Arrays新增API
String.join()、StringJoiner
String新增join()静态方法可以指定每个字符串间以逗号分隔进行连接。Arrays
Arrays上新增
parallelPrefix()、parallelSetAll()与parallelSort()方法,parallelSort()方法,可以将指定的数组分为子数组并以平行化方式分别排序,然后再进行合并排序。指定的数组之元素必须操作Comparable。Stream相关API
Files上有
lines()list()walk()等方法。
Stream、InStream、DoubleStream等都有of()静态方法,可以使用可变长度自变量方式指定元素。
教材学习中的问题和解决过程
- 问题1:对规则表示式的贪婪、逐步、独吞不是完全理解
- 问题1解决方案:需要伟大的娄嘉鹏老教授讲解,然而这是不可能的,原因嘛······你懂得,我估计这位伟大娄嘉鹏都不带看我博客的。剽悍的那啥是不会管你的。
- 问题2:对书上495页Arrays新增的ParallelPrefix()方法不是很理解,不明白运行结果为什么是{1,3,6,10,15}
- 问题2解决方案:编译运行书上的例子,其实觉得“xfooxxxx”那个例子不是很直观,在通过自己的思考,所谓的{1,3,6,10,15}是把传入前一个参数,并相加得到的结果
代码调试中的问题和解决过程
- 问题1:在运行DateFormatDemo中,提示它是公共的,代码中定义的本来就为public class,DateFormatDemo
- 问题1解决方案:去除public之后就能成功运行了
代码托管

上周考试错题总结
- An object can be thought of as a blueprint for a set of classes(对象被认为是类集合的蓝图).(B)
A .true
B .false
原因:一个类可以被认为是一个蓝图一组对象,而不是相反。 - When an object is passed to a method, the actual and formal parameters become aliases(当把对象传递给方法时,实参和形参互为别名).(A)
A .true
B .false
原因:实际参数的数据发送到该方法。正式的方法定义中使用的参数。当对象被发送到一个方法,这两个值是引用,成为彼此的别名。 - Which of the following objects could contain the information “eastern standard time”?(下面哪些类的对象会包含“东部标准时间”的信息)(E)
(Choose all that apply.)
A .Instant
B .LocalDate
C .LocalDateTime
D .LocalTime
E .ZonedDateTime
原因:LocalXXXX明确排除了时区。即时代表一个时间点,但是是使用格林尼治时间而不是期望的时区。 - Given the following, which answers can correctly fill in the blank? (Choose all that apply.)针对下面的代码,()中应填入哪个选项?(F)
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 = ( );
A .Instant.now()
B .Instant.ofEpochSecond(epochSeconds)
C .date.toInstant()
D .dateTime.toInstant()
E .time.toInstant()
F .zonedDateTime.toInstant()
原因: 1. 选择当前即时正确创建。2. 选项B正确转换秒瞬间。3. F选项也是一个适当的转换。4. 选择C,D,E不正确的,因为源对象并不代表一个时间点。5. 没有一个时区,Java不知道即时的时刻使用。
结对及互评
点评过的同学博客和代码
- 本周结对学习情况
- 20155319
- 结对学习内容:相互查看对方代码,并对学习中遇到的疑问进行交流,合作解决编程过程中遇到的问题。
- 上周博客互评情况
其他(感悟、思考等,可选)
Java学习是一个长期的过程,不能一蹴而就,只能循序渐进,一步一步来,此外需要老师的细心讲解 (然而这事儿可能吗?伟大的娄老师的理论,学生佩服,无fuck说)
在学习的道路上没有平坦的捷径,唯有持之以恒的认真刻苦才能够学有所成。
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 5/5 | 1/1 | 10/10 | |
| 第二周 | 90/95 | 1/2 | 15/25 | |
| 第三周 | 131/234 | 1/3 | 20/45 | |
| 第四周 | 289/523 | 1/4 | 21/66 | |
| 第五周 | 446/969 | 1/5 | 25/91 | |
| 第六周 | 720/1689 | 1/6 | 25/116 | |
| 第七周 | 431/2120 | 1/7 | 30/146 | |
| 第八周 | 381/2501 | 2/9 | 35/181 |
计划学习时间:40小时
实际学习时间:35小时
改进情况:
参考资料
世界上最有用的,最好消磨时间的评分模板:
评分标准
正确使用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
- 基于评分标准,我给本博客打分:XX分。得分情况如下:xxx
20155334 2016-2017-2 《Java程序设计》第八周学习总结的更多相关文章
- 201521123027 <java程序设计>第八周学习总结
1.本周学习总结 1.1思维导图 2.书面作业 Q1.List中指定元素的删除(题目4-1) 1.1 实验总结 总结:判断List中是否存在指定元素,需要用到equals方法,若存在就用remove进 ...
- 20155334 2016-2017-2 《Java程序设计》第九周学习总结
20155334 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章:整合数据库 16.1 JDBC入门 JDBC(Java DataBase Conn ...
- 20155334 2016-2017-2 《Java程序设计》第二周学习总结
20155334 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 java中的基本类型 整数:有short.int.long三种 字节:byte 字符:cha ...
- 20155334 2016-2017-2 《Java程序设计》第一周学习总结
20155334 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 第一章主要讲了Java的前世今生以及Java的三大平台(Java SE.Java EE.Ja ...
- 201571030332 扎西平措 《面向对象程序设计Java》第八周学习总结
<面向对象程序设计Java>第八周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https: ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第八周学习总结
201871010106-丁宣元 <面向对象程序设计(java)>第八周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...
- 20155333 2016-2017-2 《Java程序设计》第九周学习总结
20155333 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC(Java DataBase Connectivity) 驱动的四种类型 JDBC- ...
- 20155321 2016-2017-2 《Java程序设计》第九周学习总结
20155321 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 厂商在实现JDBC驱动程序时,依方式可将驱动程序分为四种类型: JDBC-OD ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
随机推荐
- 安装 SQL SERVER MsiGetProductInfo 无法检索 Product Code 1605错误 解决方案
重装数据库服务器上的SQL SERVER 2008 上遇到了以下问题 标题: SQL Server 安装程序失败. SQL Server 安装程序遇到以下错误: MsiGetProductInfo 无 ...
- [Windows]Window 7 修改系统时区
注意:编码存储为ANSI tzutil /s "China Standard Time"pause
- stylie工具轻松搞定css3抛物线动画
自从CSS3引入了动画(transition和@keyframes,还有与之搭配的transform)之后,写动画也变的越来多越来越容易. 可是当我们遇到需要利用数学公式的复杂动画时,却一筹莫展,只能 ...
- html、css如何画实心圆
css3画实心圆 实现方法相当简单,css代码如下: .circle{ width:100px; height:100px; border-radius:50px; /* 图形的半径 */ }
- 9.11 Django关于母版语言的灵活用法
2018-9-11 12:45:38 还是这个连接 : http://www.cnblogs.com/liwenzhou/p/7931828.html 注意: 这节讲的是 母版语言的灵活用法! 可 ...
- .net framework 类库中必须掌握的命名空间(或者类)
Web开发常用命名空间和类. System.Collections //命名空间包含接口和类,这些接口和类定义各种对象(如列表.队列.位数组.哈希表和字典)的集合.System.Collections ...
- 对Yii2中 yii\web\User的理解,和自建的app\models\User(基础版),frontend\models\User的应用原理
yii\web\User 是一个统称,为用户,没有具体实例,只能管理: 此处以app\models\User为基准: app\models\User 是映射数据表user的model类,同时也实现接口 ...
- ELKStack之消息队列
redis消息队列 安装redis yum -y install redis 修改配置文件 修改ip 后台运行 启动 systemctl start redis 查看 lsof -i:6379 连接 ...
- 2017年TOP100summit开幕在即, 15位大咖担任联席主席甄选最值得学习的100个研发案例
从万维网到物联网,从信息传播到人工智能,20年间软件研发行业趋势发生了翻天覆地的变化.大数据.云计算.AI等新兴领域逐渐改变我们的生活方式,Devops.容器.深度学习.敏捷等技术方式和工作理念对软件 ...
- Codeforces Round #441 (Div. 2, by Moscow Team Olympiad)
A. Trip For Meal 题目链接:http://codeforces.com/contest/876/problem/A 题目意思:现在三个点1,2,3,1-2的路程是a,1-3的路程是b, ...