Java NIO 由如下几个核心部分组成:
Channels
Buffers
Selectors
Channles包括:
ReadableByteChannel
WritableByteChannel
Buffers包括:
ByteBuffer
CharBuffer
DoubleBuffer
FloatBuffer
IntBuffer
LongBuffer
ShortBuffer
Selector容许单线程处理多个 Channel。若是应用打开了多个链接(通道),但每一个链接的流量都很低,使用Selector就会很方便。html
java.nio.file.Files 与 java.nio.file.FileVisitor 使得您能够在文件系统中漫步,在特定目录深度查询文件或者目录,并可对每一个查询结果执行用户实现的回调方法。
java.nio.file.Path 与 java.nio.file.WatchService 容许 “ 注册 ” 来监视特定目录。若是在目录中发生了文件建立、修改或者删除操做,监视目录的应用程序将收到通知。
java.nio.attribute.AttributeView 容许查看此前对于 Java 用户隐藏的文件和目录属性。这些属性包括文件全部者及组权限,访问控制列表(ACL),以及扩展文件属性。
NIO.2 提供了 FileVisitor 的实现接口:java.nio.file.SimpleFileVisitor。该类以基础方式获取:对于 Failed() 方法,它只是从新引起该异常,而且对于其余方法,它会继续下去而根本不作任何事!它的做用在于,可使用匿名类来替代您所但愿替代的方法;剩下的方法会按默认方式实现。FileVisitor 的实现,应当为其访问的每一个目录和文件打印消息,并给出从其 BasicFileAttributes 中获取的文件大小。
DecimalFormat类
DecimalFormat类 包含一个模式 和一组符号
符号含义:
0 一个数字
一个数字,不包括 0
. 小数的分隔符的占位符
, 分组分隔符的占位符
; 分隔格式。java
一、日志工具类(logger):一般,大部分的日志框架都会定义一个主要的日志输出的工具类,开发者只须要声明该类,便可实现大部分的日志输出操做
二、日志输出级别(Level):日志输出的级别,意味着该日志的重要程度,大部分的日志框架的级别会分为:Debug(调试模式),Info,warn,error,fatal,其中,根据级别的大小排序,debug>info>warn>error>fatal。级别的大小,将会影响日志的输出,将级别设置的越高,输出的信息将会越多
三、日志输出格式(format):日志输出的格式,一般能够进行自定义,经过自定义的格式,输出的详细效果将不一样
四、日志输出的方式:即将日志输出到哪?常见的输出方式包括如:控制台,文本文件,数据库等
五、日志分割:日志文件若以文件的方式进行输出的话,会存在文件大小问题,因此须要对日志进行分割,分割的方式能够分为按大小,按日期等。
Handler:输出介质
MemoryHandler不会格式化日志信息,信息会暂存于内存缓冲区,直到超过缓冲区大小,才将信息输出至指定的目标Handler。
StreamHandler可自行指定信息输出时使用的Outputstream实例,它与子类都会使用指定的Formatter格式化信息。
ConsoleHandler建立时,会自动指定Outputstream为System。err,因此日志信息会显示在控制台。
FileHandler建立时会创建日志输出时使用的FileOutputStream,文档位置与名称可使用模式字符串指定。
SocketHandler建立时能够指定主机位置与端口,内部将自动创建网络联机,将日志信息传送至指定的主机。
addHandler()新增Hnadler实例。
removeHandler()移除Handler实例。
Handler是负责输出,格式化是交由Formatter,而信息过滤是交由Filter。Handler有默认的isLoggable()操做,会先依据Level过滤的信息,再使用指定的Filter过滤信息。git
字符与元字符
字符类
贪婪、非贪婪、独占量词
边界比较
锚点
分组与反向引用正则表达式
logger类
经过Logger类的静态方法Logger.getRootLogger获得RootLogger。全部其余的loggers是经过静态方法Logger.getLogger来实例化并获取的。数据库
private static Logger logger = Logger.getLogger(Test.class.getName()); Logger logger = Logger.getRootLogger(); logger.debug("This is debug message."); // 记录info级别的信息 logger.info("This is info message."); // 记录error级别的信息 logger.error("This is error message.");
Level类
编程
ResourceBundle类
getBundle(String)
获取恰当的资源束子类。
getBundle(String, Locale)
获取恰当的资源束子类。
getKeys()
返回键的枚举。
getObject(String)
从资源束获取一个对象。
getString(String)
从资源束获取一个对象。
getStringArray(String)
从资源束获取一个对象。
handleGetObject(String)
从资源束获取一个对象。
setParent(ResourceBundle)
设置该束的父类束。api
Pattern类和Matcher类
il.regex是一个用正则表达式所订制的模式来对字符串进行匹配工做的类库包。它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表现模式。 Matcher 一个Matcher对象是一个状态机器,它依据Pattern对象作为匹配模式对字符串展开匹配检查。 首先一个Pattern实例订制了一个所用语法与PERL的相似的正则表达式经编译后的模式,而后一个Matcher实例在这个给定的Pattern实例的模式控制下进行字符串的匹配工做。网络
问题1:
对于正则表达式的细则不够了解架构
问题1解决方案:
详细可参考:正则表达式语法规则框架
问题2:
对于国际化基础概念不够清晰
问题2解决方案:
同计算机编程有关的国际化是设计和编写应用程序以即可以在全球或多国环境中使用的过程。国际化程序可以支持不一样的语言以及不一样格式的日期、时间、货币和其它值,而无须软件修改。这一般涉及“软编码”或将文本组件同程序代码分离而且可能涉及可插入代码模块。
问题1:
问题1解决方案:
for语句成分不完整,添加完整后运行成功
问题2:
问题2解决方案:
运行过程出现问题,还没有解决
错题1及缘由,理解状况
vi中哪条命令是不保存强制退出?
q!
错题2及缘由,理解状况
JDK8中定义的通用函数接口,从行为上分为()类型:
A .
Consumer
B .
Function
C .
Predicate
D .
Supplier
答案为ABCD
错题3及缘由,理解状况
JDK8 中新时间API中,用于度量时间的类为Duration和Period
错题4及缘由,理解状况
须要人类能理解的时间,建议使用Date类的toString(). 说法是错误的。
错题5及缘由,理解状况
下面哪些类的对象会包含“东部标准时间”的信息
ZonedDateTime
错题6及缘由,理解状况
当应用到实例变量时,____可见性修饰符强制执行封装
private
教材学习中的问题和解决过程, 一个问题加1分
代码调试中的问题和解决过程, 一个问题加1分
基于评分标准,我给本博客打分:XX分。得分状况以下:xxx
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 6/6 | 1/4 | 20/20 | |
第二周 | 334/340 | 1/5 | 18/38 | |
第三周 | 570/900 | 1/6 | 22/60 | |
第四周 | 544/1358 | 1/7 | 30/90 | |
第五周 | 731/2089 | 1/8 | 30/90 | 了解了java中的架构,排序,以及异常处理 |
第七周 | 541/3558 | 2/10 | 30/90 | 了解了JDK8新的时间日期API |
第八周 | 430/3877 | 1/11 | 30/90 | 学习了NIO、NIO2与通用API |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进本身的计划能力。这个工做学习中很重要,也颇有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:25小时
实际学习时间:20小时
改进状况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)