教材学习内容总结

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

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小时

2016-2017-2 20155309 南皓芯《java程序设计》第八周学习总结的更多相关文章

  1. 2016-2017-2 20155309南皓芯java第五周学习总结

    教材内容总结 这一周学习的进度和前几周比较的话是差不多的,都是学习两章. 异常处理 1.理解异常架构 2.牚握try...catch...finally处理异常的方法 3.会用throw,throws ...

  2. 2016-2017-2 20155309 南皓芯java第六周学习总结

    教材内容详解 这一次主要学习的是第十章与第十一章的内容.主要讲述了串流,字符处理和线程以及并行API. 输入输出 串流:Java中的数据有来源(source)和目的地(destination),衔接两 ...

  3. 2016-2017-2 20155309南皓芯java第四周学习总结

    教材内容总结 这次我们学习的还是两章的内容,学习任务量跟上次比的话大体上来讲是差不多的. 继承与多态 继承 继承也符合DRY(Don't Repeat Yourself)原则 Role role1 = ...

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

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

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

    20155220 2016-2017-2<Java程序设计>第九周学习总结 教材学习内容总结 JDBC(Java DataBase Connectivity)即java数据库连接,是一种用 ...

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

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

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

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

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

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

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

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

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

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

随机推荐

  1. Cannot enlarge string buffer containing XX bytes by XX more bytes

    在ELK的数据库报警系统中,发现有台机器报出了下面的错误: 2018-12-04 18:55:26.842 CST,"XXX","XXX",21106,&quo ...

  2. php获取星期几周几

    PHP星期几获取代码: date("l"); //data就可以获取英文的星期比如Sundaydate("w"); //这个可以获取数字星期比如123,注意0是 ...

  3. 让你快速学会Shell脚本

    Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合.Shell可以直接使用在win/Unix/Linux上面, ...

  4. PHP文件引入

    综述和基本语法 有4个文件加载语句:include,require,include_once,require_once. require函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先 ...

  5. css实现0.5像素的边框

    公司的设计师在做设计图的时候都是以iphone6(宽为750物理像素)为基准进行设计的.iphone6的设备像素比(即css像素与物理像素的比例)是2,所以设计师在设计图画了边框为1px的box的时候 ...

  6. SQL语句(十八)—— 存储过程

    存储过程 系统存储过程 自定义存储过程 扩展存储过程 一.创建存储过程 创建存储过程 --例1 USE SU GO Create Procedure SelProc AS Select * From ...

  7. [译]Quartz.NET 框架 教程(中文版)2.2.x 之第四课 更多关于Triggers

    第四课 更多关于Triggers 跟作业任务类似,触发器也非常容易使用,但是在你能够充分掌握Quartz之前,你需要知道并理解许多触发器的客户化的参数.前面已经提到过,有许多不同类型的触发器供你选择, ...

  8. mysql关于“异步复制”“同步复制”“半同步复制”“无损复制”的概念与区别

    异步复制:主把事务写到binlog日志并不管从是否接收或者什么时候接收,commit之后,不会与从发生ack之类的交互. 同步复制:当主提交一个事务,在主向前端返回一个commit成功的指令前,必须保 ...

  9. Django认证系统实现的web页面

    结合数据库.ajax.js.Djangoform表单和认证系统的web页面 一:数据模块 扩展了Django中的user表,增加了自定义的字段 from django.db import models ...

  10. 十大opengl教程

    正文: 1. http://nehe.gamedev.net/ 这个是我觉得全世界最着名的OpenGL教程,并且有网友将其中48个教程翻译成了中文http://www.owlei.com/Dancin ...