20175320 2018-2019-2 《Java程序设计》第11周学习总结

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:运行第二个例子时显示无法找到该地址。
1591606-20190510220259254-494140340.png
问题1解决方法:发现是没有连接上网络,无法获得服务器的地址。
1591606-20190510220319717-1722679420.png
问题2:运行第七个例子时显示使用了空的指针。
1591606-20190510220339154-887769502.png
问题2解决方法:需要使用数据库,我在虚拟机上没有安装数据库需要的软件,于是在windows下开启了数据库服务,并编译运行代码。
1591606-20190510220400303-1948104433.png

代码托管

1591606-20190510220524202-433157639.png

上周考试错题总结

本周没有进行测试,上周测试的内容已经总结。

其他(感悟、思考等,可选)

Java网络编程离不开线程的使用,这让我认识到线程的重要性。本章内容在应用过程中与数据库进行了结合,由此可见有实际应用价值的网络数据传输离不开数据库。在本周的学习过程中我们实现的都是在本机的数据传输,而不同IP的数据传输还需要在时间中探索具体的实施方法。

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行30篇400小时
第十一周2403/87961/1725/237

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

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

参考资料

转载于:https://www.cnblogs.com/nameless-student/p/10846987.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值