20175320 2018-2019-2 《Java程序设计》第11周学习总结
教材学习内容总结
本周学习了教材的第十三章的内容,在这章中介绍了如何使用Java在网络中收发数据,进行网络相关的操作,并在本章中结合了线程以及数据库的内容。
URL类
URL类是java.net包中的一个重要的类,使用URL创建对象的应用程序称为客户端程序,一个URL对象通常包含最基本的三部分信息:协议、地址、资源。URL类主要用于客户端读取服务器信息。
主要方法:
- 构造方法:
public URL (String spec) throws MalformedURLException
。 InputStream openStream()
返回一个输入流,用于读取服务器的数据。
InetAddress类
InetAddress类主要用于存放主机的地址的域名以及IP地址
常用方法:
- 通过静态方法
getByName
将一个域名或IP地址传输给参数,并创建一个InetAddress对象,该对象含有参数所包含的信息。 - 实例方法
getHostName()
获取InetAddress对象所包含的域名,getHostAddress()
获取InetAddress对象所含的IP地址。
套接字
客户端使用Socket
类建立负责连接到服务器的套接字对象,并使用该对象调用getInputStream()
方法获得一个输入流的数据提供方,输出数据的过程类似。服务器使用ServerSocket
类的对象使用accept
方法创建Socket
类对象,并使用Socket
类对象调用getInputStream()
方法获得一个输入流的数据提供方,服务器输出数据的过程类似。需要注意的是通过Socket
类建立连接的方法有两种,且在客户端通过输入流读入数据以及服务器等待客户呼叫并通过输入流读入数据时会发生阻塞,需要使用线程。
在建立连接的基础上我们可以实现数封装据的收发、广播数据、远程调用,并可在实际应用中结合数据库的知识。
教材学习中的问题和解决过程
问题1:在本章的使用多线程技术的部分中提到了使用Socket
类创建套接字对象,但不明白这和多线程有什么关系。
问题1解决方法:经过与前面内容的多次比对,发现该内容是创建套接字的另一种方法,与前面直接使用构造方法建立连接的方法不同的是,该内容通过connet
方法建立了连接,步骤较前面要繁琐一些。
代码调试中的问题和解决过程
问题1:运行第二个例子时显示无法找到该地址。
问题1解决方法:发现是没有连接上网络,无法获得服务器的地址。
问题2:运行第七个例子时显示使用了空的指针。
问题2解决方法:需要使用数据库,我在虚拟机上没有安装数据库需要的软件,于是在windows下开启了数据库服务,并编译运行代码。
代码托管
上周考试错题总结
本周没有进行测试,上周测试的内容已经总结。
其他(感悟、思考等,可选)
Java网络编程离不开线程的使用,这让我认识到线程的重要性。本章内容在应用过程中与数据库进行了结合,由此可见有实际应用价值的网络数据传输离不开数据库。在本周的学习过程中我们实现的都是在本机的数据传输,而不同IP的数据传输还需要在时间中探索具体的实施方法。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第十一周 | 2403/8796 | 1/17 | 25/237 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
- 计划学习时间:25小时
- 实际学习时间:25小时
- 改进情况:多看看现代软件工程 课件 软件工程师能力自我评价表
参考资料
原文地址:https://www.cnblogs.com/nameless-student/p/10846987.html