20165226 2017-2018-4 《Java程序设计》第9周学习总结

20165226 2017-2018-4 《Java程序设计》第9周学习总结

教材学习内容总结

第十二章

  • URL类
    • 构造方法1
try {  URL url = new URL("http://www.google.com");
}
catch(MalformedURLException e) {
System.out.println("Bad URL:"+url);
}
  • 构造方法2:用public URL(String protocol,String host,String file) throws MalformedURLException
  • InetAddress类获取地址
    • 获取InetAddress上主机地址,用静态方法getByName(String s)
    • 获取本地机地址,用静态方法getLocalHost()
  • 套接字
    • ServerSocket对象与服务器端套接字

    • 使用多线程技术

      20165226 2017-2018-4 《Java程序设计》第9周学习总结

    • 数据报

  • java远程调用

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

  • 问题1:在学习从书上399页开始的套接字那章节时,发现了一个问题,内容只介绍了怎样将客户端和服务器端的套接字对象连接在一起交互信息,但没有给出套接字的具体定义。
  • 问题1解决方案:在百度上搜索,有如下解释:
1、源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字。其用于标识客户端请求的服务器和服务。
2、套接字,是支持TCP/IP的网络通信的基本操作单元,可以看做是不同主机之间的进程进行双向通信的端点。

总结:套接字其实是简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程。

  • 问题2:UDP服务器是怎么知道客户端的IP地址和UDP端口?
  • 问题2解决方案:一种是客户端发消息显式地告诉服务器IP地址和端口,消息内容就包括IP地址和UDP端口。另外一种就是隐式的,服务器从收到的包的头部中得到包的源IP地址和端口。

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

  • 问题1:在编译Example13_1时出现以下错误类型

    20165226 2017-2018-4 《Java程序设计》第9周学习总结

  • 问题1解决方案:通过输入javac -encoding gbk Example13_1.java,然后成功编译并运行。

    20165226 2017-2018-4 《Java程序设计》第9周学习总结

代码托管

20165226 2017-2018-4 《Java程序设计》第9周学习总结

上周考试错题总结

  • 易错点:B项应为start()方法。C项执行sleep结束后,线程重新进到线程队列中排队等待CPU资源。
下列关于线程状态与生命周期的说法,错误的是
A . 在线程没有结束run()方法之前,不要让线程再调用start()方法,否则将发生IllegalThreadStateException异常。
B . run()方法负责通知JVM有新的线程等候切换。
C . 执行sleep()结束后,该线程进入运行状态,得到CPU的使用权。
D . 进入阻塞状态时,线程不能进入排队队列。
正确答案: B C 我的答案: A B
  • 易错点:该程序只有一个主线程,thread线程并没有启动。
以下代码中有两个线程:
public class E {
public static void main(String args[]) {
Target target =new Target();
Thread thread =new Thread(target);
target.run();
for(int i= 0;i<=10;i++) {
System.out.println("yes");
try{ Thread.sleep(1000);
}
catch(InterruptedException exp){}
}
}
}
class Target implements Runnable{
public void run() {
for(int i= 0;i<=10;i++) {
System.out.println("ok");
try{
Thread.sleep(1000);
}
catch(InterruptedException exp){}
}
}
}
A . true
B . false
正确答案: B 我的答案: A

结对及互评

  • 博客中值得学习的或问题:
    • 要素全面
    • 很认真细致
    • 排版简介美观
  • 代码中值得学习的或问题:
    • 代码中文件分类简洁
    • 很认真

点评过的同学博客和代码

  • 本周结对学习情况
    • 20165230
      • 结对学习内容
      • 商讨结对编程的相关应用,共同完成实验三相关内容。

其他

学习了有关通信的技巧知识

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 48/48 1/1 20/20
第二周 390/438 2/3 18/38
第三周 866/1304 1/4 18/56
第四周 1105/2409 1/5 30/86
第五周 1229/3196 1/6 20/106
第六周 1147 /4343 2/8 25/131
第七周 1222 / 3668 2/10 20/151
第八周 284 / 3930 3/13 20/171
第九周 1228/4466 2/15 19/190

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

耗时估计的公式

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

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

  • 计划学习时间:30小时

  • 实际学习时间:18小时

  • 改进情况:

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

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

参考资料

上一篇:存储库之MongoDB、mysql


下一篇:Express+Socket.IO 实现简易聊天室