20165209 2017-2018-2 《Java程序设计》第9周学习总结
Posted tutu233
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20165209 2017-2018-2 《Java程序设计》第9周学习总结相关的知识,希望对你有一定的参考价值。
20165209 2017-2018-2 《Java程序设计》第9周学习总结
教材学习内容总结
URL类
- ULR对象通常包含最基本的三部分信息:协议、地址、资源。
- 构造方法:
public URL(String spec) throws MalformedURLException
- 读取资源:调用
InputStream openStream()
方法可以返回一个输入流。
InetAddress 类
- 地址表示:域名、IP地址
- 获取Internet上主机地址:使用InterAddress类的静态方法
getByName(String s)
,返回对象含有主机地址的域名和IP地址。 public String getHostName()
获取对象所含域名,public String getHostAddress()
获取对象所含IP地址。- 获取本机地址:使用InterAddress类的静态方法
getLocalHost()
,返回对象含有本地机器的域名和IP地址。
套接字
使用Socket类建立套接字对象并连接在一起(端口号与IP地址的组合得出一个网络套接字),使两个程序完成通信。
客户端套接字:使用
getOutputStream()
获得输出流。//建立连接到服务器的套接字对象 try { Socket clientSocket = new Socket("http://192.168.0.78",2010); } //(IP,端口号) catch(IOException e) {}
ServerSocket对象与服务器端套接字
//建立ServerSocket对象 try{ ServerSocket serverForClient = new ServerSocket(2010); }//(端口号) catch(IOException e) {} //使用accept()方法将客户端和服务器端套接字连接起来 try{ Socket sc = serverForClient.accept(); } catch(IOException e) {}
调用
getInetAddress()
方法,服务器端获得客户端的IP地址和域名,客户端获得服务器端的IP地址和域名。
UDP数据报
发送数据报
接收数据报
广播数据报
JAVA远程调用
- 远程对象及其代理
- RMI设计细节
1.扩展Remote接口
2.远程对象
3.存根与代理
4.启动注册
5.启动远程服务对象
6.运行客户端程序
教材学习中的问题和解决过程
问题1:为什么套接字一定要有端口号?
问题1解决方案:端口号为了方便程序间通信,确定要执行的内容。
代码托管
上周考试错题总结
- 错题1:下列说法正确的是 A B D
A . Java语言的一大特性就是内置对多线程的支持。
B . main方法返回时,JVM就会结束Java应用程序。
C . Java应用程序中第一个线程结束后,JVM结束Java应用程序。
D . Java语言使用Thread类及其子类对象来表示线程
解析:C.所有的线程结束后,JVM才结束Java应用程序。
- 错题2:下列关于线程状态与生命周期的说法,错误的是 B C
A . 在线程没有结束run()方法之前,不要让线程再调用start()方法,否则将发生IllegalThreadStateException异常。
B . run()方法负责通知JVM有新的线程等候切换。
C . 执行sleep()结束后,该线程进入运行状态,得到CPU的使用权。
D . 进入阻塞状态时,线程不能进入排队队列。
解析:
B:应为start()方法。
C:执行sleep结束后,线程重新进到线程队列中排队等待CPU资源。- 错题3:下列关于线程常用的方法的叙述,错误的是 C D
A . 让run方法执行完毕,线程就变成死亡状态。
B . 如果线程在休眠时被打断,JVM会抛出InterruptedException异常。
C . 一个已运行的线程没有进入死亡状态时,如果再给线程分配实体,则先前的实体会被垃圾收集器收集掉。
D . 当线程进入死亡状态后,线程就不能够调用isAlive()方法了。
解析:
C:先前的实体会成为“垃圾”,并且不会被垃圾收集器收集。
D:当线程进入死亡状态后,线程就还可以调用isAlive()方法,并且返回值为false
其他(感悟、思考等,可选)
由于本章是Java中的网络编程部分,综合了线程和窗口的知识,更加具有综合性。设计的思想更全面,体会到基础知识的重要,而且课上的测试,课下的实验也更加有难度。希望能够坚持学习,并且能够定期巩固前面的知识,提高自己的Java编程能力。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 37/37 | 1/1 | 20/20 | |
第二周 | 654/691 | 3/4 | 18/38 | |
第三周 | 477/1131 | 3/7 | 22/60 | |
第四周 | 657/1730 | 2/9 | 30/90 | |
第五周 | 1260/2515 | 1/10 | 30/120 | |
第六周 | 1022/3319 | 2/12 | 20/140 | |
第七周 | 1213/3803 | 1/13 | 20/160 | |
第八周 | 993/4796 | 4/17 | 30/190 | |
第九周 | 1584/5808 | 1/18 | 22/212 |
参考资料
以上是关于20165209 2017-2018-2 《Java程序设计》第9周学习总结的主要内容,如果未能解决你的问题,请参考以下文章
20165209 2017-2018-2 《Java程序设计》第9周学习总结
2018-2019-2 20165209 《网络对抗技术》 Kali安装
2018-2019-1 20165209 20165215 实验五 通讯协议设计
20172315 2017-2018-2 《程序设计与数据结构》实验五报告