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

教材学习内容总结

学习目标

  1. 了解Lambda语法
  2. 了解方法引用
  3. 了解Fucntional与Stream API
  4. 掌握Date与Calendar的应用
  5. 会使用JDK8新的时间API

第十二章 章节主要内容

小结

  • byLength方法的签署与Comparator的compare()方法相同。
  • Lambda遇上this与final:Lambda表示式并不是匿名类别的语法蜜糖,如果Lambda表示式中捕获的局部变量本身等效于final局部变量,可以不用在局部变量上加上final,JDK8特意禁止在Lambda中修改局部变量的值。
  • 方法与构造函数参考:方法参考(Method references)可以避免你到处写下Lambda表示式,尽量运用现有的API实作,也可以改善可读性。
  • 接口默认方法:在JDK8中,interface定义时可以加入默认操作,或者称为默认方法(Default methods),forEach()方法本身已有操作,所以不会破坏Iterable现有的其他操作。在默认方法中不能使用数据成员,因为接口本身不能定义数据成员,也就是默认方法中不能用直接变更状态的流程。

第十三章 章节主要内容

小结

  • 格林威治标准时间(GMT),现已不作为标准时间使用,即使标注为GMT(格林威治时间),实际上谈到的的是UTC(Unix时间)时间。
  • 在1972年引入UTC之前,GMT与UT是相同的。
  • 秒的单位定义时基于TAI。也就是铯原子辐射的振动次数。
  • 世界协调时间(UTC),UTC考虑了地球自转越来越慢而有闰秒修正,确保UTC与UT相差不会超过0.9秒。
  • 儒略历修正了罗马历隔三年设置一闰年的错误,改采四年一闰。
  • 格里高利历将儒略历1582年10月4号星期四的隔天,订为格里高利历1582年10月15日星期五。
  • ISO 8601标准采用统一的数据格式。
  • Date有两个构造函数可以使用,一个可使用epoch毫秒数构建,另一个为无自变量构造函数,内部亦是使用System.currentTimeMillis()取得毫秒数,调用getTime()可取得内部保存的epoch毫秒数值。

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

  • 问题1:声明bylength时已经写了一次Comparator,为什么操作匿名类时又得写一次Comparator?
  • 解决方案:在使用Lambda表达式时,实际上从等号左边的Comparator的compare()的方法。编译程序可以从byLength变量的声明类型,推断name1与name2的类型。
  • 问题2:如何计算一个程序的运行时间。
  • 解决方案:
    1. 以毫秒为单位计算:
    long startTime=System.currentTimeMillis();
    doSomeThing();
    long endTime=System.currentTimeMillis();
    System.out.println("程序运行时间: "+(end-start)+"ms");
    1. 以纳秒为单位计算:
    long startTime=System.nanoTime();
    doSomeThing();
    long endTime=System.nanoTime();
    System.out.println("程序运行时间: "+(end-start)+"ns");

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

  • 问题1:书中代码
    import static java.lang.System.out;
    class Hello {
    Runnable r1 = new Runnable() {
    public void run() {
    out.println(this);
    }
    };
    Runnable r2 = new Runnable() {
    public void run() {
    out.println(toString());
    }
    }; public String toString() {
    return "Hello,world!";
    }
    }
    public class ThisDemo {
    public static void main(String[] args){
    Hello hello=new Hello();
    hello.r1.run();
    hello.r2.run();
    }
    }

    运行结果未显示Hello World!

  • 解决方案:this的参考对象以及toString()的接受者,实际上都是匿名类建立的实例,也就是Runnable实例,由于没有定义Runnable的toString(),因而显示的结果是Object默认的toString()返回字符串。

代码托管

上周考试错题总结

  • 错题1:下面哪条命令可以把 f1.txt 复制为 f2.txt ?

    A .cp f1.txt f2.txt

    B .copy f1.txt f2.txt

    C .cat f1.txt > f2.tx

    D .cp f1.txt | f2.tx

    E .copy f1.txt | f2.tx

  • 理解情况:copy是Windows下的命令。cat f1.txt > f2.tx 通过输出重定向实现了复制。

  • 错题2:下面代码中共有()个线程?

public class ThreadTest {
public static void main(String args[]){
MyThread myThread =new MyThread();
Thread t1=new Thread(myThread);
Thread t2=new Thread(myThread);
t1.start();
t2.start();
}
}
class MyThread extends Thread {
...
}

A.1 B.2 C.3 D.4

  • 理解情况:除了t1,t2, 还有main所在的主线程

结对及互评

评分标准

  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

  • 参考示例

点评过的同学博客和代码

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

这周的学习效率得到了很大的提高,实验的进行使我对java有了更进一步的了解。本周的测试由于题目基本上为英文,且多术语的关系,导致无法理解题意,错失了很多分。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 21篇 300小时
第一周 15/15 1/1 15/15
第二周 159/174 1/2 20/35
第三周 414/588 1/3 18/53 了解了封装、对象
第四周 461/1049 1/4 18/71
第五周 786/1835 1/5 18/89
第六周 699/2534 1/6 20/109
第七周 536/3070 2/8 18/127
  • 计划学习时间:16小时

  • 实际学习时间:18小时

  • 改进情况:这周实验课的增加和假期的冲突使学习时间有所减少,但是提高了学习的效率。

参考资料

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

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

    1.本周学习总结 2.书面作业 Q1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 答: 源代码: //contains()方法 public boolean c ...

  2. 20155330 2016-2017-2 《Java程序设计》第九周学习总结

    20155330 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 学习目标 了解JDBC架构 掌握JDBC架构 掌握反射与ClassLoader 了解自定义泛 ...

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

    20155330 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 学习目标 了解Java编程风格 认识Java的类型与变量 掌握Java流程控制的方法(分支. ...

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

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

  5. 20155304 2016-2017-2 《Java程序设计》第九周学习总结

    20155304 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC ...

  6. 20155321 2016-2017-2 《Java程序设计》第九周学习总结

    20155321 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 厂商在实现JDBC驱动程序时,依方式可将驱动程序分为四种类型: JDBC-OD ...

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

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

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

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

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

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

  10. 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结

    20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...

随机推荐

  1. 解决将easyui里的combobox里的输入框下拉列表变为空值

    jQuery easyui官网上有一个方法是 :clear方法,这个方法说是能清除数据,但我测试了,结果它确实清楚了(但他清除的只是输入框显示的数据,没有清除所有的数据),在这里巧妙的用 它加载数据的 ...

  2. apache重写规则 rewrite

    Rewrite规则表达式的说明: . 匹配任何单字符 [chars] 匹配字符串:chars [^chars] 不匹配字符串:chars text1|text2 可选择的字符串:text1或text2 ...

  3. ByValue和ByPropertyName的区别

    ByValue 以Get-Service命令为例,它的帮助文件中关于-Name参数是这样解释的: 1. "WinRM" | Get-Service 2. "Trusted ...

  4. Caffe使用step by step:r-cnn目标检测代码

    深度学习算法火起来之后,基于深度学习各种模型都如雨后春笋一般在各个领域广泛应用. 由于想把深度学习算法应用在在视频目标检测方向,得到一个较好的结果.由于视频数据的复杂性,因此使用深度学习算法在视频中的 ...

  5. C# QR二维码DEMO

    QR二维码 二维码的一种 相关类库 ThoughtWorks.QRCode 第三方类库 DEMO功能 Encode 生成二维码图片 Encoding 编码 Correction Level 等级 Ve ...

  6. 018 final 关键字的用途

    final关键字的含义 final在Java中是一个保留的关键字,可以声明成员变量.方法.类以及本地变量.一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如果你试图将变量再次初 ...

  7. 再谈MySql索引

    一.索引简介 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 索引分单列索引(主键索引.唯一索引.普通索引)和组合索引.单列索引,即一个索引只包含单个列 ...

  8. How Many Points? LightOJ - 1077(线段经过整点个数与gcd 证明)

    题意: 已知两点 (x1,y1) 和 (x2, y2)求两点间线段上的整点的个数 解析: 就是求gcd(abs(x2- x1),abs(y2 - y1)) 证明: 我们分水平方向和竖直方向两个方向看 ...

  9. elasticsearch使用More like this实现基于内容的推荐

    基于内容的推荐通常是给定一篇文档信息,然后给用户推荐与该文档相识的文档.Lucene的api中有实现查询文章相似度的接口,叫MoreLikeThis.Elasticsearch封装了该接口,通过Ela ...

  10. Leetcode模拟题篇

    43. Multiply Strings 高精度非负整数的乘法. string multiply(string num1, string num2) { '); ; <= i; --i) { ; ...