20145223 《Java程序设计》第8周学习总结

教材学习内容总结

第十四章 NIO与NIO2

·NIO使用频道(Channel)来衔接数据节点,在处理数据时,NIO可以让你设定缓冲区(Buffer)容量,在缓冲区中对感兴趣的数据区块进行标记,像是标记读取位置、数据有效位置,对于这些区块标记,提供了clear()、rewind()、flip()、compact()等高级操作。

·Channel架构与操作:想要取得Channel的操作对象,可以使用Channels类,它定义了静态方法newChannel(),可以让你从Inputstream、OutputStream分别建立ReadableByteChannel、WritableByteChannel。

·如果已经有相关的Channel实例,也可以通过Channels上其他newxxx()静态方法,取得InputStream、OutputStream、Reader、Writer实例。

·Buffer的直接子类们都有一个allocate()静态方法,可以让你指定Buffer容量。(填装的数据不会超过它的容量)

·应用程序开发者可以通过java.nio.file包中FileSystems、Paths、Files等类提供的静态方法,取得相关操作对象或进行各种文件系统操作,这些静态方法内部会运用FileSystemProvider来取得所需的操作对象,完成应有的操作。

第十五章 通用API

·java.util.logging包提供了日志功能相关类与接口,不必额外配置日志组件,就可在标准Java平台使用是其好处。使用日志的起点是Logger类,Logger类的构造函数标示为protected,不是java.util.logging同包的类不能直接以new创建,要取得Logger实例,必修使用Logger的静态方法getLogger()。

·调用getLogger()时,必须指定Logger实例所属名称空间,名称空间以“.”作为层级区分,名称空间层级相同的Logger,其父Logger组态相同。

·Logger是记录信息的起点,要输出的信息,必须先通过Logger的Lever与Filter过滤,在通过Handler的Lever与Filter过滤,格式化信息的动作交给Formatter,输出信息的动作实际上是Handler负责。

·Logger有层级关系,名称空间层级相同的Logger,父Logger组态会相同,每个Logger处理完自己的日志动作后,会向父Logger传播,让父Logger也可以处理日志。

使用Handler与Formatter

·Java SE提供了五个预设的Handler:

·java.util.logging.ConsoleHandler

·java.util.logging.FileHandler

·java.util.logging.StreamHandler

·java.util.logging.SocketHandler

·java.util.logging.MemoryHandler

·Logger阶层关系:给getLogger()方法的名称是有意义的

·给定“onlyfun”,实际上您将从根(Root)logger继承一些特性再取得一个Logger实例,并给定名称"onlyfun.caterpillar",则这次取得的Logger将继承"onlyfun"这个Logger的特性

·使用ResourceBundle:用java.util.ResourceBundle来作讯息绑定messages.properties

.properties档案必须放置在Classpath的路径设定下

·在创建FileHandler指定模式字符串:

·1、使用“%h”来表示用户的根目录

·2、使用“%t”取得系统暂存目录

·3、使用“%g”自动为文档编号

·4、使用“%h/config%g.log”表示将configN.log文件存储在用户根目录下,N表示每个信息的文档编号,会自动递增。

·如果java.util.logging包中提供的Handler成果都不符合需求,可以继承Handler类,操作抽象方法publish()、flush()、close()方法来自定义Handler。

·在职责分配上,Handler是负责输出,格式化是交由Formatter,而信息过滤是交给Filter。Handler有默认的isLoggable()操作,会先依据Level过滤信息,再使用指定的Filter过滤信息。format()方法会传入LogRecord,存储所有日志信息。

·除了依据层级过滤之外,还可以加入额外过滤条件,,就可以操作Filter接口。

·国际化:

·1.国际化的三个重要概念是地区信息、资源包、基础名称。

·2.建立一个message.zh_TW.properties,必须使用Unicode编码表示,则可以通过JDK工具程序native2ascii来协助转换。如果想将Unicode编码表示的.properties转回中文,则可以使用—reserve自变量。

·想提供messages_en_US.properties档案,并想要ResourceBundle.getBundle()取得这个档案的内容:

Locale locale = new Locale("en", "US");ResourceBundle resource =            ResourceBundle.getBundle("messages", locale);

·预定义字符类. :任一字符\d:比较任一数字字符\D:比较任一非数字字符\s:比较任一空格符\S:比较任一非空格符\w:比较任一ASCII字符\W:比较任一非ASCII字符

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

·这一周的内容对于动手实践的要求并不多,很多内容都是关于概念性的理解。我觉得这些内容真正要掌握还是需要在今后的动手实践过程中再加以理解,否则光看概念性的知识,还是觉得会空洞和抽象,并不是很能理解。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 4000行 20篇 400小时
第一周 200/200 1/1 15/12
第二周 180/380 1/1 18/12
第三周 600/980 1/1 17/16
第四周 400/380 1/1 16/15
第五周 300/680 1/1 14/14
第六周 200/200 2/2 10/10
第七周 100/100 2/2 10/10
第八周 50/50 1/2 5/5

代码托管截图

通过这一次的实验,我终于学会了用git直接托管代码,而不是在网页上一个个地托管,这样不但麻烦而且很没有效率,现在我就能用git将包括之前的所有的代码一次性托管好,十分省时省力。

参考资料

20145223《Java程序程序设计》第8周学习总结的更多相关文章

  1. 201521145048《Java程序设计管理》第一周学习总结

    1. 本周学习总结 学习并了解Java的发展与历史 在网上视频中学习Java 了解并区分JVM JRE JDK 将java与已学语言做比较,发现相同处 2. 书面作业 Q1.为什么java程序可以跨平 ...

  2. 20145223《Java程序程序设计》课程总结

    20145223<Java程序程序设计>课程总结 每周读书笔记链接汇总 第一周学习总结 第二周学习总结 第三周学习总结 第四周学习总结 第五周学习总结 第六周学习总结 第七周学习总结 第八 ...

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

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

  4. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

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

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

  6. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

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

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  8. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  9. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

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

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

随机推荐

  1. 【jquery】字符ascii码转换函数

    js 字符ascii码转换函数 字符转ascii码:用charCodeAt();ascii码砖字符:用fromCharCode(); 看一个小例子 <script> str="A ...

  2. mac系统下如何解压.car文件

    纯手打: 1.去github下载demo然后运行  github地址:https://github.com/steventroughtonsmith/cartool 2.找到项目下cartool的位置 ...

  3. Java Socket编程题库

    一.    填空题 ___ IP地址____用来标志网络中的一个通信实体的地址.通信实体可以是计算机,路由器等. 统一资源定位符URL是指向互联网"资源"的指针,由4部分组成:协议 ...

  4. ios cell展示可滑动的图片

    需求: 点击cell上的图片.图片以原图显示出来,可以放大或缩小.再次点击图片移除图片显示原来界面.(和QQ空间看图片类似) 点击图片实现效果: 1. 自定义一个 UITableView (KDIma ...

  5. August 23rd 2016 Week 35th Tuesday

    The very essence of romance is uncertainty. 浪漫的精髓就在于它充满种种可能. And the uncertainty of life may be also ...

  6. IFC

    IFC是设计师使用的软件,然后存储的格式. 这个适用于精细的设计.

  7. Linux Shell多命令执行

    有三种: :只是顺序执行,命令之间没有任何关联,不相互影响.如  ls;date;cd /etc/ 如,创建100M的文件. && 命令之间有关系,只有前一条命令正确执行才会执行下面一 ...

  8. Android Native jni 编程入门

    在某些情况下,java编程已经不能满足我们的需要,比如一个复杂的算法处理,这时候就需要用到jni(java native interface)技术: jni 其实就是java和c/cpp之间进行通信的 ...

  9. Delphi强制类型转化和类型约定

    强制类型转换时一种技术,通过它能够使编译器把一种类型的变量当做另一种类型. 由于Pascal有定义新类型的功能,因此编译器在调用一个函数时候对形参和实参类型匹配的检查是非常严格的.因此为了能够通过编译 ...

  10. poj 1005:I Think I Need a Houseboat(水题,模拟)

    I Think I Need a Houseboat Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 85149   Acce ...