20155233 2016-2017-2 《Java程序设计》第7周学习总结
20155233 2016-2017-2 《Java程序设计》第7周学习总结
学习目标
- 了解Lambda语法
- 了解方法引用
- 了解Fucntional与Stream API
- 掌握Date与Calendar的应用
- 会使用JDK8新的时间API
教材学习内容总结
本周主要进行第十二章和第十三章的学习。
Lambda定义:一个不用被绑定到一个标识符上,并且可能被调用的函数。
在只有Lambda表达式的情况下,参数的类型必须写出来,如果有目标类型的话,在编译程序可推断出类型的情况下,就可以不写出Lambda表达式的参数类型。
Lambda表达式本身是中性的,不代表任何类型的实例,可用来表示不同目标类型的对象操作。
Lambda表达式在平行设计的时候,能够进行并行处理。
<1>使用Stream进行管道操作:
绝大多数的Stream并不需要呼叫close()方法,JDK8中要close()的是Files.lines()、Files.list()与Files.walk()方法。
格林威治标准时间(GMT),现已不作为标准时间使用,即使标注为GMT(格林威治时间),实际上谈到的的是UTC(Unix时间)时间。
在1972年引入UTC之前,GMT与UT是相同的。
世界协调时间(UTC),UTC考虑了地球自转越来越慢而有闰秒修正,确保UTC与UT相差不会超过0.9秒。
就目前来说,即使标注为GMT(无论是文件说明,或者是API的日期时间字符串描述),实际上谈到时间指的是UTC时间。
儒略历:修正了罗马历隔三年设置一闰年的错误,改采四年一闰。
格里高利历:改革了儒略历。
ISO 8601标准:采用统一的数据格式。
每个地区的标准时间各不相同,涉及到地理、法律、经济、社会、政治等问题。
考虑了UTC偏移的时间表示上,通常会标识Z符号。
有些高纬度国家,夏季、冬季日照时间差异很大,实施日光节约时间。
Date:取得系统时间,方法之一就是使用System.currentTimeMillis()方法,返回long类型整数,代表1970年1月1日0时0分0秒0毫秒至今经过的毫秒数。
新时间日期处理API的主要套件命名为java.time。对于机器相关的时间概念,设计了Instant类,用以代表自定义的Java epoch之后的某个时间点经历的毫秒数,精确度基本上是毫秒,但可添加柰秒精度的修正数值。
人类时间观点API,LocalDateTime(包括日期与时间)、LocalDate(只有日期)、LocalTime(只有时间),如果需要时区,可以基于LocalDateTime、LocalDate、LocalTime等来补充。
机器时间观点的API。
字串时间格式的处理,职责落到了java.text.DateFormat身上,其操作类别java.text.SimpleDateFormat,可以直接建构SimpleDateFormat实例,或使用DateFormat的getDateInstance()、getTimeInstance()、getDateTimeInstance()等静态方法。
直接构建SimpleDateFormat的好处是,可使用模式字符串自定义格式。
LocalDateTime包括日期与时间;LocalDate只有日期,如果设定不存在的日期会抛出DateTimeException;LocalTime只有时间。若需要时区信息,可基于上述三个时间描述的ZoneDateTime和OffsetDateTIme。
想要取得系统时间,方法之一是使用System.currentTimeMillis()方法
教材学习中的问题和解决过程
<1>标准API的函数接口
- Consumer:一个参数,无返回值
- Function:一个参数,有返回值
- Predicate:一个参数,有返回值,返回值必须是boolean类型的
- Supplier:无参数,有返回值
<2>Calendar: 时间的运算
- getInstance(): GregorianCalendar
- getTime()
- get()
- add()
- roll()
- after()
- before()
代码调试中的问题和解决过程
<1>对象间的:
Java.util.Date date1 = new java.util.Date();
java.util.Date date2 = date1;
表示date1 与date2指向相同的对象,指向相同的存储空间。
<2>课本P435提到了clone()的使用方式?
java.util.Date date1 = new java.util.Date();
java.util.Date date2 = (java.util.Date)date1.clone;
date1 与date2指向不相同的对象,但数据是相同的,就像是两个衣着相同的不同的人.
代码托管
(statistics.sh脚本的运行结果截图)

上周考试错题总结
- 下面代码中共有(C)个线程?
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
- 现有:
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"?: (D)
A . for (Iterator o : list.iterator(); o.hasNext (); )
B . for (Iterator o : list)
C . for (Object o : list.iterator())
D . for (Object o : list)
结对及互评
评分标准
正确使用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
点评过的同学博客和代码
其他(感悟、思考等,可选)
本周内容较多,通过练习实际操作中的代码编写过程,发现很多东西在书上学不到,以后更应该增强实际应用。实验的联系加深了我对之前知识的掌握。
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 20篇 | 200小时 | |
| 第一周 | 8/10 | 1/4 | 8/10 | 编写第一个Java程序HelloWorld |
| 第二周 | 79/89 | 1/5 | 11/21 | 学习Java基础语法 |
| 第三周 | 249/338 | 1/6 | 16/37 | 学习Java关于对象的重要知识 |
| 第四周 | 331/669 | 1/7 | 17/54 | 学习Java关于继承、接口与多态的重要知识 |
| 第五周 | 507/1176 | 1/8 | 18/72 | 学习Java的异常处理、Collection与Map |
| 第六周 | 1321/2497 | 1/9 | 16/88 | 学习Java的输入、输出与线性、并行API |
| 第七周 | 678/3175 | 2/11 | 18/106 | 学习Java的Lambda、时间与日期 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:20小时
实际学习时间:18小时
改进情况:学习时间比上周多,主要花费时间去使用,复习知识。
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)
参考资料
20155233 2016-2017-2 《Java程序设计》第7周学习总结的更多相关文章
- 20155312 2016-2017-2 《Java程序设计》第九周学习总结
20155312 2016-2017-2 <Java程序设计>第九周学习总结 课堂内容总结 两个类有公用的东西放在父类里. 面向对象的三要素 封装 继承 多态:用父类声明引用,子类生成对象 ...
- 20155213 2016-2017-2 《Java程序设计》第九周学习总结
20155213 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 JDBC(Java DataBase Connectivity)即java数据库连 ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
随机推荐
- 软工网络15团队作业8——Beta阶段敏捷冲刺(用户使用调查报告)
一.项目概述 1.项目名称 考研必背 2.项目简介 微信小程序,帮助考研学生记忆单词. 3.项目预期达到目标 用户无需下载app,仅通过微信小程序就可以达到背单词的目的,并且能够制定背单词的计划. 4 ...
- HDU 2061 Treasure the new start, freshmen!
http://acm.hdu.edu.cn/showproblem.php?pid=2061 Problem Description background:A new semester comes , ...
- Python模块Scrapy导入出错:ImportError: cannot import name xmlrpc_client
Mac(OS version: OS X Yosemite 10.10.5)上安装Scrapy模块,使用时出现: from six.moves import xmlrpc_client as xmlr ...
- Windows 常用快捷方式
gpedit.msc-----组策略sndrec32-----录音机nslookup----- ip地址侦测器explorer------ 打开资源管理器logoff-------注销命令tsshut ...
- VNC Server (CentOS 7 GNOME)
1. 安装VNC服务 sudo yum install tigervnc-server -y 2. 启动VNC服务,设置密码,然后停止 vncserver :1 vncserver -kill :1 ...
- BugScan插件编写高(gǎo)级(jī)教程
声明:本文最先发布在:http://q.bugscan.net/t/353 转载请注明出处 有问题可以和我交流 邮件(Medici.Yan@gmail.com) 个人博客地址:http://www.c ...
- line search中的重要定理 - 梯度与方向的点积为零
转载请注明出处:http://www.codelast.com/ 对精确的line search(线搜索),有一个重要的定理: ∇f(xk+αkdk)Tdk=0 这个定理表明,当前点在dk方向上移动到 ...
- 一步步创建第一个Docker App —— 2. 创建 Docker化 主机
原文:https://docs.docker.com/engine/getstarted-voting-app/node-setup/ 部署voting app的第一步,是为集群节点(swarm no ...
- docker虚拟机动态扩展内存
需求:将一台docker虚拟机的内存从6G扩展到8G. 关于资源限制,docker使用的是cgroup,这里就不细说原理了,只记录一下操作方法. 1.先找到容器ID # docker ps 2.进入对 ...
- 【THUSC2017】巧克力
题目描述 “人生就像一盒巧克力,你永远不知道吃到的下一块是什么味道.” 明明收到了一大块巧克力,里面有若干小块,排成n行m列.每一小块都有自己特别的图案ci,j,它们有的是海星,有的是贝壳,有的 ...