教材学习内容总结

第十四章

NIO

  • NIO使用频道(Channel)来衔接数据节点,处理数据时,NIO可以让你设定缓冲区(Buffer)容量,

    在缓冲区对感兴趣的数据区块进行标记,对于这些标记,提供了clear()rewind()flipcompact().

  • Channel 继承架构

  • 如果已有相关channel实例,可以通过Channels上其他new×××()静态方法,取得InputStream、OutputStream、Reader、Writer实例

  • Buffer是个抽象类,定义了clear()flip()resetrewind等对数据区块的高级操作,这类操作返回类型都是Buffer,实际上返回this

  • Buffer上还有个mark()方法,可以在目前position上标记。

    reset方法,会将position设回被mark()标记的位置。

    position与limit之间为剩余可存取的资料,可使用remaining()方法得知还有多少长度,使用hasRemaining()可测试是否还有剩余可存取的数据。

NIO文件系统

  • java。nio.file

  • FileSystems

  • Paths

  • Files

  • java.nio.file.atribute

  • java.nio.file.spi

  • FileSystemProvider

第十五章

日志

  • java.util.logging包提供了日志功能相关类和接口。

  • 国际化的三个重要概念是地区信息,资源包与基础名称。

  • 使用ResourceBundle时,如何根据基础名称取得对应的信息文档:

    (1) 使用指定的Locale对象取得信息文档

    (2) 使用Locale.getDefault()取得的对象取得信息文档

    (3) 使用基础名称取得信息文档

  • 日志: 日志对信息安全意义重大,审计、取证、入侵检测等都会用到日志信息

  • 日志API

  • Logger: 注意无法使用构造方法生成Logger对象

  • Logger logger = Logger.getLogger("xxx");

  • getLevel

  • setLevel

  • Level

  • Handler:输出介质

  • MemoryHandler

  • StreamHandler

  • ConsoleHandler: SimpleFormatter

  • FileHandler:XMLFormatter

  • SocketHandler

  • Formatter: 格式化

  • Filter: 过滤

  • 正则表达式简介

  • 字符与元字符

  • 字符类

  • 贪婪、非贪婪、独占量词

  • 边界比较

  • 锚点

  • 分组与反向引用

  • Pattern/Matcher

教材学习中的问题和解决过程

  • 问题1: java为什么要国际化,国际化基础的作用是什么

  • 问题1解决方案:查找资料结合书中知识。

  • java国际化可以为不同地区,不同语言的用户提供方便。可以在不修改程序的情况下,直接采用相应的语言,格式。

  • 对于有国际化要求的应用系统,我们不能简单地采用硬编码的方式编写用户界面信息、报错信息等内容,而必须为这些需要国际化的信息进行特殊处理。简单来说,就是为每种语言提供一套相应的资源文件,并以规范化命名的方式保存在特定的目录中,由系统自动根据客户端语言选择适合的资源文件。

  • “国际化信息”也称为“本地化信息”,一般需要两个条件才可以确定一个特定类型的本地化信息,它们分别是“语言类型”和“国家/地区的类型”。如中文本地化信息既有中国大陆地区的中文,又有中国台湾、中国香港地区的中文,还有新加坡地区的中文。Java通过java.util.Locale类表示一个本地化对象,它允许通过语言参数和国家/地区参数创建一个确定的本地化对象。

  • 问题2:java nio的优势
  • 问题2解决方案:查找相关资料得知
    1. 不需要使用read()或者write()操作就可以处理文件内容了
    1. 修改文件后,修改自动flush到文件
    1. nio方式能很快处理大文件和处理效率很快
  • ...

代码调试中的问题和解决过程

  • 问题1:出现java.lang.nullpointerexception
  • 问题1解决方案: 出现异常的原因可能是调用了不存在的或未经初始化的对象。

    解决应该在调用数组时,将每个元素初始化。

代码托管

上周考试错题总结

下面哪些Linux 命令可以ASCII码和16进制单字节方法输出Hello.java的内容?

od -tcx1 Hello.java
od -tc  -tx1 Hello.java

JDK8 中新时间API中,用于度量时间的类有

  • Duration
  • Period

Java 8之前,对日期进行运算,使用(Calendar)类。

When applied to instance variables, the ________________ visibility modifier enforces encapsulation(当应用到实例变量时,____可见性修饰符强制执行封装)

  • private

When an object is passed to a method, the actual and formal parameters become aliases(当把对象传递给方法时,实参和形参互为别名) ×

Which of the following objects could contain the information “eastern standard time”?(下面哪些类的对象会包含“东部标准时间”的信息)

  • ZonedDateTime

Which of the following are stored in a Period object? (Choose all that apply.) 下面哪些内容会出现在Period对象中

  • Year
  • Month
  • Day
LocalDate date = LocalDate.of(2018, Month.APRIL, 30);
date.plusDays(2);
date.plusYears(3);
System.out.println(date.getYear() + " "
+ date.getMonth() + " "+ date.getDayOfMonth());

What is the output of the following code?(下面代码的运行结果是?)

  • 2018 APRIL 30
LocalDate date = LocalDate.of(2018, Month.APRIL, 40);
System.out.println(date.getYear() + " " + date.getMonth()
+ " "+ date.getDayOfMonth());

What is the output of the following code?(下面代码的运行结果是?)

  • A runtime exception is thrown.

结对及互评

评分标准

  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

  • 参考示例

点评过的同学博客和代码

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

  • 初步认识了什么事NIO,和NIO2文件系统,也了解到了使用的好处。

  • 对于java国际化有了更深的认识,以及定义规则表达式的方法有了基本的了解。

  • 能合理的分配时间,学习相应的模块,循序渐进,而不是填鸭式的学习

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/0 1/4 8/12
第二周 70/80 1/5 16/28
第三周 120/200 1/6 12/40
第四周 300/500 1/7 20/60
第五周 500/1000 1/8 15/75
第六周 600/1600 1/9 15/90
第七周 400/2000 2/11 20/110
第八周 500/2500 1/12 22/132 能更合理的安排自己的学习计划。

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。

耗时估计的公式

:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:25小时

  • 实际学习时间:22小时

  • 改进情况:对于java学习的时间,有了系统性的规划,并不是向以前零散或者突击性的学习。

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

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

参考资料

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

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

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

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

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

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

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

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

    20155312 2016-2017-2 <Java程序设计>第九周学习总结 课堂内容总结 两个类有公用的东西放在父类里. 面向对象的三要素 封装 继承 多态:用父类声明引用,子类生成对象 ...

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

    20155213 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 JDBC(Java DataBase Connectivity)即java数据库连 ...

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

    20155216 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC架构 JDBC API的使用 JDBC连接数据库 1.导入JDBC包: 添加impo ...

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

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

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

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

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

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

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

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

随机推荐

  1. angularjs -- 页面模板清除

    前几天项目在上线过程中,出现了一些新问题.页面在切换时由于前一个页面的模板清理不及时,会造成页面的重叠.导致这个问题的原因是:页面模板缓存,即上一个页面退出时,浏览器没有及时清空上一个页面的模板,导致 ...

  2. View的measure机制

    Android中View框架的工作机制中,主要有三个过程: 1.View树的测量(measure)Android View框架的measure机制     2.View树的布局(layout) And ...

  3. LintCode题解之Search Range in Binary Search Tree

    1.题目描述 2.问题分析 首先将二叉查找树使用中序遍历的方式将元素放入一个vector,然后在vector 中截取符合条件的数字. 3.代码 /** * Definition of TreeNode ...

  4. git版本超前了N个版本且落后了N个版本的解决办法

    当遇到该问题的时候,一般情况下我们会首先拉取,紧接着就出现了一系列问题………… 其实当输入命令,git pull的时候,会报错,这时瞬间就感到凌乱了&……*%%*%………… 莫慌…… 这时输入 ...

  5. mysql内存管理

    1 内存管理结构 mysql有自己的内存申请和释放机制 mysql层有mem_root innodb层有mem_heap,mem_pool,buf_pool 它们的结构图如下 2 mem_root m ...

  6. sql server 用户'sa'登录失败(错误18456)

    转载于:http://thenear.blog.51cto.com/4686262/865544 用户'sa'登录失败(错误18456)解决方案图解     当我们在使用sql server 的时候可 ...

  7. T-SQL检查停止的复制作业代理,并启动 (转载)

    有时候搭建的复制在作业比较多的时候,会因为某些情况导致代理停止或出错,如果分发代理时间停止稍微过长可能导致复制延期,从而需要从新初始化复制,带来问题.因此我写了一个脚本定期检查处于停止状态的分发代理, ...

  8. 一张思维导图纵观MySQL数据安全体系!

    杨奇龙 2017-06-29 09:52:10 786 作者介绍 杨奇龙,前阿里数据库团队资深DBA,主要负责淘宝业务线,经历多次双十一,有海量业务访问DB架构设计经验.目前就职于有赞科技,负责数据库 ...

  9. centos7 安装 jdk1.8

    首先是Linux的不同版本的额系统自带的配置是不一样的,比如centos6上有的自带的jdk环境的话要装1.8的就要进行卸载或者马上进行更改 jdk是java程序依赖的环境 首先查看你的系统下是否有j ...

  10. 再谈全局网HBase八大应用场景

    摘要: HBase可以说是一个数据库,也可以说是一个存储.拥有双重属性的HBase天生就具备广阔的应用场景.在2.0中,引入了OffHeap降低了延迟,可以满足在线的需求.引入MOB,可以存储10M左 ...