《Java程序设计》第5周学习总结

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现有:
1. import java.util.*;
2.
3. Class FindStuff {
4.public static void main (String[]args) {
5, //insert code here
6. c.put ("X", 123);
7. }
8. }

分别插入到第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

参考资料

原文地址:https://www.cnblogs.com/Ychancy/p/10633966.html