20165230 2017-2018-2 《Java程序设计》第9周学习总结
教材学习内容总结
第十二章 java网络编程
- 学习了用于网络编程的类,了解URL、Socket、InetAddress和DatagramSocket类在网络编程中的重要作用
- 使用URL创建对象的应用程序称作客户端程序。
- 用
public URL(String spec) throws MalformedURLException
构造方法创建URL对象。 - 通过调用
InputStream openStream()
方法返回指向URL对象包含的资源的输入流,可以将服务器上的资源信息读入到客户端 - 网络套接字是基于TCP协议的有连接通信。服务器建立ServerSocket对象,负责等待客户端请求建立套接字连接,客户端建立Socket对象向服务器发出套接字连接请求
- 基于UDP的通信比基于TCP的通信传递信息更快,但不提供可靠性保证
- 设计广播数据报网络程序时,必须将要广播或接受广播的主机加入到同一个D类地址
- 使用RMI可以让JVM上的应用程序请求调用位于网络上另一处JVM上的对象方法
教材学习中的问题和解决过程
- 问题1:为什么URL地址正确也可能发生异常?
问题1解决方案:通过学习教学视频了解到:由于网络不通,地址不合理,格式不正确等多种原因可导致发生异常。
代码调试中的问题和解决过程
问题1:调试p410页的代码时出现以下错误提示
- 问题1解决:发现是将ReceiveLetterForLi的代码拷贝错误到ReceiveLetterForZhang类中,出现了重复
问题2:if后是单句,但显示没有加大括号,不能省略吗?
-
问题2解决:通过查询CSDN,找到了答案:
理由大致如下:
- 为了代码规范,应该在if后加大括号
- 如果需要在if后声明临时变量,需要加上大括号,否则编译通过不了
- google的编程规范是说if后必须要加(不知道真假,也没去追究)
- 为了代码以后修改不产生歧义
- 结论:java编程中if后面需要加大括号。约定优于配置
代码托管
https://gitee.com/BESTI-IS-JAVA-2018/20165230/commit/5dd42538867b45b2b037b6d2039c2cf622fd26d9
代码截图
本周许多代码都是通过idea上的git上传到码云,因此虚拟机里的代码量比实际少
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 13/13 | 1/30 | 19/19 | |
第二周 | 426/426 | 3/30 | 12/12 | |
第三周 | 562/562 | 4/30 | 15/15 | |
第四周 | 1552/1958 | 5/30 | 16/16 | |
第五周 | 1123/3086 | 6/30 | 14/14 | |
第六周 | 747/3833 | 8/30 | 12/12 | |
第七周 | 953/4786 | 11/30 | 13/3 | |
第八周 | 1095/5881 | 13/30 | 14/14 | |
第九周 | 749/6630 | 15/30 | 12/12 |