教材学习内容总结

本周学习的主要是第十四章,第十五章的内容。

NIO与NIO2

同步非阻塞IO(Java NIO) : 同步非阻塞,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。用户进程也需要时不时的询问IO操作是否就绪,这就要求用户进程不停的去询问。

异步阻塞IO(Java NIO):
此种方式下是指应用发起一个IO操作以后,不等待内核IO操作的完成,等内核完成IO操作以后会通知应用程序,这其实就是同步和异步最关键的区别,同步必须等待或者主动的去询问IO是否完成,那么为什么说是阻塞的呢?因为此时是通过select系统调用来完成的,而select函数本身的实现方式是阻塞的,而采用select函数有个好处就是它可以同时监听多个文件句柄(如果从UNP的角度看,select属于同步操作。因为select之后,进程还需要读写数据),从而提高系统的并发性!
(Java AIO(NIO.2))异步非阻塞IO:
在此种模式下,用户进程只需要发起一个IO操作然后立即返回,等IO操作真正的完成以后,应用程序会得到IO操作完成的通知,此时用户进程只需要对数据进行处理就好了,不需要进行实际的IO读写操作,因为真正的IO读取或者写入操作已经由内核完成了。

一 日志

日志API简介:java.util.logging提供了日志功能相关类和接口,使用日志的起点是Logger类,此外如果要取得Logger实例必须使用getLogger(),例如:

Logger logger=Logger.getLogger("cc.openhome.Main");
指定日志层级:Logger实际上是有层级关系的,Logger的信息处理会往父Logger传播,也就是说Logger实例,层级必须大于或者等于Logger_GLOBAL_LOGGER_NAME名称空间Logger实例设定的Level.INFO才可能输出信息。Level.ALL会允许所有信息输出。
public class LoggerDemo {
public static void main(String[] args) {
Logger logger = Logger.getLogger(LoggerDemo.class.getName());

        logger.log(Level.WARNING, "WARNING信息");logger.log(Level.INFO, "INFO信息");logger.log(Level.CONFIG, "CONFIG信息");logger.log(Level.FINE, "FINE信息");}
}

Handler和Formatter: MemoryHandler不会格式化日志信息,信息会暂存于内存缓冲去,直到超过缓冲区大小才将信息输出至指定的目标Handler,如果不想让父Logger的Handler处理日志,可以调用Logger实例的setUseParentHandlers()设定为false

自定义Handler、Formatter和Filter:Handler是负责输出,Formatter是格式化,Filter是信息过滤。Handler有默认的isLoggablb()操作,会依据Level过滤信息

使用logging.properties:除了通过程序,还可以通过logging.properties来设定Logger组态

二 国际化基础

使用ResourceBundle:以后可能变动的文字信息,可以考虑将信息移动到程序之外,然后使用ResourceBundle来绑定,但是要事先准备一个.properties文档,并且放置在CLASSPATH路径之下

Locale:Locale信息的对应类为Locale,在建立Locale实例时,可以指定语言编码与地区编码,如Locale locle=new Locale("zh","TW")

三 规则表示式

简介:
规则表示式一般包括两种字符,字面意义字符和元字符,字母和数字本身是一种字面意义字符,但是在这些字符之前加上了\就会变成元字符,如\n就是指换行
多个字符归在一起成为一个字符类,归类字符的方式之一就是放在[]中
如果想要用户输入格式xxxx-xxxx,可以表示成\d\d\d\d-\d\d\d\d,更可以简化成\d{4}-\d{4}
\b可以用来标出边界 边界比较用来表示文字必须符合指定的边界条件,也就是定位点,也可以称为锚点(Anchor)
pattern和Matcher:
通过Pattern的静态方法compile来取得Pattern实例

取得Pattern实例后,可以使用split()方法将指定字符串进行切割,效果与String的split()方法相似

四 JDK8 API新增功能

StringJoiner、Arrays新增API
String.join()、StringJoiner:如果想用诸如逗号之类的符号分割一串字符串,可以直接使用String.join。例如String message=String.join("-",str)
Arrays:新增了parallelPrefix(),parallelSetAll()和paralleSort()
Stream相关API:stream的range方法可以产生一个整数范围,java.util.Random类可以用来产生随机数。

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

1.搞清楚API到底是什么含义?
api,application programming interface,应用程序编程接口。
在不同场合,这个编程接口的含义不同
java api是指java标准类库提供的函数,android开发的api是指android sdk函数库。
网站api一般是指一个网站提供的接口,比如登录验证、信息查询、通知、支付等等。
windows api是指windows操作系统提供的api

2.然后解决了书上的课后题

java日志API中()类负责实际输出?
a.Logger

b.Handler

c.Filter

d.Formatter

答案是b

java日志API中,输出的日志会经过()两个类的过滤

a.Logger

b.Handler

c.Formatter

d.Stream

答案是a,b

国际化的3个重要概念是()

a.地区名称

b.资源包

c.基础名称

d.格式化

答案是a,b,c

3.问题:p471LoggerDemo为什么不会输出Level.CONFIG和Level.FINE的信息?

解决过程:结合P472图示与P473讲解,得知Logger的层级必须大于等于父Logger,才能将信息输出至控制台,Logger层级默认为INFO,Level.CONFIG和Level.FINE都小于INFO,所以不会输出

代码调试以及解决过程

本周代码调试没有任何问题

代码量以及代码截图https://git.oschina.net/bestiisjava2017/nhx20155309-Java

错题总结

vi中哪条命令是不保存强制退出?

A .
:wq
B .
:wq!
C .
:q!
D .
:q
答案是a

2.下面哪些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

3.JDK8中定义的通用函数接口,从行为上分为()类型:

A .
Consumer
B .
Function
C .
Predicate
D .
Supplier
答案是a,b,c,d

4.DK8 中新时间API中,用于度量时间的类有()
A .
Instant
B .
Duration
C .
Period
D .
LocalDateTime
答案是a,d

5.Java 8之前,对日期进行运算,使用()类。
A .
Date
B .
DateFormat
C .
Calendar
D .
SimpleDateFormat
答案是c

6.When applied to instance variables, the ________________ visibility modifier enforces encapsulation(当应用到实例变量时,____可见性修饰符强制执行封装).
A .
static
B .
final
C .
public
D .
private
E .
none of the above(以上都不是)
答案是a
7.Which of the following method headers is most likely a header for a mutator method?(以下哪个方法头部最有可能是设值方法的头部?)
A .
public int getAge()
B .
public double computeSalary()
C .
public Person()
D .
public void setAge(int newAge)
E .
none of these are headers for a mutator method(以上均不是设值方法的头部)
答案是d
8.Which of the following objects could contain the information “eastern standard time”?(下面哪些类的对象会包含“东部标准时间”的信息)
(Choose all that apply.)
A .
Instant
B .
LocalDate
C .
LocalDateTime
D .
LocalTime
E .
ZonedDateTime
答案是e
9.Which of the following are stored in a Period object? (Choose all that apply.) 下面哪些内容会出现在Period对象中?

A .
Year
B .
Month
C .
Day
D .
Hour
E .
Minute
F .
Second
答案是a,b,c

结对及互评

结对同学 20155220 吴思其
其他评论
http://www.cnblogs.com/elevator/p/6685581.html
http://www.cnblogs.com/rhl20155319/p/6686776.html
http://www.cnblogs.com/lhyhahaha/p/6686244.html
http://www.cnblogs.com/J1n233/p/6686315.html#3663589
http://www.cnblogs.com/wxwddp/p/6682723.html

学习及感悟

在进行到这里,书上所学的内容已经进行的差不多了,并且上次云班课的考试让我意识到我在java的学习方面还有很多欠缺。以后会更加认真的学习与思考问题,不会的知识会立刻弄懂。

学习进度条

代码行数(新增/累积) 博客量(新增/累积)  学习时间(新增/累积) 

目标 5000行 30篇 400小时
第一周 50/100 1/1 24/24
第二周 250/300 1/2 30/54
第三周 552/852 1/3 16/60
第四周 717/1569 1/4 10/70
第五周 495/2064 1/5 6/76
第六周 754/2818 1/6 7/82
第七周 679/3493 2/8 5/87
第八周 724/4011 2/7 5/90

计划学习:7小时
实际学习:5小时

转载于:https://www.cnblogs.com/nhx19970709/p/6714247.html

2016-2017-2 20155309 南皓芯《java程序设计》第八周学习总结相关推荐

  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. asp.net调用百度地图API,实现电子地图
  2. 网卡绑定技术linux c,Linux多网卡绑定
  3. Python实现1-9数组形成的结果为100的所有运算式
  4. 【转】关于arcgis server ADF的几种超时
  5. Pandas实用技能,将列(column)排序的几种方法
  6. c语言的使用比例远远高于python语言对吗_Python和C语言的语法有什么不同?
  7. CSPNOIP2020总结
  8. 笨办法学 Python · 续 练习 38:SQL 简介
  9. openssl、libosip2、libeXosip2三个库的编译过程
  10. 区块链教育平台Metisedu将于4月推出beta版本
  11. arcgis 投影坐标系转地理坐标系_空间坐标与投影系统系列(二):国内常用投影坐标系...
  12. atitit 项目团队管理之道.docx
  13. 微软WIN10应用商店无法下载应用
  14. R语言绘图—在绘图中实现截断值
  15. 百度C++研发工程师面试题(最新整理)
  16. 2016年俄罗斯M2M市场达100亿俄罗斯卢布
  17. python函数定义时缩进的作用_定义函数时,函数体的正确缩进为?_学小易找答案
  18. Jupyter Notebook主题字体设置及自动代码补全
  19. 基于图像的三维重建——对极几何(3)
  20. WIN10网络显示DNS服务器可能不可用,Win10系统总是提示DNS解析失败无法上网的解决方法...

热门文章

  1. python中的math.floor可以用于整数吗_为什么Python的math.ceil()和math.floor()操作返回浮点数而不是整数?...
  2. 怎样设置电脑壁纸_怎样把C盘设置成禁止安装任何软件?教你两个方法,告别电脑卡顿...
  3. oracle 删除数据_2020最新最全数据库系统安全
  4. 从零构建一个图像分类项目 -- 代码
  5. python qt刷新_Python Qt.SizeFDiagCursor方法代码示例
  6. bin文件查看器app_鸿蒙系统编译第一个APP:hello
  7. locate命令详解
  8. codeforces 455D Serega and Fun
  9. python笔记26-命令行传参sys.argv实际运用
  10. ETL工具 DataX数据同步,LINUX CRONTAB 定时调度