教材学习内容总结

第十二章

认识Lambda语法

  • 在只有Lambda表达式的情况下,参数的类型必须写出来。

  • 匿名类有相应的应用场合。Lambda表达式只关心方法命名上的参数与返回定义,忽略方法名称。

  • JDK8对interface语法做了演讲,允许有默认方法操作。

Functional与Stream API

*使用Optional代替null

  • 调用方法时如果返回类型是Optional,应该立即想到他可能包含也不包涵值。

    标准API的函数接口

  • Consumer:一个参数,无返回值

  • Function:一个参数,有返回值

  • Predicate:一个参数,有返回值,返回值必须是boolean类型的

  • Supplier:无参数,有返回值

  • JDK8引入了StreamAPI,引入了管道操作风格。

*一个管道包括:来源、零或多个中间操作、一个最终操作。

第十三章

时间的度量

  • 格林威治标准时间

  • 世界时

  • 国际原子时

  • 世界协调时间

  • Unix 时间

  • epoch

  • GMT(Greenwich Mean Time)时间:现在不是标准时间

  • 世界时(Universal Time,UT):1972年UTC出来之前,UT等价于GMT

  • 国际原子时(TAI):秒的定义

  • 世界协调时间(Corrdinated Universal Time, UTC): 闰秒

  • Unix时间: 1970.1.1 00:00:00开始的秒数

  • epoch: java.util.Date epoch毫秒数

年历与时区

  • 儒略历,现公历的前身

  • 格里高利厉,

  • ISO 8601标准,并非年历系统,而是时间日期表示方法的标准,用以统一时间日期的数据交换格式。

  • 时区涉及地理、法律、经济,社会甚至政治问题。例如日光节约时间在许多高纬度国家实施。

Date与Calendar

  • Date只用来获取epoch毫秒数

  • DateFormat来格式化成人类理解的年月日时分秒

  • 取得系统时间,方法之一是使用System.currentTimeMilles()方法,返回值是long类型整数。

  • JDK8新时间日期处理API中最重要的,就是将机器时间的概念与人类时间概念区隔开来。

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

  • 问题1:机器时间观点的API与人类时间观点的API的区别。(日光节约时间是混淆机器与人类时间观点会引发的问题之一)

  • 问题1解决方案:

  • 机器API新时间日期处理的主要套件是java.time,对于机器的相关概念,设置了Instant类,精确度基本是毫秒。JDK8新时间日期处理API清楚地将机器与人类时间概念划分开来。

  • 人类在实践概念的表达大多数是笼统的,片段的信息。

  • 问题2:标准API几个函数接口的异同。

  • 问题2解决方案:

     * Consumer函数接口,是接受了自变量,然后处理后不返回值。
    * Function函数接口,是接受了自变量,进行计算后返回结构。
    * Predicate函数接口,是接受了自变量,,然后只返回boolean值,也就是根据传入的自变量直接论断真假的行为。
    * Supplier函数接口,是不接受任何自变量,然后返回值。
  • ...

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

  • 问题1:编译过程中出现乱码
  • 问题1解决方案:可能是编写过程中字符编码出现错误

代码托管

上周考试错题总结

调用线程的interrupt()方法,会抛出InterruptedException SecurityException异常对象。

3.import java.util.*;
4. class ForInTest {
5.static List list=new ArrayList();
6.
7.public static void main (String [] args) {
8.list. add("a"); list. add("b");list. add( "c");
9. //insert code here
10. System.out.print (o);
11. }
12. }

哪一行插入到第9行将导致输出“abc"?

for (Object o : list)

Which of the following statements about the Callable call() and Runnable run() methods are correct? (Choose all that apply.)

  • Both can throw unchecked exceptions.
  • Callable can throw a checked exception.
  • Both can be implemented with lambda expressions.
  • Callable returns a generic type.
 1. class Calc {
2. public static void main(String [] args) {
3. try {
4. int x = Integer.parselnt ("42a") ;
5. //insert code here
6. System.out.print ("oops");
7. }
8. }
9. }

下面哪行分别插入到第五行,会导致输 "oops" ?

catch (IllegalArgumentException e) {

} catch (NumbelFormatException n) {

Given an instance of a Stream, s, and a Collection, c, which are valid ways of creating a parallel stream? (Choose all that apply.)

给定一个Stream的实例s, 一个Collection的实例c, 下面哪些选项可以创建一个并行流?

 * ```c.parallelStream()```
* ```s.parallel() ```

What are some reasons to use a character stream, such as Reader/Writer, over a byte stream, such as InputStream/OutputStream?

* More convenient code syntax when working with String data
* Automatic character encoding
private void echo() throws IOException {
try (FileReader fileReader = new FileReader("zoo-data.txt");
BufferedReader bufferedReader = new BufferedReader(fileReader)) {
System.out.println(bufferedReader.readLine());
}
}

Assuming zoo-data.txt is a multiline text file, what is true of the following method?

It prints the first line of the file to the console

Which of the following are not java.io classes?

* PrintReader

Assuming / is the root directory, which of the following are true statements?

* /home/parrot is an absolute path
String line;
Console c = System.console();
Writer w = c.writer();
if ((line = c.readLine()) != null)
w.append(line);
w.flush();

What is the result of executing the following code?

The code prints what was entered by the user

A NullPointerException might be thrown

An IOException might be thrown

Which of the following are true?

  • Console is obtained using the singleton pattern.
  • When getting a Console object, it might be null.
InputStream is = new BufferedInputStream(new FileInputStream("zoo.txt"));
InputStream wrapper = new _____(is);

Which classes will allow the following to compile?

```BufferedInputStream```

```ObjectInputStream```

Which of the following are built-in streams in Java?

  • System.err
  • System.in
  • System.out

结对及互评

评分标准

  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

  • 参考示例

点评过的同学博客和代码

  • 本周结对学习情况

    • 20155216

    • 结对照片

    • 结对学习内容

      • 1、通过课本内容学习Lambda表达式语法。
      • 2、了解Stream API的使用。
      • 3、学习Date与Calendar以及JDK新的时间日期API。
  • 上周博客互评情况

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

  • 在老师的启发之下,改变了自己Java学习的方式,以往是零散式的,集中一两天的学习方法。现在能在每天学习不同的学习任务,一周之内合理的分配时间学习Java。

  • 每天敲打书上的代码,的确能学到许多知识,也逐渐学会了Java的调试,但还是缺乏自己的动手和实际操作能力。

  • 平时遇见问题能先自己尝试寻找资源来学习,解决不了再询问老师和同学。

  • 学习了Lambda表达式语法,了解了Functional与Stream API,认识了Date与Calendar。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/0 1/4 8/12
第二周 70/80 1/5 16/28
第三周 120/200 1/6 12/40
第四周 300/500 1/7 20/60
第五周 500/1000 1/8 15/75
第六周 600/1600 1/9 15/90
第七周 400/2000 2/11 20/110 对Lambds语法,时间与日期有了一定了解

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。

耗时估计的公式

:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

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

  • 计划学习时间:20小时

  • 实际学习时间:20小时

  • 改进情况:对于java学习的时间,有了系统性的规划,并不是向以前零散或者突击性的学习。

(有空多看看现代软件工程 课件

软件工程师能力自我评价表
)

参考资料

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

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

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

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

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

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

    20155312 2016-2017-2 <Java程序设计>第九周学习总结 课堂内容总结 两个类有公用的东西放在父类里. 面向对象的三要素 封装 继承 多态:用父类声明引用,子类生成对象 ...

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

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

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

    20155216 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC架构 JDBC API的使用 JDBC连接数据库 1.导入JDBC包: 添加impo ...

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

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

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

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

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

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

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

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

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

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

随机推荐

  1. [翻译] 扩张卷积 (Dilated Convolution)

    英文原文: Dilated Convolution 简单来说,扩张卷积只是运用卷积到一个指定间隔的输入.按照这个定义,给定我们的输入是一个2维图片,扩张率 k=1 是通常的卷积,k=2 的意思是每个输 ...

  2. c# 设计模式 之:策略模式

    算法与对象的耦合:     对象可能经常需要使用多种不同的算法,但是如果变化频繁,会将类型变得脆弱...             动机:     在软件构建过程中,某些对象使用的算法可能多种多样,经常 ...

  3. [翻译] NSDate-TimeAgo

    NSDate-TimeAgo https://github.com/kevinlawler/NSDate-TimeAgo NSDate+TimeAgo has merged with DateTool ...

  4. 如何打包ipa文件

    如何打包ipa文件 1. 新建一个工程 // // RootViewController.m // YouXianMing // // Copyright (c) 2014年 Y.X. All rig ...

  5. Linux 重定向详解

    常用的命令展示 >: 输出重定向             没有会创建文件echo hello > h.txt          也可以清空文件 >h.txt    >>: ...

  6. 铁乐学python_day29_模块与包学习4

    大部份内容摘自授课老师的博客http://www.cnblogs.com/Eva-J/ 编译python文件 编译python文件是为了提高加载模块的速度,强调强调强调:提高的是加载速度而绝非运行速度 ...

  7. 微信小程序初始化 operateWXData:fail invalid scope

    初学者开发微信小程序,可以使用云开发来进行微信小程序的开发. 第一次使用开发工具遇到的问题 解决方案:1.找到云开发 2.点击开通,选择合适自己的开发环境: 3.完成后,返回开发工具界面点击项目第一个 ...

  8. SOA面向服务架构——SOA的概念

    SOA的概念是Gartner 在1996年提出来的,并于2002年12月进一步提出SOA是“现代应用开发领域最重要的课题”.   一.SOA的定义 SOA分为广义的SOA和狭义的SOA,广义的SOA是 ...

  9. oracle查看用户属于哪个表空间

    select username,default_tablespace from dba_users  where username='用户名';

  10. Scala学习——Brief Scala Tutorial

    因为Spark项目需要,学习Scala编程. 从官网文档入手:http://www.scala-lang.org/documentation/ 首先从他的Older Documentation入手. ...