20155333 2016-2017-2 《Java程序设计》第七周学习总结
20155333 2016-2017-2 《Java程序设计》第七周学习总结
教材学习内容总结
Lambda 教材的引入循序渐近、深入浅出
- Lambda去重复,回忆DRY原则
- Lambda表达式可读性更好
Arrays.sort
- Comparator: 对比C语言中使用函数指针
- 匿名类与多态
方法引用(Method Reference)
- 新语法
- 一条语句用Lambda表达式,多条语句用方法引用
函数接口(Functional Interface)
就是只有一个抽象方法的接口
Runnable
Callable
Comparator
...
- @FunctionalInterface
- 可引用的包括类的静态方法、成员方法、构造方法
接口默认方法(Default Method)
- 不能使用类的成员变量
使用Optional代替null
标准API的函数接口
- Consumer:一个参数,无返回值
- Function:一个参数,有返回值
- Predicate:一个参数,有返回值,返回值必须是boolean类型的
- Supplier:无参数,有返回值
Stream与管道
时间的度量
- 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毫秒数
日历
- 儒略历(Julian Calendar)
- 格里高利历(Gregorian Calendar)
- ISO8601 标准
时区
Date与DateFormat
- Date只用来获取epoch毫秒数
- DateFormat来格式化成人类理解的年月日时分秒
Calendar: 时间的运算
- getInstance(): GregorianCalendar
- getTime()
- get()
- add()
- roll()
- after()
- before()
- ...
机器时间 Instant
人类时间(ISO8601 标准)
- LocalDateTime
- LocalDate
- LocalTime
- ZonedDateTime
- OffsetdateTime
- Year
- YearMonth
- Month
- MonthDay
- TemporalAmount
- TemporalUnit
- TemporalAccessor
- Chronology
教材学习中的问题和解决过程
- 问题1:将机器对时间的概念与人类对时间的概念区隔开来,让机器与人类对时间概念的界限变得分明,有什么意义?
- 问题1解决方案:我没搞清楚......
- 问题2:•如何计算一个程序的运行时间?
- 问题2解决方案:
- (1)以毫秒为单位计算:
long startTime=System.currentTimeMillis(); //获取开始时间
doSomeThing(); //测试的代码段
long endTime=System.currentTimeMillis(); //获取结束时间
System.out.println("程序运行时间: "+(end-start)+"ms");
- (2)以纳秒为单位计算:
long startTime=System.nanoTime(); //获取开始时间
doSomeThing(); //测试的代码段
long endTime=System.nanoTime(); //获取结束时间
System.out.println("程序运行时间: "+(end-start)+"ns");
- ...
代码调试中的问题和解决过程
因为是粘贴了课本上的代码,所以代码调试中并未出现什么问题
- ...
代码托管
运行statistics脚本时出现中文乱码,再次运行时正常。
上周考试错题总结
- 错题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
正确答案: C
除了t1,t2, 不要忘了main所在的主线程
- 错题3及原因,理解情况
Java中,可以继承()类定义线程
A . Runnable
B . Thread
C . Future
D . Executor
正确答案: B
- 错题4及原因,理解情况
如果有以下代码段:
Thread thread = new Thread(new ________________() {
public void run() {...}
});
空白部分指定哪些类型可以通过编译?
A . Runnable
B . Thread
C . Future
D . Executor
正确答案: A B
查API文档,Thread 也实现了 Runnable 接口
- 错题5及原因,理解情况
调用线程的interrupt()方法 ,会抛出()异常对象?
A . IOException
B . IllegalStateException
C . RuntimeException
D . InterruptedException
E . SecurityException
正确答案: D E
查看帮助文档
- 错题6及原因,理解情况
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, 下面哪些选项可以创建一个并行流?
A . new ParallelStream(s)
B . c.parallel()
C . s.parallelStream()
D . c.parallelStream()
E . new ParallelStream(c)
F . s.parallel()
正确答案: D F
没有像 ParallelStream 这样的类, 所以 a 和 e 是不正确的。流类中定义的用于从现有流创建并行流的方法是平行的 ();因此, f 是正确的, c 是不正确的。在集合类中定义的用于从集合创建并行流的方法是 parallelStream ();因此, d 是正确的, b 是不正确的。
- 错题7及原因,理解情况
Which of the following statements about the Callable call() and Runnable run() methods are correct? (Choose all that apply.)
以下关于可调用调用call () 和可执行运行run () 方法的语句中的哪一个是正确的?(选择适用的所有)
A . Both can throw unchecked exceptions.
B . Callable takes a generic method argument.
C . Callable can throw a checked exception.
D . Both can be implemented with lambda expressions.
E . Runnable returns a generic type.
F . Callable returns a generic type.
G . Both methods return void
正确答案: A C D F
- 错题8及原因,理解情况
What are some reasons to use a character stream, such as Reader/Writer, over a byte stream, such as InputStream/OutputStream? (Choose all that apply.)
在字节流, 例如 InputStream/OutputStream, 使用字符流的原因是什么?(选择适用的所有)
A . More convenient code syntax when working with String data
B . Improved performance
C . Automatic character encoding
D . Built-in serialization and deserialization
E . Character streams are high-level streams
F . Multi-threading support
正确答案: A C
字符流类通常包括用于工作 withString 数据的内置方便方法, 因此 a 是正确的。他们也会自动处理字符编码, 所以 c 也正确。其余的语句是无关紧要的或不正确的, 不是属性而字符流。
- 错题9及原因,理解情况
Assuming zoo-data.txt is a multiline text file, what is true of the following method?
假定 zoo-data.txt 是一个多行文本文件, 下面的方法是什么?
private void echo() throws IOException {
try (FileReader fileReader = new FileReader("zoo-data.txt");
BufferedReader bufferedReader = new BufferedReader(fileReader)) {
System.out.println(bufferedReader.readLine());
}
}
A . It prints the first line of the file to the console.
B . It prints the entire contents of the file.
C . The code does not compile because the reader is not closed.
D . The code does compile, but the reader is not closed.
E . The code does not compile for another reason.
正确答案: A
此代码编译并运行不问题, 因此 c 和 e 不正确。它使用尝试使用资源块来打开 FileReader 和 BufferedReader 对象。因此, 两个 getclosed 自动, d 是不正确的。try 块的正文在第一个线文件中读取, 并将其输出给用户。因此, a 是正确的。由于文件的其余部分是 notread, b 不正确。
- 错题10及原因,理解情况
What is the result of executing the following code? (Choose all that apply.)
执行以下代码的结果是什么?(选择适用的所有)
String line;
Console c = System.console();
Writer w = c.writer();
if ((line = c.readLine()) != null)
w.append(line);
w.flush();
A . The code runs without error but prints nothing.
B . The code prints what was entered by the user.
C . An ArrayIndexOutOfBoundsException might be thrown.
D . A NullPointerException might be thrown.
E . An IOException might be thrown.
F . The code does not compile.
正确答案: B D E
这是正确的代码, 从控制台读取一行并将其写回 outto 控制台, 使选项 b 正确。选项 d 和 e 也是正确的。如果没有可用的鞋底, 就会抛出一个空指针异常。追加 append() 方法抛出 anIOException。
- 错题11及原因,理解情况
Which of the following are true? (Choose all that apply.)
A . A new Console object is created every time System.console() is called.
B . Console can only be used for reading input and not writing output.
C . Console is obtained using the singleton pattern.
D . When getting a Console object, it might be null.
E . When getting a Console object, it will never be null.
正确答案: C D
一个控制台对象是由 jvm 创建的。因为只有一个存在, 它是一个单一的, mak 选项 c 正确。如果程序在没有控制台、系统的环境中运行. 控制台 () 返回 null, 使 d 也正确。有关控制台 areincorrect 的其他语句。
- 错题12及原因,理解情况
Which classes will allow the following to compile? (Choose all that apply.)
哪些类将允许以下内容进行编译?(选择适用的所有)
InputStream is = new BufferedInputStream(new FileInputStream("zoo.txt"));
InputStream wrapper = new _____(is);
A . BufferedInputStream
B . FileInputStream
C . BufferedWriter
D . ObjectInputStream
E . ObjectOutputStream
F . BufferedReader
正确答案: A D
引用为 InputStream 对象, 因此仅允许课高级输入流。b 不正确, 因为 FileInputStream是一个低级流,它interactsdirectly 文件资源, 而不是流资源。c 和 f不正确, 因为您不能直接在流上使用BufferedReader/BufferedWriter。e 是不正确的, 因为引用的是 InputStream, 而不是 OutputStream。a 和 d 是唯一的correctoptions。注意, BufferedInputStream 可以被包裹两次, 因为高水平的 streamscan 采取其他高水平的溪流。
- 错题13及原因,理解情况
Suppose that the file c:\book\java exists. Which of the following lines of code creates an object that represents the file? (Choose all that apply.)
假定文件 c:\book\java 存在。下面哪行代码创建表示文件的对象?(选择适用的所有)
A . new File("c:\book\java");
B . new File("c:\book\java");
C . new File("c:/book/java");
D . new File("c://book//java");
E . None of the above
正确答案: B C
选项 b 是正确的, 因为 java 需要用 anotherbackslash 来转义一个反斜线。选项 c 也是正确的, 因为 java 会将斜线转换为使用路径的右侧 onewhen。
- 错题14及原因,理解情况
Which of the following are built-in streams in Java? (Choose all that apply.)
下面是 java 中的内置流?(选择适用的所有)
A . System.err
B . System.error
C . System.in
D . System.input
E . System.out
F . System.output
正确答案: A C E
系统类有三个流: in 是用于输入, 错误是为出错, 而出是 foroutput。因此, a, c 和 e 是正确的。其他不存在。
结对及互评
评分标准
正确使用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
点评过的同学博客和代码
- 本周结对学习情况
- 20155312
- 结对照片
- 结对学习内容
- 课本第十三章的内容
- 实验一
- ...
- 上周博客互评情况
其他(感悟、思考等,可选)
本周因为清明节放假的缘故,学习时间有所缩减,但本周学习内容较少,让我可以在学习本周内容的同时逐渐补上前面几周落下的内容。在这两周测试时我发现,即使我认真看过了课本上所有的内容,测试时还是感觉力不从心,除了明确的知识点和前面考过的题,其他的题都或多或少存在看不懂的情况,我英语不好是一方面的原因,但我觉得更主要的原因是,虽然我花了很多时间来看书、敲代码、写博客,我以为我学到了很多东西,但真正要用的时候才发现自己对好多知识其实都是一知半解,甚至根本不会。还有过于追求代码量和博客,每周学习Java的时间80%都用来做这些了,但其实并没有太大的作用,我想我在经历了惨痛的教训之后终于明白自己其实一直在舍本逐末,代码量和博客对我来说其实没有我想的那么重要,毕竟学习是为了自己,而不是学给别人看的。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 12/12 | 1/4 | 20/20 | |
第二周 | 64/76 | 1/5 | 22/42 | |
第三周 | 560/636 | 1/6 | 22/64 | |
第四周 | 532/1168 | 1/7 | 20/84 | |
第五周 | 510/1728 | 1/8 | 20/104 | |
第六周 | 697/2425 | 1/9 | 15/119 | |
第七周 | 269/2694 | 1/10 | 15/134 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:20小时
实际学习时间:15小时
改进情况:本周学习内容较少,学习效率有所提高。
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)
参考资料
20155333 2016-2017-2 《Java程序设计》第七周学习总结的更多相关文章
- 201521123027 <java程序设计>第七周学习总结
1.本周学习总结 2.书面作业 Q1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 答: 源代码: //contains()方法 public boolean c ...
- 20155333 2016-2017-2 《Java程序设计》第九周学习总结
20155333 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC(Java DataBase Connectivity) 驱动的四种类型 JDBC- ...
- 20155333 2016-2017-2《Java程序设计》第二周学习总结
20155333 2016-2017-2<Java程序设计>第二周学习总结 教材学习内容总结 1. Java 类型系统:基本类型和类类型(参考类型) 2. 基本类型: 整数:short整数 ...
- 20155333 2016-2017-2 《Java程序设计》第一周学习总结
<java程序设计>第一周学习总结 学习目标 •了解java基础知识 •了解JVM.JRE与JDK,并下载.安装.测试JDK •了解PATH.CLASSPATH.SOURCEPATH的作用 ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第七周学习总结
201871010106-丁宣元 <面向对象程序设计(java)>第七周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...
- 20155312 2016-2017-2 《Java程序设计》第九周学习总结
20155312 2016-2017-2 <Java程序设计>第九周学习总结 课堂内容总结 两个类有公用的东西放在父类里. 面向对象的三要素 封装 继承 多态:用父类声明引用,子类生成对象 ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
- 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结
20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...
随机推荐
- CH7-WEB开发(集成在一起)
- 安卓教程:提取APK程序里图片资源的方法
有些APK程序里的图标.图片很漂亮,在使用程序时你可能会想,如果能把这些漂亮的图标.图片提取出来就好了,其实这是可以办到的,请看教程. 本教程以“电影超人”的APK安装包为例,其它APK程序的提取方法 ...
- 当div没有设置宽度,使用width的fit-content和margin:auto实现元素的水平居中
当我们做水平居中的时候,会有许多方法,margin:0 auto,或者test-align:center,以及flex布局.当元素的width不固定的时候,我们如何实现水平居中呢,代码如下: < ...
- IOS中数组的使用(NSArray, NSSet, NSDictionary)
一.Foundation framework中用于收集cocoa对象(NSObject对象)的三种集合分别是: NSArray 用于对象有序集合(数组)NSSet 用于对象无序集合(集合) NSDic ...
- C++模板实战6:迭代器
1 迭代器的类型: 输入迭代器 .前向迭代器.双向迭代器.跳转迭代器以及输出迭代器.这五种迭代器的限制条件从左至右越来越强. 2 输入迭代器需满足的条件: X u(a); X可复制构造 u=a; 可赋 ...
- android基础组件---->Spinner的使用
Spinner提供了一个快速的方式从集合中选择值.在默认状态下,一个Spinner显示的是当前选择的值.触摸Spinner会显示一个下拉菜单,用户可以从中选择一个值.今天我们就开始Spinner的学习 ...
- 使用Sublime Text 3做Python开发
引言 刚转到OS X平台时,寻找写Python,JavaScript,Markdown等文件的工具时,比较了许多工具, 最终选择了Sublime Text 2,主要原因是其跨平台, 想着以后再转到wi ...
- 深刻理解 React (一) ——JSX和虚拟DOM
版权声明:本文由左明原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/155 来源:腾云阁 https://www.qclou ...
- LightOJ 1348(Aladdin and the Return Journey )
题目链接:传送门 题目大意:一棵无根树,每个点上有权值,两种操作,0 x y询问x~y路径上权值和 1 x y将 节点 x 权值变为y.对于询问操作输出答案. 题目思路:树链剖分 #include & ...
- 二维坐标系极角排序的应用(POJ1696)
Space Ant Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 3170 Accepted: 2029 Descrip ...