20155320 2016-2017-2《Java程序设计》第八周学习总结
20155320 2016-2017-2《Java程序设计》第八周学习总结
教材学习内容总结
NIO与NIO2
Channel继承框架
想要取得Channel的操作对象,可以使用Channels类,它定义了静态方法
newChannel(),可以让你从InputStream、OutputStream分别建立ReadableByteChannel、WritableByteChannel,有些InputStream、OutputStream实例本身也有方法可以取得Channel实例,例如:FileInputSteam、FileOutputStream都有个getChannel()方法可以分别取得FileChannel实例。Buffer继承架构
- Buffer的直接子类们都有个
allocate()静态方法,可以让你指定Buffer容量(Capacity),如果想取得Buffer内部的阵列,可以使用array()方法,如果有个数组想要转为某个Buffer子类实例,每个Buffer子类实例都有wrap()静态方法可以提供操作。 Buffer是容器,填装的数据不会超过它的容量,容量大小可以使用
capacity()方法取得,实际可读取或写入的数据界限(Limit)索引值可以由limit()方法得知或设定,下一个可读取数据的位置(Position)索引值,可以使用position()方法得知或设定。NIO2
NIO2文件系统API提供一组标准接口与类,应用程序开发者只要基于这些标准接口与类进行文件系统操作,底层实际如何进行文件系统操作,是由文件系统提供者负责。
通用API
日志API简介
- 使用日志的起点是Logger类,要取得Logger类,必须使用Logger的静态方法getLogger(),Logger.log()方法可以用来输出信息。 默认的Logger还会记录时间、类、方法等信息,Logger是记录信息的起点,还会经过一些过滤才会输出信息,输出信息实际上是由Handler负责。
- Logger有层级关系,每个Logger处理完自己的日志动作后,回想父Logger传播,让父Logger也可以处理日志
- Logger与Handler预设都会先依Level过滤信息,如果没有做任何修改,取得的Logger实例之父Logger组态,就是Logger.GLOBAL_LOGGER_NAME名称空间Logger实例的组态,这个实例的Level设定为INFO,可通过Logger实例的getParent()取得父Logger实例,可通过
getLevel()取得设定的Level实例。 在经过Logger过滤之后,还得再经过Handler的过滤,一个Logger可以拥有多个Handler,可通过Logger的
addHandler()新增Handler实例。规则表示式简介
- 看到贪婪量词,比较器会将剩余文字整个吃掉,再逐步吐出,结果是贪婪量词会尽可能地找出长度最长的符合文字 在贪婪量词后加上?将会成为逐步量词,逐步量词会尽可能的找出长度最短的符合文字
- replaceAll会将符合规则表示式的字符串取代后返回新字符串
- Pattern与Matcher取得Pattern实例后,可以使用split()方法将指定字符串进行切割,效果与String的split()方法相似,Matcher也有replaceAll()方法,与String的replaceAll()方法相似
- StringJoiner、Arrays新增APIstring的join方法可以用来连接字符串,Arrays类也新增了一些重载的方法
Stream相关APIstream的range方法可以产生一个整数范围,java.util.Random类可以用来产生随机数
教材学习中的问题和解决过程
- 问题1:NIO与IO的区别
问题1解决方案:
| IO | NIO |
|---|---|
| 面向流 | 面向缓冲 |
| 阻塞IO | 非阻塞IO |
| 无 | 选择器 |
代码调试中的问题和解决过程

上周考试错题总结
- 下面哪些Linux命令可以ASCII码和16进制单字节方法输出Hello.java的内容?(BC)
A .od -b -tx1 Hello.java
B .od -tcx1 Hello.java
C .od -tc -tx1 Hello.java
D .od -tbx1 Hello.java
- JDK8 中新时间API中,用于度量时间的类有(BC)
A .Instant
B .Duratio
C .Period
D .LocalDateTime
分析此题由于看教材时仍然不够仔细,LocalDate的plusDays()、plusMonths()只是时间运算的一些常用指定方法,Duration类可用于计量天、时、分、秒的时间差,Period类可用于计算年、月、星期、日 、日期差
- When applied to instance variables, the ________________ visibility modifier enforces encapsulation(当应用到实例变量时,____可见性修饰符强制执行封装).(D)
A .static
B .final
C .public
D .private
E .none of the above(以上都不是)
分析:私有可见性修饰符防范不适当的数据访问,因此促进封装。选择a和b是不可见性修饰符,选择c是一个可见性修饰符,允许公众访问一个对象的数据,这违背了封装的原则。
- An object can be thought of as a blueprint for a set of classes(对象被认为是类集合的蓝图).(B)
A .true
B .false
分析:一个类可以被认为是一个蓝图一组对象,而不是相反。
结对及互评
评分标准
条理清晰,排版精美。
基于评分标准,我给本博客打分:10分。得分情况如下:
正确使用Markdown语法:+1
模板中的要素齐全:+1
教材学习中的问题和解决过程:+2
本周有效代码超过300分行:+2
感想,体会不假大空:+1
排版精美:+1
进度条中记录学习时间与改进情况:+1
错题学习深入:+1
点评过的同学博客和代码
其他(感悟、思考等,可选)
本周主要学习NIO、NIO2以及一下API,我觉得通过比较前几章学习的IO与新IO学习起来好像更好,十五章的API学习感觉要与继承架构相结合,理解和运用起来更容易。
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 15篇 | 400小时 | |
| 第一周 | 20/20 | 1/4 | 20/20 | 安装了JDK及IDEA |
| 第二周 | 144/164 | 1/5 | 18/38 | 学习了java语言的基本语法 |
| 第三周 | 447/567 | 1/6 | 20/ 58 | 掌握了一些有关对象和封装的内容 |
| 第四周 | 875/ 1442 | 1/7 | 23/81 | 学习了解了继承、接口和多态的相关问题 |
| 第五周 | 775/2250 | 1/8 | 25/106 | 学习了异常处理以及Collection与Map相关的内容 |
| 第六周 | 487/ 2706 | 1/9 | 22/128 | 学习了输入输出 |
| 第七周 | 529/3127 | 2/11 | 20/148 | 学习了时间与日期 |
| 第八周 | 417/ 3491 | 1/12 | 20/168 | 学习了NIO与NIO2和通用API |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:20小时
实际学习时间:20小时
改进情况:本周有两章内容,稍微多分配了点时间
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)
参考资料
20155320 2016-2017-2《Java程序设计》第八周学习总结的更多相关文章
- 201521123027 <java程序设计>第八周学习总结
1.本周学习总结 1.1思维导图 2.书面作业 Q1.List中指定元素的删除(题目4-1) 1.1 实验总结 总结:判断List中是否存在指定元素,需要用到equals方法,若存在就用remove进 ...
- 20155320 2016-2017-2《Java程序设计》第九周学习总结
20155320 2016-2017-2<Java程序设计>第九周学习总结 教材学习内容总结 第十六章 JDBC简介 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 ...
- 20155320 2016-2017-2 《Java程序设计》第二周学习总结
20155320 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 本周主要学习了java语言的基础语法,我发现与以前学过的c语言有许多共同点,无论是从一些基本 ...
- 201571030332 扎西平措 《面向对象程序设计Java》第八周学习总结
<面向对象程序设计Java>第八周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https: ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第八周学习总结
201871010106-丁宣元 <面向对象程序设计(java)>第八周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...
- 20155326 2016-2017-2 《Java程序设计》第九周学习总结
20155326 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 1.撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找. 2.JDBC目的 ...
- 20155227 2016-2017-2 《Java程序设计》第九周学习总结
20155227 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联 ...
- 20155328 2016-2017-2 《Java程序设计》第九周学习总结
20155328 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 16.1 JDBC入门 JDBC是Java联机数据库的标准规范,定义一组标准类与接口,应用程 ...
- 20155216 2016-2017-2 《Java程序设计》第九周学习总结
20155216 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC架构 JDBC API的使用 JDBC连接数据库 1.导入JDBC包: 添加impo ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
随机推荐
- PAT甲题题解-1096. Consecutive Factors(20)-(枚举)
题意:一个正整数n可以分解成一系列因子的乘积,其中会存在连续的因子相乘,如630=3*5*6*7,5*6*7即为连续的因子.给定n,让你求最大的连续因子个数,并且输出其中最小的连续序列. 比如一个数可 ...
- 甲题题解-1116. Come on! Let’s C (20)-(素数筛选法)
用vis标记出现过的id,checked标记询问过的id.至于如何判断排名为素数,用素数筛选法预处理一下即可,水题. #include <iostream> #include <cs ...
- Daily Scrum NO.6
会议概况 这两日又是由于编译deadline和数据库课程设计使得我们的进度进行缓慢.但是项目的进程仍然在可掌控的范围之内,时间虽然紧,但是应该最终能够实现Beta版本. 这次会议我们总结了之前5个正常 ...
- 20135316Linux内核学习笔记第五周
20135316王剑桥<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.给MenuOS增加time和t ...
- classpath与clsspath*
classpath是指 WEB-INF文件夹下的classes目录 classes含义: 1.存放各种资源配置文件 eg.init.properties log4j.properties struts ...
- Spark 实践——音乐推荐和 Audioscrobbler 数据集
本文基于<Spark 高级数据分析>第3章 用音乐推荐和Audioscrobbler数据 完整代码见 https://github.com/libaoquan95/aasPractice/ ...
- Java设计模式之单例模式(七种写法)
Java设计模式之单例模式(七种写法) 第一种,懒汉式,lazy初始化,线程不安全,多线程中无法工作: public class Singleton { private static Singleto ...
- Razor - 标记简述
详情请参考:http://www.runoob.com/aspnet/razor-intro.html 1.Razor 不是一种编程语言.它是服务器端的标记语言.基于服务器的代码(Visual Bas ...
- Spring之IOC实现原理
- spring注入 属性注入 构造器注入 set方法注入
spring注入 属性注入 构造器注入 set方法注入(外部bean注入)

