20155234 2016-2017-2 《Java程序设计》第8周学习总结

教材学习内容总结

  • 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。
  • 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()设定信息。
  • MemoryHandler(信息存在缓冲区,超出缓冲区大小)、StreamHandler(可自动指定OutputStream实例)、ConsoleHandler(日志信息会显示在控制台上)、FileHandler(建立日志输出时使用的FileOutputStream)、SocketHandler(联网,将日志信息传至指定主机)。
  • 建立FileHandler指定模式字符串,“%h”表示用户根目录,“%t”取得系统暂存目录,“%g”自动为文档编号。
  • 调用Logger实例的setUseParentHandlers()设定为false,日志不会传播给父Logger,使用setParent()方法指定父Logger
  • java.util.logging包中提供的Handler成果都不符合需求,继承Handler类,操作抽象方法publish()、flush()与close()方法来定义Handler,操作时考虑信息过滤与格式化。
  • 自定义Formatter,继承Formatter后操作抽象方法format(),传入LogRecord,储存所有日志信息。
  • 通过logging.properties来设定Logger组态,修改.properties后另存至程序CLASSPATH中,指定java.util.logging.cofig.file系统属性为.properties名称。
  • 使用ResourceBundle做信息绑定,准备.properties文档并放在CLASSPATH的路径设定下,文件中撰写键/值配对。
  • ResourceBundle的静态getBundle()方法会取得一个ResourceBundle实例,给定自变量名称是信息文档的主文件名,取得实例后用getString()指定键取得文档中对应值。
  • 国际化三个重要概念:地区(Locale)信息、资源包(Resource bundle)与基础名称(Base name)。
  • 地区可由一个语言编码与可选的地区编码来指定。
  • 将Unicode编码表示的.properties转回中文,使用-reverse自变量。
  • String的spilt()方法,返回切割后各子字符串组成的String数组。
  • 规则表达式基本包括两种字符:字面意义字符与元字符。
  • 字母或数字:比较字母或数字。:比较
  • 任一个字符切割:[]连字符—:表示从...到...
    反字符^:表示除...以外的字符
  • 预定义字符
    贪婪量词:{n}是贪婪量词表示法的一种,贪婪量词会尽可能的找到长度最长的符合文字
    逐步量词:在贪婪量词表示法后加上?,会成为逐步量词(懒惰量词,非贪婪量词),会找到长度最短的符合文字
    独吐量词:在贪婪量词表示法后加上+,会成为独吐量词,将剩余文字吃掉,然后看看独吞量词部分是否符合吃下的文字,如果符合就不会再吐出来了
  • replaceAll()会将符合规则表达式的字符串取代后返回新字符串
  • 边界比较用来表示文字必须符合指定的边界条件(定位点)
  • 使用()将规则表达式分组,被分组的规则表达式可以在稍后回头参考
  • String.join()、StringJoiner:String上有join()静态方法可以指定每个字符串间以什么间隔。
  • Collectors上有joining()静态方法。
  • paralleSort()方法可以将指定的数组分为子数组并以平行化方式分别排序,然后再进行合并排序。
  • 对数组进行管线化操作。
  • 使用Arrays的asList()方法返回List,而后调用stream()方法取得stream实例。
  • 使用Arrays的stream()方法,可以指定数组后返回Stream实例。

    教材学习中的问题和解决过程

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

    错题

    下面哪些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
    When applied to instance variables, the ________________ visibility modifier enforces encapsulation(当应用到实例变量时,____可见性修饰符强制执行封装).
    A .static
    B .final
    C .public
    D .private
    E .none of the above(以上都不是)
    我选择的是C,答案是D。私有可见性修饰符防止不适当的数据访问,因此促进封装。选择A和B不是可见性修饰符,而选择C是可见性修饰符,允许对对象数据的公共访问,这违背了封装的原则
    An object can be thought of as a blueprint for a set of classes(对象被认为是类集合的蓝图).
    A .true
    B .false
    我选择的是A,答案是B。概念错误。类可以被看作是一组对象的蓝图,而不是另一种方式。
    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
    我选择的是B,答案是E。localxxxx明确排除时区。instant代表一个时间点,但
    始终使用GMT而不是所需时区。
    What is the output of the following code?(下面代码的运行结果是?)
    LocalDate date = LocalDate.of(2018, Month.APRIL, 30);
    date.plusDays(2);
    date.plusYears(3);
    System.out.println(date.getYear() + " "

  • date.getMonth() + " "+ date.getDayOfMonth());
    A .2018 APRIL 2
    B .2018 APRIL 30
    C .2018 MAY 2
    D.2021 APRIL 2
    E .2021 APRIL 30
    F .2021 MAY 2
    G .A runtime exception is thrown.
    我选择的是C,答案是B,日期开始为2018年4月30日。因为日期是不可变的,加上方法
    忽略返回值,结果不变。因此,选项B是正确的。

    代码托管

结对及互评

结对搭档

  • 20155226基于评分标准,我给本博客打分:(10)。得分情况如下:
  1. 正确使用Markdown语法(加1分)
  2. 模板中的要素齐全(加1分)
  3. 排版精美的加一分
  4. 代码Commit Message规范的加1分
  5. 进度条中记录学习时间与改进情况的加1分
  6. 感想,体会不假大空的加1分
  7. 教材学习中的问题和解决过程。
  8. 动手写新代码的加1分
    9.代码超过300行加2分

    上周点评博客

  • 20155318
  • 20155229
  • 20155238
  • 20155339
  • 20155217

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

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

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积)
    目标 5000行 30篇
    第一周 3/3 1/1
    第二周 105/108 1/2
    第三周 205/313 1/3
    第四周 402/710 1/4
    第五周 327/1037 1/5
    第六周 900 /1937 1/6
    第七周 631/2568 2/8
    第八周 780/3348 1/9

    参考资料

  • Java学习笔记(第8版)
  • 《Java学习笔记(第8版)》学习指导

20155234 2016-2017-2 《Java程序设计》第8周学习总结的更多相关文章

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

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

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

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

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

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

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

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

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

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

  6. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

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

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

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

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

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

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

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

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

随机推荐

  1. CCF地铁修建

    问题描述 A市有n个交通枢纽,其中1号和n号非常重要,为了加强运输能力,A市决定在1号到n号枢纽间修建一条地铁. 地铁由很多段隧道组成,每段隧道连接两个交通枢纽.经过勘探,有m段隧道作为候选,两个交通 ...

  2. Vue学习笔记之Vue学习前的准备工作

    0x00 起步 1.扎实的HTML/CSS/Javascript基本功,这是前置条件. 2.不要用任何的构建项目工具,只用最简单的<script>,把教程里的例子模仿一遍,理解用法.不推荐 ...

  3. 面试官问:JS的this指向

    前言 面试官出很多考题,基本都会变着方式来考察this指向,看候选人对JS基础知识是否扎实.读者可以先拉到底部看总结,再谷歌(或各技术平台)搜索几篇类似文章,看笔者写的文章和别人有什么不同(欢迎在评论 ...

  4. 20145339顿珠达杰 《网络对抗技术》 逆向与Bof基础

    目的 通过一些方法,使能够运行本不该被运行的代码部分,或得到shell的使用: 将正常运行代码部分某处call后的目标地址,修改为另一部分我们希望执行.却本不应该执行的代码部分首地址(这需要我们有一定 ...

  5. 【转载】通过JSFL让Flash Professional CS4或CS5拥有批量FLA导出SVG的功能

    近期一个项目要求博主爱吾所爱(爱生活=爱技术)将 所有的.fla源文件里的图形都转为.svg矢量图,经常一番搜索之后,发现新版本的Flash Professional CC已经有此功能,但无奈我等用的 ...

  6. Linux下停止没有关闭的远程登陆终端

    脚本如下: #!/bin/shTTY_LOG=tty_logTTY_LOG1=tty_log1USER_NAME=`whoami`#echo ${USER_NAME}who|grep ${USER_N ...

  7. Numpy 练习题

    1. 使用循环和向量化两种不同的方法来计算 100 以内的质数之和. 先定义个判断质数的函数.ps:纯手工打造,原生态,哈哈. def checkprime(x): if x<=1: retur ...

  8. 在 php 中使用 strace、gdb、tcpdump 调试工具

    转自:http://www.syyong.com/php/Using-strace-GDB-and-tcpdump-debugging-tools-in-PHP.html 在 php 中我们最常使用调 ...

  9. [原][osgearth]FAQ

    参考:http://docs.osgearth.org/en/latest/faq.html Common Usage How do I place a 3D model on the map? Th ...

  10. vue 脚手架(一,创建脚手架)

    本文以转移至本人的个人博客,请多多关注! 本文以转移至本人的个人博客,请多多关注! 本文以转移至本人的个人博客,请多多关注! 本文以转移至本人的个人博客,请多多关注! 经过一段时间对Vue的学习.觉得 ...