# 20155337 2016-2017-2 《Java程序设计》第八周学习总结
20155337 2016-2017-2 《Java程序设计》第八周学习总结
教材学习内容总结
第14章 NIO与NIO2
NIO简介
NIO使用频道来衔接数据结点,在处理数据时,NIO可以让你设定缓冲区容量,在缓冲区中对感兴趣的数据区块进行标记,像是标记读取位置、数据有效位置,对于这些区块标记,提供了Clear()、rewind()、flip()、compact()等高级操作。
NIO2简介
NIO2文件系统API提供一组标准接口与类,应用程序开发者只要基于这些标准接口与类进行文件系统操作,底层实际如何进行文件系统操作,是由文件系统提供负责。
第15章 通用API
日志
特点:
java.util.logging包提供了日志功能相关类与接口iou,使用日志的起点是Logger类。
调用getLogger()时,名称空间以“.”作为层级区分,名称空间层级相同的Logger,其父Logger组态相同。
取得Logger实例之后,可以使用log()方法输出信息,输出信息可以使用Level的静态成员指定信息层级。
信息经过Logger过滤后还需经过Handler的过滤,一个Logger可以拥有多个Handler
在没有任何组态设定的情况下,取得的Logger实例,只会使用Logger.GLOBAL_LOGGER_NAME名称空间Logger实例拥有的Handler,默认使用ConsoleHandler,为Handler的子类,作用是在控制台下输出日志信息,默认层级是Level.INEO
MemoryHandle:不会格式化日志信息,信息会暂存于内存缓冲区内,直到超过缓冲区的大小,才将信息输出至指定的目标Handler。
StreamHandler:可自行指定信息输出时使用的OutputStream实例,它与子类都会使用指定的Formatter格式化信息。
ConsoleHandler:在创建时会指定OutputStream为System.err,所以日志信息会显示在控制台。
FileHandler:创建时会建立日志输出时使用FileOutputStream,文档位置与名称可以使用模式字符串指定。
SocketHandler:创建时可以指定主机位置与端口,内部将自动建立网络联机,将日志信息传送至指定的主机。
如果java.util.logging包中提供的Handler成果都不符合需求,可以继承Handler类,操作抽象方法publish()、flush()、close()方法来自定义Handler。
注意:
logger有层级关系,名称空间层级相同的Logger,父Logger组态会相同,每个Logger处理完自己的日志动作后,会向父LOgger传播,让父Logger也可以处理日志。
在没有任何组态设定的情况下,默认取得Logger实例,层级必须大于或等于Logger.GLOBAL_LOGGER_NAME名称空间Logger实例设定的Leve.INFO,才有可能输出信息。
Logger的config()是个简便的方法,可以直接以Leve.CONFIG层级输出信息。
国际化基础
使用java.util.ResourceBundle与java.util.Locale。
使用ResourceBundle做信息绑定:
准备一个.propreties文档,(注意:.propreties文档必须放在CLASSPATH的路径设定下)
使用ResourceBundle,根据基础名称取得对应的信息文档:
使用指定的Locale对象取得信息文档。
使用Locale.getDefault()取得信息文档。
使用基础名称取得信息文档。
使用Locale:
地区信息=语言编码+可选地区编码。
语言编码由两个小写字母代表如zh表示中文(chinese),可选地区编码由两个大些字母表示IT表示意大利(Italy)
规则表示式
规则表示式主要运用于字符、字符串格式的比较,有字面意义字符、字符类、贪婪量词、逐步量词、独吐量词、边界比较、分组与参考等。
java.util.regex.Pattern实例是规则表示式在JVM中的代表对象,必须通过Pattern的静态方法compile()来取得,可以使用matcher()方法指定比较的字符串,这会返回java.util.regex.Matcher实例,表示对指定字符串的比较器。
在JDK8中,API新增了StringJoiner、Arrays等API,在Stream相关的API也有增强。
教材学习中的问题和解决过程
第15章
在学习本章关于日志的知识时候存在一些问题。
对于书上关于Logger、Handler、Fomatter之间API的调用关系存在问题。信息通过了Logger的Level与Filter过滤,再通过Handler的Level与Filter过滤,格式化信息的动作交给Formatter,最后才调用输出对象将格式化后的信息输出。为什么有的时候可以输出信息,有的时候不会抛出信息?
后来调试代码,认真看书上的范例研究,虽然Handler负责实际输出但是需要注意Logger的信息会往父类Logger传播,这是第一次接触Logger实例就需要掌握的,因为其会往父类传播,在没有任何组态设定的情况下Logger是有默认值的,层级必须大于或等于Logger.GLOBAL_LOGGER_NAME名称空间Logger实例设定的Level.INFO,才有可能输出信息。
对于贪婪、逐步、独吐量词,它们三者的区别是什么?三者的运算方法是否相同?对于同一段字符串的运算结果是否相同?如何比较的?
经过看书后,对于贪婪量词,是整个把剩余文字吃掉,在逐步吐出文字,结果会找出尽可能长的符合文字。而逐步量词,是一边吃掉剩余文字,一边看没有被吃到的文字进行比较,独吐量词会将文字吃掉,然后看独吐量词部分是否符合吃下的文字;显然通过三者的特点就可以判断出区别;起先以为对于同一段字符出来的结果是相同的,但是对于书上的例子xfooxxxxxxfoo来看,三者运算的结果是不同的;而比比较方法使用给定的规则表达式比较。
代码调试中的问题和解决过程
在规则表示式中,自面意义字符的表示,对于所列出的常用字面意义字符有点问题,看书上的例子,用split()方法切割。
//规则表示式\\撰写为Java字符串是"\\\\"
for(String token:"Justin\\Moinca\\Irene".split("\\\\")
{
out.println(token);
}
重点在于要把握必须加上忽略符号,例如要比较!,必须使用\!等,这样理解问题就会简单很多。。
在规则表示式中,边界比较问题,书上给的例子RegularExpressionSplitDemo2,采用了之前的split()方法进行切割。其中for(String str : "Justin dog Monica doggie Irene".split("dog"))这行代码切割出来的结果并不是想象中的结果。

因为doggie中也存在dog就需要标出边界利用\b,将代码修改为for(String str : "Justin dog Monica doggie Irene".split("\bdog\b"))

但显示的结果还不是想象中的,后来仔细观察RegularExpression SplitDemo3的例子发现了错误,虽然字符\b是边界,但是在编译的时候java会将\b的\当作忽略符号,结果就是用spilt()方法用bdog进行切割的,因为\b的\被当作忽略符号,则边界符号自然就会出现问题。应该将代码改为for(String str : "Justin dog Monica doggie Irene".split("\bdog\b"))
这样\b就被当作边界符号使用,结果就会正确了。
上周考试错题总结
-错题1:下面那些Linux命令可以ASCII码和16进制单字节方法输出Hello.java的内容?
A.od -btx1 Hello.java
B.od -tcx1 Hello.java
C.od -tc -tx1 Hello.java
D.od -tbx1 Hello.java
原因没有看清-b 是以八进制输出
-错题2:下面哪些类的对象会包含“东部标准时间”的信息
A.Instant
B.LocalDate
C.LocalDateTime
D.LocalTime
E.ZonedDateTime
原因:Instant represents a point in time,but always uses GTM rather than the desired time zone.
结对及互评
评分标准
正确使用Markdown语法(加1分):
- 不使用Markdown不加分
- 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
- 排版混乱的不加分
模板中的要素齐全(加1分)
- 缺少“教材学习中的问题和解决过程”的不加分
- 缺少“代码调试中的问题和解决过程”的不加分
- 代码托管不能打开的不加分
- 缺少“结对及互评”的不能打开的不加分
- 缺少“上周考试错题总结”的不能加分
- 缺少“进度条”的不能加分
- 缺少“参考资料”的不能加分
教材学习中的问题和解决过程, 一个问题加1分
代码调试中的问题和解决过程, 一个问题加1分
本周有效代码超过300分行的(加2分)
- 一周提交次数少于20次的不加分
其他加分:
- 周五前发博客的加1分
- 感想,体会不假大空的加1分
- 排版精美的加一分
- 进度条中记录学习时间与改进情况的加1分
- 有动手写新代码的加1分
- 课后选择题有验证的加1分
- 代码Commit Message规范的加1分
- 错题学习深入的加1分
- 点评认真,能指出博客和代码中的问题的加1分
- 结对学习情况真实可信的加1分
扣分:
- 有抄袭的扣至0分
- 代码作弊的扣至0分
- 迟交作业的扣至0分
其他(感悟、思考等,可选)
java知识的学习,已经渐渐的接近了尾声,现在的一些知识点看起来会简单一些,但是依然不能掉以轻心。这些方面的知识可能对于我们现在的编程可能用处不大,但是这些知识并不是代表用不上,不是代表看过就算结束,很大的一部分程度是需要了解和掌握,并且消化的知识,而且这些知识也有对之前只是的掌握扎实程度的检验,现在接触的各个类、各种方法之间的继承关系,操作对象不都是的顺序与目标不都是原来的知识。所以这些知识是要了解并且掌握的。
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第四周 | 121/200 | 1/2 | 12/20 |
参考资料
# 20155337 2016-2017-2 《Java程序设计》第八周学习总结的更多相关文章
- 201521123027 <java程序设计>第八周学习总结
1.本周学习总结 1.1思维导图 2.书面作业 Q1.List中指定元素的删除(题目4-1) 1.1 实验总结 总结:判断List中是否存在指定元素,需要用到equals方法,若存在就用remove进 ...
- 20155337 2016-2017-2 《Java程序设计》第一周学习总结
20155337 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 我们主要学习的是JAVA SE平台也就是标准平台-Java SE四个组成部分:JVM .JR ...
- # 20155337 2016-2017-2 《Java程序设计》第九周学习总结
20155337 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 JDBC(Java DataBase Connectivity)即java数据库连 ...
- 201571030332 扎西平措 《面向对象程序设计Java》第八周学习总结
<面向对象程序设计Java>第八周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https: ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第八周学习总结
201871010106-丁宣元 <面向对象程序设计(java)>第八周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
- 20155303 2016-2017-2 《Java程序设计》第二周学习总结
20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...
- 20145237 《Java程序设计》第九周学习总结
20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...
随机推荐
- MES架构
FlexWeaver作为速威公司全新一代MES的技术平台,提供MES所需的全系列平台服务,针对工业大数据提供分布式计算环境.统一数据库引擎.大数据及云计算支撑等等. ● 同时适应企业内网服务器及云部署 ...
- 软件工程_6th weeks
一.上次博客时说的UI,拖拉到现在才展示,完成了“登录,普通匹配,做题界面,做题结果”四项 功能: 二.单元测试工具 1.python单元测试工具 最近因为论文原因一直在用Python,Pytho ...
- BZOJ3530[Sdoi2014]数数——AC自动机+数位DP
题目描述 我们称一个正整数N是幸运数,当且仅当它的十进制表示中不包含数字串集合S中任意一个元素作为其子串.例如当S=(22,333,0233)时,233是幸运数,2333.20233.3223不是幸运 ...
- BZOJ3505 CQOI2014数三角形(组合数学)
显然可以用总方案数减掉三点共线的情况.对于三点共线,一个暴力的做法是枚举起点终点,其间整点数量即为横纵坐标差的gcd-1.这样显然会T,注意到起点终点所形成的线段在哪个位置是没有区别的,于是枚举线段算 ...
- John's trip POJ - 1041(这题数据有点水)
题意: 其实还是一个欧拉回路,但要按字典序走路: 解析: 我真是蠢啊emm... map[i][j]表示由顶点i经街道j会到达的顶点编号 然后枚举j就好了 用栈储存.. 虽然我不是这样写的 #incl ...
- hdu 4897 Little Devil I (树链剖分+线段树)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4897 题意: 给你一棵树,一开始每条边都是白色,有三种操作: 1.将 u - v路径上的边转换颜色 ...
- Codeforces Round #404 (Div. 2)A,B,C
A. Anton and Polyhedrons 题目链接:http://codeforces.com/contest/785/problem/A 智障水题 实现代码: #include<bit ...
- 【题解】 bzoj2006: [NOI2010]超级钢琴 (ST表+贪心)
题面戳我 Solution 不会,看的题解 Attention 哇痛苦,一直不会打\(ST\)表,我是真的菜啊qwq 预处理 Log[1]=0;two[0]=1; for(int i=2;i<= ...
- adb is down 的解决方法
今天装完android Eclipse 之后 ,运行时报出这么个错误 : The connection to adb is down, and a severe error has occured. ...
- A1029. Median
Given an increasing sequence S of N integers, the median is the number at the middle position. For e ...