zoukankan      html  css  js  c++  java
  • 20145209 2016-2017-2 《Java程序设计》第8周学习总结

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

    教材学习内容总结

    1.java.util.logging包提供了日志功能相关类与接口。

    2.使用日志的起点是Logger类,Longer类的构造函数标示为protected,不同包的类药取得Loger实例必须使用它的静态方法getLogger(),取得实例后可以使用log()方法输出信息。

    3.取得Longger: Logger logger=Logger.getLogger("cc.openhome.Main"); 通过Logger实例的getParent()取得父Logger实例,可以使用intValue()取得内含int值,Logger本身可以通过setLevel()设定Level实例。

    Handler与Formatter

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

    2.MemoryHandler不会格式化日志信息,信息会暂存于缓冲区,直到超出大小,才将信息输出至指定目标Handler。

    3.ConsoleHandler:创建时会会自动指定OutputStream为System.err,日志信息会显示在控制台。

    4.FileHandler:创建时会建立日志输出是需要的FileOutPutStream,文档位置与名称可以使用模式字符串指定。

    5.SocketHandler:创建时可以指定主机位置与端口,内部将自动建立网络联机,将日志信息传送至指定主机。

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

    HandlerFormatterFilter

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

    国际化基础

    1.ResourceBundle的静态getBundle()方法会取得一个ResourceBoundle的实例,自动找到对应的.properties文档,使用getString()指定键来取得文档中的对应值,以后要改变信息就只要改变.properties文档中的值就可以。

    2.国际化的三个重要概念是地区信息、资源包与基础名称。

    3.使用String的split()方法,可以根据某个字符或字符串切割已有字符串,然后它会返回切割后的各子字符串组成的String数组。

    4.规则表示式基本包括两种字符:字面意义字符与原字符。 国际化基础

    国际化的三个标准:

    a.地区(Locale)信息

    b.资源包(Resource bundle)

    c.基础名称(Base name)。

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

    针对大型数组的平行化操作,新版jdk中,在Arrays上新增如下一些方法:

    1.parallelPrefix()方法可以指定XXXBinaryOperator实例,执行类似Stream的reduce()方法。

    2.parallelSetAll()方法用来对数组进行初始化或全面重新设置每个索引元素。

    3.parallelSort()方法可以将指定的数组分为子数组并以平行化当时分别排序。

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

    • 问题1:正则表达式的用法是什么?

    java中提供正则表达式功能的类在java.util.regex包下,有两个类:Pattern 和 Matcher。正则表达会先被编译为Pattern类,然后创建匹配器,由匹配器进行匹配,典型的调用顺序为:

    Pattern p = Pattern.compile("a*b");
    Matcher m = p.matcher("aaaaab");
    boolean b = m.matches();

    也可以调用 

      while(m.find())
    
       {
    
              System.out.println(m.group());
    
        }
    

    如果有捕获组可以用m.group(i)来提取相应的捕获组,其中i为捕获组的序号,0表示整体。

    我们可以看到其实用法是很简单,最重要的步骤还在于写出正确的正则表达式,下面是几种常用的表达式:

    这些表达式有很多是javascript的,很多语言中都有正则表达式的实现,写法也略有不同,不过如果理解了的话,表面上的不同也不会有什么障碍,我们可以根据它来写满足我们自己需要的表达式。

    匹配中文字符的正则表达式: [u4e00-u9fa5]

    匹配双字节字符(包括汉字在内):[^x00-xff]

    匹配空行的正则表达式: [s| ]*

    匹配HTML标记的正则表达式:/<(.)>.</1>|<(.*) />/

    匹配首尾空格的正则表达式:(^s)|(s$)

    匹配Email地址的正则表达式:w+([-+.]w+)@w+([-.]w+).w+([-.]w+)*

    匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?

    只能输入数字和英文的:

    只能输入数字的:

    只能输入全角的:

    只能输入汉字的:

    上周考试错题总结

    • 下面哪些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

    • 下面哪些类的对象会包含“东部标准时间”的信息)

    A .Instant

    B .LocalDate

    C .LocalDateTime

    D .LocalTime

    E .ZonedDateTime

    正确答案: E

    • 下面哪些内容会出现在Period对象中?
      A .Year

    B .Month

    C .Day

    D .Hour

    E .Minute

    F .Second

    正确答案: A B C

    评分标准

    1. 正确使用Markdown语法(加1分):

      • 不使用Markdown不加分
      • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
      • 排版混乱的不加分
    2. 模板中的要素齐全(加1分)

      • 缺少“教材学习中的问题和解决过程”的不加分
      • 缺少“代码调试中的问题和解决过程”的不加分
      • 代码托管不能打开的不加分
      • 缺少“结对及互评”的不能打开的不加分
      • 缺少“上周考试错题总结”的不能加分
      • 缺少“进度条”的不能加分
      • 缺少“参考资料”的不能加分
    3. 教材学习中的问题和解决过程, 一个问题加1分

    4. 代码调试中的问题和解决过程, 一个问题加1分

    5. 本周有效代码超过300分行的(加2分)

      • 一周提交次数少于20次的不加分
    6. 其他加分:

      • 周五前发博客的加1分
      • 感想,体会不假大空的加1分
      • 排版精美的加一分
      • 进度条中记录学习时间与改进情况的加1分
      • 有动手写新代码的加1分
      • 课后选择题有验证的加1分
      • 代码Commit Message规范的加1分
      • 错题学习深入的加1分
      • 点评认真,能指出博客和代码中的问题的加1分
      • 结对学习情况真实可信的加1分
    7. 扣分:

      • 有抄袭的扣至0分
      • 代码作弊的扣至0分
      • 迟交作业的扣至0分

    点评模板:

    • 博客中值得学习的或问题:

      • xxx
      • xxx
      • ...
    • 代码中值得学习的或问题:

      • xxx
      • xxx
      • ...
    • 基于评分标准,我给本博客打分:XX分。得分情况如下:xxx

    • 参考示例

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 200/200 2/2 20/20
    第二周 300/500 2/4 18/38
    第三周 500/1000 3/7 22/60
    第四周 300/1300 2/9 30/90

    尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
    耗时估计的公式
    :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

    参考:软件工程软件的估计为什么这么难软件工程 估计方法

    • 计划学习时间:10小时

    • 实际学习时间:5小时

    • 改进情况:

    (有空多看看现代软件工程 课件
    软件工程师能力自我评价表
    )

    参考资料

  • 相关阅读:
    01矩阵扩展
    蒙特卡罗仿真
    某幂相关数学结论
    分式乘法变加减
    ICPC模板排版工具
    windows下mysql使用实录
    随机题目小结
    工作用linux命令汇总
    小数化分数的O(log2n)解法
    博弈总结
  • 原文地址:https://www.cnblogs.com/liuyiyang/p/6719865.html
Copyright © 2011-2022 走看看