20155322 2016-2017-2 《Java程序设计》第8周学习总结

教材学习内容总结

第八周学习的主要内容是课本的第十四第十五章,主要学习了以下知识点:

  • 了解NIO
  • 会使用Channel、Buffer与NIO2
  • 会使用日志API、国际化

Java NIO

Java NIO 由以下几个核心部分组成:

  • Channels
  • Buffers
  • Selectors

所有的 IO 在NIO 中都从一个Channel 开始。Channel 有点象流。 数据可以从Channel读到Buffer中,也可以从Buffer 写到Channel中。

Selector允许单线程处理多个 Channel。如果你的应用打开了多个连接(通道),但每个连接的流量都很低,使用Selector就会很方便。

日志API:

•Logger: 注意无法使用构造方法生成Logger对象。java.util.logging包提供了日志功能相关类与接口,使用日志的起点是logger类,Logger类的构造函数标示为protected,不是java.util.logging同包的类不能直接以new创建,必许使用Logger的静态方法,如:
Logger logger=Logger.getLogger("xxx");

• getLogger:调用getLogger()时,必须指定Logger实例所属名称空间,名称空间以“.”作为层级区分,名称空间层级相同的Logger,其父Logger组态相同。通常在哪个类中取得的Logger,名称空间就会命名为哪个类全名。

• getLevel:取得的Logger实例之父Logger组态,就是Logger.GLOBAL_LOGGER_NAME名称空间Logger实例,可通过getParent()取得设定的Logger实例,可通过getLevel()取得设定的Level实例。

• setLevel:可以通过setLevel()设定Level实例,若log()时指定的Lever实例内含的int值小于Logger设定的Level实例内含的int值,Level就不会记录信息。

• Handler:输出介质

• MemoryHandler:不会格式化日志信息,信息会暂存于内存缓冲区,直到超过缓冲区大小,才将信息输出至指定的目标Handler。

• StreamHandler:可自行指定信息输出时使用的OutputStream实例,它与子类都会使用指定Formatter格式化信息。

• Formatter: 格式化

• FileHandler默认的Formatter是XMLFormatter;

• ConsoleHandler默认使用SimpleFormatter;这两个类是Formatter的子类,可以通过Handler的setFormatter()方法设定Formatter。

• Handler、Formatter、Filter负责日志输出;MemoryHandler不会格式化日志信息,信息会暂存于内存缓冲区,直至超过大小才将信息输出至指定的目标Handler;StreamHandler可自行指定信息输出时使用的OutputStream;ConsoleHandler,日志信息会显示在控制台;FileHandler ,文档位置与名称可以使用模式字符串指定;SocketHandler ,创建时可以指定主机位置与端口;Handler是负责输出,Formatter负责格式化,而信息过滤是交由Filter。

• logging.properties 可以通过logging.properties来设定Logger组态。

• ResourceBundle对于日后可能变动的文字信息,可以考虑将信息移至程序之外,使用ResourceBundle来做信息绑定;.properties文档必须放置在CLASSPATH的路径设定下,文档中撰写的是键/值配对;getBundle()会自动找到对应的.properties文档,取得ResourceBundle实例后,可以使用getString()指定键来取得文档中对应的值。

•Locale 国际化的三个标准是地区信息、资源包与基础名称;地区信息代表了特定的地理、政治或文化区,资源包中包括了特定地区的相关信息。

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

  • 首先主要是和自己的结对对象讨论一些教材前几章的问题。
  • 代码调试中的问题和解决过程

  • 问题1:找不到类
  • 解决:添加classpath

代码托管

上周考试错题总结

  • 下面哪些Linux 命令可以ASCII码和16进制单字节方法输出Hello.java的内容?
    A .od -b -tx1 Hello.java
    B .od -tcx1 Hello.java
    C .od -tc -tx1 Hello.java
    D .od -tbx1 Hello.java
    正确答案: B C
    我的答案: C
    分析:-b 是以八进制输出

  • JDK8 中新时间API中,用于度量时间的类有()
    A .Instant
    B .Duration
    C .Period
    D .LocalDateTime
    正确答案: B C
    你的答案: A D

  • An object can be thought of as a blueprint for a set of classes(对象被认为是类集合的蓝图).
    A .true
    B .false
    正确答案: B
    我的答案: A

  • When an object is passed to a method, the actual and formal parameters become aliases(当把对象传递给方法时,实参和形参互为别名).
    A .true
    B .false
    正确答案: A
    我的答案: B

Given the following, which answers can correctly fill in the blank? (Choose all that apply.)针对下面的代码,()中应填入哪个选项?
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()
正确答案: F
我的答案: A
分析:选项C,D和E是不正确的,因为源对象不代表时间点。没有时区,java不知道什么时候使用。

结对及互评

评分标准

  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分

点评过的同学博客和代码

  • 本周结对学习情况

    • 20155302杨效宸
    • 结对照片
    • 结对学习内容:
      • 了解NIO
      • 会使用Channel、Buffer与NIO2
      • 复习第六章相关知识
  • 上周博客互评情况
  • 20155302杨效宸
  • 20155335黄月
  • 20155311李玺
  • 20155313杨瀚

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 15篇 400小时
第一周 4/4 1/1 10/10
第二周 20/24 1/2 9/19
第三周 80/104 1/3 10/29
第四周 343/ 447 1/4 15/44
第五周 748/1195 1/5 20/64 能够自己敲出一些简单的程序
第六周 207/1402 1/6 10/74 继续敲出一些简单的程序
第七周 241/1643 2/8 11/85
第八周 209/1852 1/9 11/96
  • 计划学习时间:20小时

  • 实际学习时间:11小时

  • 改进情况:无

参考资料

  • Java学习笔记(第8版)

  • 《Java学习笔记(第8版)》学习指导

  • Java中classpathd的路径和使用

转载于:https://www.cnblogs.com/blackay03/p/6720563.html

20155322 2016-2017-2 《Java程序设计》第8周学习总结相关推荐

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

    20175317 <Java程序设计>第一周学习总结 教材学习内容总结 本周学习了Java大致的开发步骤,完成了课件自带的习题. 学习了在windows与Linux系统下不同的编译方法,掌 ...

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

    20155227 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联 ...

  3. 20172318 2016-2017-2 《Java程序设计》第一周学习总结

    20172318 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 在教材中基本明白了计算机系统的运行方式,了解了对于高级语言是使用是掌握好编程的关键,掌握了一 ...

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

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

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

    20175208 2018-2019-2 <Java程序设计>第九周学习总结 一.教材学习内容总结: 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系 ...

  6. 20175204 张湲祯 2018-2019-2《Java程序设计》第九周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第九周学习总结 教材学习内容总结 -第十一章JDBC和MySQL数据库要点: 1.下载MySQL和客户端管理工具navi ...

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

    20155313 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 1.1 基本类型 整数:可细分为short整数(占2字节).int整数(占4字节)与long ...

  8. 20155226 2016-2017-2 《Java程序设计》第一周学习总结

    20155226 2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 第一周主要学习了一二章的内容,也浏览了剩余章节,以下是本周主要学习内容总结 1.首先了解了[ ...

  9. 20172325 2018-2019-1 《Java程序设计》第二周学习总结

    20172325 2018-2019-1 <Java程序设计>第二周学习总结 教材学习内容总结 3.1集合 集合是一种聚集.组织了其他对象的对象.集合可以分为两大类:线性集合和非线性集合. ...

  10. 张旭升20162329 2006-2007-2 《Java程序设计》第一周学习总结

    20162329 2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 通过打书上的代码熟悉了Java编程的基本过程 教材学习中的问题和解决过程 1.因为我的虚拟机 ...

最新文章

  1. 2097352GB地图数据,AI技术酷炫渲染,《微软飞行模拟器》游戏即将上线
  2. python写web难受-用Python编写web API的教程
  3. 浙大计算机知识基础,计算机基础知识题浙大远程
  4. Java国际化的简单实现方法
  5. node.js邮箱注册,激活,登陆相关案例
  6. yum mysql_yum安装mysql
  7. linux计划任务执行bin文件,Linux任务计划和周期性任务执行
  8. JMeter的PUT请求,响应结果中文出现乱码的解决方法
  9. bzoj4390[Usaco2015 dec]Max Flow*
  10. linux cat 重定向,Linux命令(cp mv cat和重定向)(示例代码)
  11. 最好最实用的PHP二次开发教程
  12. 炫酷进度条:Android 仿应用宝下载进度条
  13. 通信业的双11来了!充话费、办宽带、买手机每年这时候最划算
  14. 从此告别PPT制作的烦恼:ChatGPT和MindShow帮你快速完成
  15. inux中,如何把一个目录及其子目录中的读写权限交给一个普通用户!
  16. H3C交换机命名规则
  17. 【工作】论文格式详细要求
  18. 黑客在开源网站植入秘密后门、恶意软件通过非常规IP逃避检测|1月25日全球网络安全热点
  19. 阿里云网站备案期间对网站访问会有什么影响吗?
  20. 关于WEB字体的介绍:verdana和georgia字体

热门文章

  1. 揭秘 | 2021年移动云API大赛决赛大奖花落谁家?
  2. FS2711代替松翰2711国产单片机
  3. python为什么会出现无响应怎么办,Python多处理中无响应进程的终止
  4. Java How to Program练习题_第六章_深入理解方法(Methods: A Deeper Look)
  5. 好文摘记——施一公教授:如何提高专业英语阅读水平
  6. java判断文件是否被占用_java判断一个文件是否正在被其他程序使用(调用)?...
  7. showVideo C#版 摄像头驱动程序
  8. 0基础学HTML,从快捷方式(IntelliJ IDEA)入手,一步步就能看懂了!
  9. Zigbee物联网应用
  10. 正向最大匹配、逆向最大匹配与双向匹配算法实现