2016-2017-2 20155309 南皓芯《java程序设计》第八周学习总结
教材学习内容总结
本周学习的主要是第十四章,第十五章的内容。
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程序设计》第八周学习总结的更多相关文章
- 2016-2017-2 20155309南皓芯java第五周学习总结
教材内容总结 这一周学习的进度和前几周比较的话是差不多的,都是学习两章. 异常处理 1.理解异常架构 2.牚握try...catch...finally处理异常的方法 3.会用throw,throws ...
- 2016-2017-2 20155309 南皓芯java第六周学习总结
教材内容详解 这一次主要学习的是第十章与第十一章的内容.主要讲述了串流,字符处理和线程以及并行API. 输入输出 串流:Java中的数据有来源(source)和目的地(destination),衔接两 ...
- 2016-2017-2 20155309南皓芯java第四周学习总结
教材内容总结 这次我们学习的还是两章的内容,学习任务量跟上次比的话大体上来讲是差不多的. 继承与多态 继承 继承也符合DRY(Don't Repeat Yourself)原则 Role role1 = ...
- 201521123027 <java程序设计>第八周学习总结
1.本周学习总结 1.1思维导图 2.书面作业 Q1.List中指定元素的删除(题目4-1) 1.1 实验总结 总结:判断List中是否存在指定元素,需要用到equals方法,若存在就用remove进 ...
- 20155220 2016-2017-2 《Java程序设计》第九周学习总结
20155220 2016-2017-2<Java程序设计>第九周学习总结 教材学习内容总结 JDBC(Java DataBase Connectivity)即java数据库连接,是一种用 ...
- 20155336 2016-2017-2《JAVA程序设计》第九周学习总结
20155336 2016-2017-2<JAVA程序设计>第九周学习总结 教材学习内容总结 第十六章 JDBC(Java DataBase Connectivity)即java数据库连接 ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
随机推荐
- unity解析json的两种方式
一直比较钟情于json,用来做数据交互,堪称完美!下面简单说一下unity使用C#脚本如何解析json数据吧. 一.写解析类,借助于JsonUtility.FromJson 直接给个例子吧 1.jso ...
- Java基础-字符串连接运算符String link operator
Java基础-字符串连接运算符String link operator 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 字符串链接运算符是通过“+”进行拼接的. 一.使用“+”进行字 ...
- ip地址、子网掩码、DNS的关系与区别
首先ip地址可能表示内网或者外网地址: 内网也就是局域网,最直观的就是像网吧,公司内部的电脑用交换机,HUB,路由连起来的.再通过光钎.猫接入INTERNET的. 外网就像你家里的一台电脑.用猫拨号上 ...
- css overflow用法
1. overflow-y: auto 侧边栏滚动效果:overflow-y:auto 2. overflow-y: scroll 如果使用overflow:scroll的话,滚动条就一直都在,页面不 ...
- 使用 Collections 实现排序 sort方法 对List 实体类实现Comparable类 示例
package com.test.jj; import java.util.ArrayList; import java.util.Collections; public class Test { A ...
- 2017 清北济南考前刷题Day 7 afternoon
期望得分:100+100+30=230 实际得分:100+100+30=230 1. 三向城 题目描述 三向城是一个巨大的城市,之所以叫这个名字,是因为城市中遍布着数不尽的三岔路口.(来自取名力为0的 ...
- CSS3实战之resize
resize属性可以设置是否允许用户缩放网页中元素的大小 总共有4种取值 none vertical horizontal both 举个栗子 <!DOCTYPE html PUBLIC &qu ...
- JS开启浏览器全屏模式,需要手动触发
<html > <meta charset="UTF-8"> <body> <button onclick="launchFul ...
- [整理]内存重叠之memcpy、memmove
函数原型: void *memcpy( void *dest, const void *src, size_t count ); void *memmove( void* dest, const vo ...
- c++模板函数作为参数的疑惑
为什么22行只能传一个模板函数作为参数,而非模板却编译失败,求解释.