日志

•java.util.logging包提供了日志功能相关类与接口,使用日志的起点是logger类,Logger类的构造函数标示为protected,不是java.util.logging同包的类不能直接以new创建,不许使用Logger的静态方法。

•Logger与Handler默认都会先依据Level过滤信息,如果没有做任何修改,取得的Logger实例之父Logger组态就是Logger.GLOBAL-LOGGER-NAME空间名称Logger实例的组态。

•在没有任何组态设定的情况下,默认取得的Logger实例,层级必须大于或等于Logger.GLOBAL-LOGGER-NAME名称空间logger实例设定的Level.INFO,才可能输出信息。

•在建立FileHandler指定模式字符串时,可以使用“%h”来表示用户的根目录,还可以使用“%t”取得系统暂存目录,或者使用“%g”自动为文档编号。

·Handler是负责输出,Formatter负责格式化,而信息过滤是交由Filter。

国际化基础

•ResourceBundle的静态getBundle()方法会取得一个ResourceBundle的实例,所给定的自变量名称是信息文档的主文件名,getBundle()会自动找到对应的.properties文档,取得ResourceBundle实例后,可以使用getString()指定键来取得。

Locale

•国际化的三个标准是地区(Locale)信息、资源包(Resource bundle)与基础名称(Base name)。

•地区信息的对应类是Locale,在建立Locale实例时,可以指定语言编码与地区编码。

Stream相关API

•Stream是JDK8中重要的新特性之一。Files上有几个静态方法,例如lines()、list()、walk()等方法,对于这类返回Stream实例的API,主要可适用于需要管线化、惰性操作的场合。

•如果想对数组进行管线化操作,方法之一市是使用Arrays的asList()方法返回List,而后调用stream()方法取得Stream实例,另一个方法是使用Arrays的stream()方法,它可以指定数组后返回Stream实例。

认识NIO

NIO使用频道(Channel)来衔接数据节点,在处理数据时,NIO可以让你设定缓冲区(Buffer)容量,在缓冲区中对感兴趣的数据区块进行标记,像是标记读取位置、数据有效位置,对于这些区块标记,提供了clear()、rewind()、flip()、compact()等高级操作。

使用Handler与Formatter

1.负责日志输出的是Handler实例。

MemoryHandler不会格式化日志信息,信息会暂存于内存缓冲区,直到超过缓冲区大小,才将信息输出至指定的目标Handler。
StreamHandler可自行指定信息输出时使用的OutputStream实例,它与子类都会使用指定Formatter格式化信息。
ConsoleHandler创建时,会自动指定OutputStream为System.err,所以日志信息会显示在控制台。
FileHandler创建时会建立日志输出时使用的FileOutputStream,文档位置与名称可以使用模式Pattern字符串指定。
SocketHandler创建时可以指定主机位置与端口,内部将自动建立网络联机,将日志信息传送至指定的主机。

2.Logger可以使用addHandler()新增Handler实例,使用removeHandler()移除Handler。

3.在创建FileHandler指定模式字符串:

使用“%h”来表示用户的根目录
使用“%t”取得系统暂存目录
使用“%g”自动为文档编号
使用“%h/config%g.log”表示将configN.log文件存储在用户根目录下,N表示每个信息的文档编号,会自动递增。

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

5.如果要以特定编码输出信息或存储文档,Handler有个setEncoding()方法,可以指定文字编码。

自定义Handler、Formatter与Filter

1.如果java.util.logging包中提供的Handler成果都不符合需求,可以继承Handler类,操作抽象方法publish()、flush()、close()方法来自定义Handler。

2.在职责分配上,Handler是负责输出,格式化是交由Formatter,而信息过滤是交给Filter。Handler有默认的isLoggable()操作,会先依据Level过滤信息,再使用指定的Filter过滤信息。 format()方法会传入LogRecord,存储所有日志信息。

3.除了依据层级过滤之外,还可以加入额外过滤条件,,就可以操作Filter接口。

使用logging.properties

改变Logger对象的组态的方法:

(1)使用程序撰写方式
(2)通过logging.properties来设定Logger组态。

Stream相关API

1.对数组进行管线化操作的方法:

(1)使用Arrays的asList()方法返回List,而后调用stream()方法取得Stream实例
(2)使用Arrays的stream()方法,可以指定数组后返回Stream实例。

2.CharSequence上新增了chars()和codePoints()犯法,都是返回intStream,前者代表一串字符的整数值,后者代表一串字符的的码点。

3.Math在JDK8中也新增了不少数学运行相关API,例如,multiPlluExact()、floorMod()、floorDiv()等。

参考资料

20145309《Java程序设计》第八周学习总结的更多相关文章

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

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

  2. 201571030332 扎西平措 《面向对象程序设计Java》第八周学习总结

    <面向对象程序设计Java>第八周学习总结   项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https: ...

  3. 201871010106-丁宣元 《面向对象程序设计(java)》第八周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第八周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...

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

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

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

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

  6. 20145236 《Java程序设计》第九周学习总结

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

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

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

  8. 20145237 《Java程序设计》第九周学习总结

    20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...

  9. 20175209 《Java程序设计》第九周学习总结

    20175209 <Java程序设计>第九周学习总结 一.教材知识点总结 有关数据库下载中存在可能出现的问题已经在博客<数据库安装和使用过程中出现的一些问题>给出了相应的解决办 ...

  10. 20175317 《Java程序设计》第九周学习总结

    20175317 <Java程序设计>第九周学习总结 学前准备 首先下载XAMPP,下载完成后打开: 将前两个选项打开 在IDEA中配置驱动mysql-connector-java-5.1 ...

随机推荐

  1. Objective-C代码学习大纲(5)

    2011-05-11 14:06 佚名 otierney 字号:T | T 本文为台湾出版的<Objective-C学习大纲>的翻译文档,系统介绍了Objective-C代码,很多名词为台 ...

  2. absolute float 比较分析

    同一:absolute-float 都脱离了文档流,也就是默认情况下,父盒子计算高度不包括 absolute/float 的元素 下例: 两个 parentDiv,背景色:深海蓝;边框:1px红色实线 ...

  3. 02.ZooKeeper的Java客户端使用

    1.ZooKeeper常用客户端比较 1.ZooKeeper常用客户端     zookeeper的常用客户端有3种,分别是:zookeeper原生的.Apache Curator.开源的zkclie ...

  4. springboot + ApplicationListener

    ApplicationListener自定义侦听器类 @Component public class InstantiationTracingBeanPostProcessor implements ...

  5. 在Windows上手动安装php开发环境

    安装MySQL 使用官方提供提供的安装包一键安装即可. 打开 mysql,选择Windows,MSI Installer点击下载.附:最新版mysql5.7.18下载地址 点击installer安装, ...

  6. PAT 1026 Table Tennis (30)

    A table tennis club has N tables available to the public. The tables are numbered from 1 to N. For a ...

  7. NGINX优化参数

    (1)nginx运行工作进程个数,一般设置cpu的核心或者核心数x2 如果不了解cpu的核数,可以top命令之后按1看出来,也可以查看/proc/cpuinfo文件 grep ^processor / ...

  8. 【Python数据挖掘】决策树、随机森林、Bootsing、

    决策树的定义 决策树(decision tree)是一个树结构(可以是二叉树或非二叉树).其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别. ...

  9. qt and redis desktop manager

    (ubuntu desktop)http://blog.csdn.net/ficksong/article/details/7497827 redis manager in ubuntu wget h ...

  10. Spring Data 增删改查事务的使用(七)

    @Modifying 注解使用 @Modifying 结合 @Query注解进行更新操作 咱们单单的一个查询注解是没有办法完成事务的操作的 我们还要结合一点就是@Transaction 在spring ...