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

    教材学习内容总结

    • NIO用于高级输入/输出处理
    名称 衔接数据源与目的地
    IO InputStream,OutputStream
    NIO Channel
    方法 方法的作用
    ReadableByteChannel read() 将ReadableByteChannel中的数据读取至ByteBuffer
    WritableByteChannel write() 将ByteBuffer的数据写到WritebaleByteChannel
    ScatteringByteChannel read() 将ScatteringByteChannel中的数据读取至ByteBuffer
    GatheringByteChannel write() 将ByteBuffer的数据写GatheringByteChannel

    Channel继承架构:

    • Buffer继承架构:

    方法 作用
    split() 将指定字符串依规则表达式切割
    matcher() 指定要比较的字符串
    find() 看看是不是有下一个符合字符串
    lookingAt() 看看字符串开头是否符合规则表达式
    group() 可以返回符合的字符串
    replaceAll() 可以将符合规则表达式的部分以指定的字符串取代
    replaceFirst() 取代首个组合规则表达式的部分
    replaceEnd() 取代最后符合规则表达式的部分
    start() 取得符合字符串的初始索引
    end() 取得符合字符串最后一个字符后的索引
    parallelPrefix() 指定×××BinaryOperator实例
    parallelSetAll()) 对数组进行初始化或者全面重设每个索引元素
    parallelSort 将指定的数组分为子数组并以平行化方式分别排序,然后再进行合并排序

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

    问题1:研究DecimalFormat类

    问题1解决方案:资料如下
    作用:DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。

    符号 含义
    0 一个数字
    # 一个数字,不包括 0
    . 小数的分隔符的占位符
    , 分组分隔符的占位符
    ; 分隔格式
    - 缺省负数前缀
    % 乘以 100 和作为百分比显示
    ? 乘以 1000 和作为千进制货币符显示;用货币符号代替;如果双写,用

      国际货币符号代替。如果出现在一个模式中,用货币十进制分隔符代
      替十进制分隔符。
      X |前缀或后缀中使用的任何其它字符,用来引用前缀或后缀中的特殊字符。

    代码调试中的问题和解决过程

    问题1:p481 Hello

    问题1解决方案:改了一下

    但是还是不行

    最后参考以下链接:
    java.util.ResourceBundle使用详解

    最后将messages放到了存代码的根目录下就运行成功了

    问题2:贪婪、非贪婪、独占量词

    问题2解决方案:

    贪婪 非贪婪 独占
    X? X?? X?+
    X* X*? X*+
    X+ X+? X++
    X{n} X{n}? X{n}+
    X{n,} X{n,}? X{n,}+
    X{n,m} X{n,m}? X{n,m}+

    Greedy:贪婪
      匹配最长。在贪婪量词模式下,正则表达式会尽可能长地去匹配符合规则的字符串,且会回溯。

    Reluctant :非贪婪
      匹配最短。在非贪婪量词模式下,正则表达式会匹配尽可能短的字符串。

    Possessive :独占
      同贪婪一样匹配最长。不过在独占量词模式下,正则表达式尽可能长地去匹配字符串,一旦匹配不成功就会结束匹配而不会回溯。

    参考资料:正则的回溯

    代码托管

    上周考试错题总结

    1. JDK8中的Lambda表达式有以下好处:

    A .
    消除重复性
    B .
    提高性能
    C .
    提高安全性D .
    改善可读性

    答案:AD

    1. JDK8 中新时间API中,用于度量时间的类有()
      A .
      Instant
      B .
      Duration
      C .
      Period
      D .
      LocalDateTime

    答案:BC

    解析:……在这里“度量”的意思等同于“定义”

    3.Java 8之前,对日期进行运算,使用()类。
    A .
    Date
    B .
    DateFormat
    C .
    Calendar
    D .
    SimpleDateFormat

    答案:C

    4.new Date(System.currentTimeMillis( ))等价于new Date()
    A .
    True
    B .
    False

    答案:A

    解析:

    public class DateDemo {
        public static void main(String[] args) {
            Date date1 = new Date(currentTimeMillis());
            Date date2 = new Date();
    
            out.println(date1.getTime());
            out.println(date2.getTime());
        }
    }
    

    结果是:

    5.When applied to instance variables, the ________________ visibility modifier enforces encapsulation(当应用到实例变量时,____可见性修饰符强制执行封装).
    A .
    static
    B .
    final
    C .
    public
    D .
    private
    E .
    none of the above(以上都不是)

    答案:D

    解析:私有可见性修饰符防止不适当的数据访问,因此促进封装。选择A和B不是可见性修饰符,而选择C是可见性修饰符,允许对对象数据的公共访问,这违背了封装的原则。

    6.Which of the following method headers is most likely a header for a mutator method?(以下哪个方法头部最有可能是设值方法的头部?)
    A .
    public int getAge()
    B .
    public double computeSalary()
    C .
    public Person()
    D .
    public void setAge(int newAge)
    E .
    none of these are headers for a mutator method(以上均不是设值方法的头部)

    答案:D

    解析:应用程序的方法,改变一个实例变量的值,通常称为“setters”,因此,选项D是正确答案。选择是一个访问器方法的头一个例子,通常被称为“getter”,选择C是一个构造函数,选择B是一个类的方法。

    7.__________________ parameters are the values that are used when calling a method(___参数是调用方法时传给方法的值).
    A .
    formal(形式参数)
    B .
    actual(实际参数)
    C .
    useful(有用的参数)
    D .
    informal(非正式参数)
    E .
    none of the above(以上都不是)

    答案:B

    解析:调用方法时发送实际参数。定义方法时使用形式参数。

    8.A method that has multiple definitions is an __________________ method(具有多重定义的方法称为方法___).
    A .
    overloaded(重载)
    B .
    overridden(重写)
    C .
    overlooked(忽略)
    D .
    overclocked(超频)
    E .
    none of the above(以上均不是)

    答案:A

    解析:有多个定义的方法是重载方法。重载方法的版本由参数的数量、类型和顺序区分。重写的方法是在继承层次结构中重新定义的方法。他们将更详细地研究。选择C和D是不是在java类的方法。

    9.An object can be thought of as a blueprint for a set of classes(对象被认为是类集合的蓝图).
    A .
    true
    B .
    false

    答案:B

    解析:类可以被看作是一组对象的蓝图,而不是另一种方式。

    10.When an object is passed to a method, the actual and formal parameters become aliases(当把对象传递给方法时,实参和形参互为别名).
    A .
    true
    B .
    false

    答案:A

    解析:实际参数是发送到方法中的数据。方法定义中使用了形式参数。当对象被发送到一个方法时,这些值都是引用,它们成为彼此的别名。

    11.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

    答案:E

    解析:localxxxx明确排除时区。瞬间代表一个时间点,但
    始终使用GMT而不是所需时区。

    12.Which of the following are stored in a Period object? (Choose all that apply.) 下面哪些内容会出现在Period对象中?

    A .
    Year
    B .
    Month
    C .
    Day
    D .
    Hour
    E .
    Minute
    F .
    Second

    答案:ABC

    解析:持续时间使用小时/分钟/秒和周期使用年/
    措施月/日。

    13.Given the following, which answers can correctly fill in the blank? (Choose all that apply.)针对下面的代码,()中应填入哪个选项?
    LocalDate date = LocalDate.now();
    LocalTime time = LocalTime.now();
    LocalDateTime dateTime = LocalDateTime.now();
    ZoneId zoneId = ZoneId.systemDefault();
    ZonedDateTime zonedDateTime = ZonedDateTime.of(dateTime, zoneId);
    long epochSeconds = 0;
    Instant instant = ( );

    A .
    Instant.now()
    B .
    Instant.ofEpochSecond(epochSeconds)
    C .
    date.toInstant()
    D .
    dateTime.toInstant()
    E .
    time.toInstant()
    F .
    zonedDateTime.toInstant()

    答案:F

    解析:选项正确创建当前瞬间。选项B正确转换
    秒到瞬间。选项F也是一个适当的转换。选项C,D和E是
    不正确,因为源对象不代表时间点。没有时区,
    java不知道什么时候使用即时。

    14.What is the output of the following code?(下面代码的运行结果是?)
    LocalDate date = LocalDate.of(2018, Month.APRIL, 40);
    System.out.println(date.getYear() + " " + date.getMonth()

    • " "+ date.getDayOfMonth());

    A .
    2018 APRIL 4
    B .
    2018 APRIL 30
    C .
    2018 MAY 10
    D .
    Another date
    E .
    The code does not compile.
    F .
    A runtime exception is thrown.
    答案:F

    解析:java抛出异常如果无效的日期值传递。没有第四十天
    四月或任何其他月份

    ...
    结对及互评

    评分标准

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

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

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

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

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

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

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

    有抄袭的扣至0分
    代码作弊的扣至0分
    迟交作业的扣至0分
    点评模板:

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

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

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

    参考示例

    点评过的同学博客和代码

    本周结对学习情况
    20155328

    结对照片

    结对学习内容
    14、15章
    ...
    上周博客互评情况
    20155227
    20155231
    20145234
    20155233
    20155336
    ...
    其他(感悟、思考等,可选)

    下一周终于要没那么多工作了,喘气,太好了可以更多时间补一补之前觉得很虚的地方了。
    标了页码的解析让我觉得安心。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 16篇 400小时
    第一周 9/9 1/1 19/19 熟练下载安装技能,锻炼解决问题能力
    第二周 185/194 1/2 16/35 下载并熟悉IDEA,练习使用码云、git的技能。
    第三周 488/535 1/3 18/53 花了更少时间磨合软件,学习更顺利
    第四周 366/901 2/5 18/71 继承、多态、行为
    第五周 611/1512 1/6 14/67 异常处理、Collection与Map
    第六周 337/1849 1/7 16/73 输入与输出、线程与并行API
    第七周 459/2308 2/9 15/88 Lambda、时间与日期
    第八周 554/2862 1/10 16/104 NIO与NIO2&通用API

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

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

    计划学习时间:17小时

    实际学习时间:15小时

    改进情况:

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

    参考资料

  • 相关阅读:
    码农雷林鹏:php环境搭建
    HashMap底层实现原理
    Java基础面试题
    ==和equals的区别,为什么重写equals要重写hashCode
    Java8 函数式接口,方法引用,stream
    ArrayList、Vector、LinkedList的区别
    第二章——信息的表示和处理
    第一章——计算机系统漫游
    通过zuul修改请求参数——对请求参数进行解密
    Java 扫描实现 Ioc 动态注入,过滤器根据访问url调用自定义注解标记的类及其方法
  • 原文地址:https://www.cnblogs.com/GDDFZ/p/6718704.html
Copyright © 2011-2022 走看看