20189208 2018-2019-2 《Java 程序设计》第 5 周学习总结
教材学习内容总结
十六章 输入 / 输出
学习了针对小文件的 java.nio.io.file.Files 和大文件的四种流和随机操作 java.io.RandomAccessFile.
十九章 线程
多线程可以使用 1 拓展 java.lang.thread 类 2 实现 java.lang.Runnable 接口.
二十章 并发工具
学习 java.util.currency 包中的并发工具, 原子变量操作的类, 尽量使用 Executor 接口实现. Callable 和 Future, 类. 以及锁住共享资源.
二十二章 网络
HTTP 协议, java.NET.URL,java.NET.URLConnetion,java.NET.SeverSocket,java.NET.Socket,webSever 的三个类,
教材学习中的问题和解决过程
问题 1:TCP/IP 的网络通信的实现
问题 1 解决方案:
发送: 创建 Socket 实例 - getOutputStream 方法获取 java.io.OutputStream 对象, 发送和接受字节流,
问题 2:XXXXXX
问题 2 解决方案: XXXXXX
...
代码调试中的问题和解决过程
问题 1: 后缀表达式无法计算
问题 1 解决方案: 转化为后缀表达式时, 数字与数字之间缺少空格.
问题 2:Client 端收不到结果
- // 获取服务器端传递的数据
- BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
- String info= br.readLine();// 总是 bug 无法输出 info,info 的值是 java.io.BufferedReader
问题 2 解决方案: 我猜是 info 的赋值过程出了问题, 翻书换了表达方式, 并且把 br.readLine() 改为 br.read() 或 br.toString().nfo 就可以输出 java.io.BufferedReader 这个错误数值了. info 和 Server 端的变量是相同的名字, 我猜可能混淆了, 就改了名字为 i. 终于成了.
- // 获取服务器端传递的数据
- BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
- String i = br.readLine();
代码托管
- ...
- //==========Today=====================================
- code summary infomation:
- 232
- documents summary infomation:
- 0
- //==========This Week=================================
- code summary infomation:
- 753
- documents summary infomation:
- 0
- ac1710c - ssrchan,2019-03-27 20:01:02 +0800: add package ServerClient
- e34c5b0 - ssrchan,2019-03-27 15:45:48 +0800: add MyBC MyDC
- //==========All=================================
- code summary infomation:
- 1745
- documents summary infomation:
- 107
- commit history:
- ac1710c - ssrchan,2019-03-27 20:01:02 +0800: add package ServerClient
- e34c5b0 - ssrchan,2019-03-27 15:45:48 +0800: add MyBC MyDC
- c100c7a - ssrchan,2019-03-20 16:52:36 +0800: add box p sub
- 40d4bde - ssrchan,2019-03-20 15:00:36 +0800: Merge remote-tracking branch 'origin/master'
- ...
上周考试错题总结
错题 1 现有:
import java.util.*;
.
- Class FindStuff {
- public static void main (String[]args) {
- , //insert code here
. c.put ("X", 123);
. }
}
分别插入到第 5 行, 哪几行允许代码编译?
A.
Map c= new SortedMap();
B.
HashMap c= new HashMap();
C.
HashMap c= new Hashtable();
D.
SortedMap c= new TreeMap();
E.
ArrayList c= new ArrayList();
F.
Map c = new LinkedHashMap();
正确答案: B D F
错题 2
现有:
list 是一个合法的集合引用
getCollection() 返回一个合法集合的引用
哪个是合法的?
A.
or(Object o ; list)
B.
for(Object o : getCollection())
C.
for(Object o : list.iterator())
D.
for(lterator i ; list.iterator() ; i.hasNext () )
E.
for(lterator i=list.iterator(); i.hasNext (); )
正确答案: B E
学习进度条
代码行数(新增 / 累积) | 博客量(新增 / 累积) | 学习时间(新增 / 累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000 行 | 30 篇 | 400 小时 | |
第一周 | ----- | ----- | ----- | |
第二周 | 180/180 | 2/3 | 18/18 | |
第三周 | 429/609 | 1/4 | 24/42 | |
第四周 | 588/1197 | 2/6 | 30/72 | |
第五周 | 548/1745 | 2/6 | 20/92 |
参考资料
Java 学习笔记 (第 8 版) http://book.douban.com/subject/26371167/
《Java 学习笔记 (第 8 版)》学习指导 http://www.cnblogs.com/rocedu/p/5182332.html
[Java 技术手册 (第六版)] ( https://book.douban.com/subject/26674131/ )
来源: http://www.bubuko.com/infodetail-3007032.html