教材学习内容总结

第15章 通用API

1 日志

1 日志API简介

  • java.util.loggging包提供了日志功能相关类与接口。
  • 使用日志的起点是Logger类,Logger类的构造函数表示为protected,不是java.util.logging同包的类不能直接以new创建,取得Logger实例,必须用Logger的静态方法getLogger()。
  • 调用getLogger()时必须指定Logger实例所属空间名称,以 . 区分层级,名称空间层级相同的Logger,其父Logger组态相同。
  • 类之后接.class,可取得该类的java.lang.class实例,调用其getName()就可以取得类全名。
  • 要输出的信息,必须先通过Logger的Level与Filter过滤,再通过Handler的Level和Filter过滤,格式化信息的动作交给Formatter。

    2 制定日记层级

  • Level如果没做任何修改,取得的Logger实例之父Logger组态,Level默认是Logger.GLOBAL_LOGGER_NAME(INFO)名称空间Logger实例的组态,Handler默认是ConsoleHandler。
  • Logger实例的getParent()取得父Logger实例,getlevel()取得设定的Level实例。
  • Logger实例的层级必须大于或等于父Logger的Level。
  • 可通过Logger的setLevel()设定层级,可用Level内建几个静态成员来指定。
  • log()时指定的Level实例内含的int值小于Logger设定的Level实例内含的int值,Logger就不会记录信息。
  • Level.OFF用于关闭所有信息输出,Level.ALL用于允许所有信息输出。
  • getHandlers()方法来取得目前已有的Handler实例数组。
  • Handler可以通过setLevel()设定信息。

    3 使用Handler与Formatter

  • MemoryHandler(信息存在缓冲区,超出缓冲区大小)、StreamHandler(可自动指定OutputStream实例)、ConsoleHandler(日志信息会显示在控制台上)、FileHandler(建立日志输出时使用的FileOutputStream)、SocketHandler(联网,将日志信息传至指定主机)。
  • 建立FileHandler指定模式字符串,“%h”表示用户根目录,“%t”取得系统暂存目录,“%g”自动为文档编号。
  • 调用Logger实例的setUseParentHandlers()设定为false,日志不会传播给父Logger,使用setParent()方法指定父Logger

    4 自定义Handler、Formatter与Filter

  • java.util.logging包中提供的Handler成果都不符合需求,继承Handler类,操作抽象方法publish()、flush()与close()方法来定义Handler,操作时考虑信息过滤与格式化。
  • 自定义Formatter,继承Formatter后操作抽象方法format(),传入LogRecord,储存所有日志信息。

    5 使用logging.properties

  • 通过logging.properties来设定Logger组态,修改.properties后另存至程序CLASSPATH中,指定java.util.logging.cofig.file系统属性为.properties名称。

2 国际化基础

1、 使用ResourceBundle

  • 使用ResourceBundle做信息绑定,准备.properties文档并放在CLASSPATH的路径设定下,文件中撰写键/值配对。
  • ResourceBundle的静态getBundle()方法会取得一个ResourceBundle实例,给定自变量名称是信息文档的主文件名,取得实例后用getString()指定键取得文档中对应值。

    2 使用Locale

  • 国际化三个重要概念:地区(Locale)信息、资源包(Resource bundle)与基础名称(Base name)。
  • 地区可由一个语言编码与可选的地区编码来指定。
  • 将Unicode编码表示的.properties转回中文,使用-reverse自变量。

    3 规则表达式

    规则表达式简介:

  • String的spilt()方法,返回切割后各子字符串组成的String数组。
  • 规则表达式基本包括两种字符:字面意义字符与元字符。
  • 字母或数字:比较字母或数字。
  • \:比较\
  • 任一个字符切割:[]
  • 连字符—:表示从...到...
  • 反字符^:表示除...以外的字符
  • 预定义字符
  • 贪婪量词:{n}是贪婪量词表示法的一种,贪婪量词会尽可能的找到长度最长的符合文字
  • 逐步量词:在贪婪量词表示法后加上?,会成为逐步量词(懒惰量词,非贪婪量词),会找到长度最短的符合文字
  • 独吐量词:在贪婪量词表示法后加上+,会成为独吐量词,将剩余文字吃掉,然后看看独吞量词部分是否符合吃下的文字,如果符合就不会再吐出来了
  • replaceAll()会将符合规则表达式的字符串取代后返回新字符串
  • 边界比较用来表示文字必须符合指定的边界条件(定位点)
  • 使用()将规则表达式分组,被分组的规则表达式可以在稍后回头参考

4 JDK8 API增强功能

  • String.join()、StringJoiner:String上有join()静态方法可以指定每个字符串间以什么间隔。
  • Collectors上有joining()静态方法。
  • paralleSort()方法可以将指定的数组分为子数组并以平行化方式分别排序,然后再进行合并排序。
  • 对数组进行管线化操作。
  • 使用Arrays的asList()方法返回List,而后调用stream()方法取得stream实例。
  • 使用Arrays的stream()方法,可以指定数组后返回Stream实例。

其他(感悟、思考等,可选)

通过前面几周的学习,java的核心知识与难点之前都已经学完了,后面的章节大概都是介绍一些类的应用。我觉得发现自己热爱的就应该分配好时间去花更多的时间放在上面,这样才能学好。

学习进度条

代码行数 博客量 学习时间 重要成长
目标 5000行 30篇 400小时
第一周 80 1 15 懂得了Java与C语言的区别,自己要花更多的时间来学习Java
第二周 120 1 15 学会了使用IDE并成功运行代码,也发现了Java语法与C语言的相似。
第三周 200 1 16 有了敲代码同时注释的意识并且运用了少许
第四周 300 1 16 渐渐的了解了模块代码的结合操作
第五周 500 1 15 持之以恒方能成功的做好每一件事
第六周   500     2     18   慢慢用Java结合实际来解决问题|
第七周 500 2 15 明白基础和时间是成正比的
第八周 500 2 15 做好实验才是王道

20145222黄亚奇《Java程序设计》第8周学习总结的更多相关文章

  1. 20145234黄斐《Java程序设计》第九周学习总结

    教材学习内容总结 JDBC Java语言访问数据库的一种规范,是一套API.JDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语 ...

  2. 20145234黄斐《Java程序设计》第二周学习总结

    教材学习内容总结 类型 Java可区分为基本类型(Primitive Type)和类类型(Class Type),其中类类型也叫参考类型(Reference Type). 字节类型,也叫byte类型, ...

  3. 20145234黄斐《Java程序设计》第一周学习总结

    教材学习内容总结 1.java是SUN公司推出的面相网络的编程语言,当时取名Oak,后改名Java. 2.Java三大平台分别为:Java SE.Java EE与Java ME. 3.Java不仅是程 ...

  4. 20145222黄亚奇《Java程序设计》课程总结

    20145222黄亚奇<JAVA程序设计>课程总结 每周读书笔记链接汇总 第一周读书笔记 第二周读书笔记 第三周读书笔记 第四周读书笔记 第五周读书笔记 第六周读书笔记 第七周读书笔记 第 ...

  5. 20145222 黄亚奇 《网络对抗》Exp8 Web基础

    20145222 黄亚奇 <网络对抗>Exp8 Web基础 实践具体要求 (1).Web前端HTML(1分) 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法 ...

  6. 20145222黄亚奇《网络对抗》- shellcode注入&Return-to-libc攻击深入

    20145222黄亚奇<网络对抗>- shellcode注入&Return-to-libc攻击深入 shellcode注入实践过程

  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. 使用网站websequencediagrams在线画时序图

    在线画时序图的网站:https://www.websequencediagrams.com/ 该网站提供拖拉图形和编写脚本代码2个方式来制作时序图,同时提供多种显示风格. 实例: 1.脚本代码: ti ...

  2. WebService核心之WSDL深入详解

    WebService核心之WSDL深入详解 根据上一篇文章开发的Web Service实例生成的WSDL文档如下: XML里两个属性介绍: targetNamespace          相当于ja ...

  3. Spring web.xml配置文件解析

    概要解析

  4. Oracle 11g 中恢复管理器RMAN介绍

    这是我平时摘录的笔记,从管理艺术那本书上摘录出来的,放到这里 RMAN 可在数据库服务器的帮助下从数据库内备份数据文件,可构造数据文件映像副本.控制文件和控制文件映像.对当日志 SPFILE 和RMA ...

  5. MyCat 学习笔记 第十一篇.数据分片 之 分片数据查询 ( select * from table_name limit 100000,100 )

    1 环境说明 VM 模拟3台MYSQL 5.6 服务器 VM1 192.168.31.187:3307 VM2 192.168.31.212:3307 VM3 192.168.31.150:  330 ...

  6. 点击页面div弹窗以外隐藏的两种思路

    在本文为大家介绍两种思路实现点击页面其它地方隐藏该div,第一种是对document的click事件绑定事件处理程序.. 第一种思路分两步 第一步:对document的click事件绑定事件处理程序, ...

  7. Oracle Stored Procedure demo

    1.how to find invalid status stored procedure and recompile them? SELECT OBJECT_NAME , status FROM u ...

  8. [转]Ionic最佳实践-使用模态窗口modal

    本文转自:http://m.blog.csdn.net/blog/betreex/45649689 原文地址:Ionic最佳实践-使用模态窗口modal 模态窗口的结构 在Ionic中,模态窗口通过$ ...

  9. c++仿函数 functor

    内容整理自国外C++教材 先考虑一个简单的例子:假设有一个vector<string>,你的任务是统计长度小于5的string的个数,如果使用count_if函数的话,你的代码可能长成这样 ...

  10. UVA 103 Stacking Boxes --LIS

    实际上是一个扩展维度的矩形嵌套问题. 一个物体能嵌入另一个物体中,当且仅当这个物体的所有维度的长度都小于另外一个(本题是小于等于),又因为可以旋转等变换,所以干脆将每个箱子的边从小到大排序,以便于判断 ...