20155203 2016-2017-2 《Java程序设计》第10周学习总结
教材学习内容总结
网络编程(Java Socket编程)
Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket。像大家熟悉的QQ、MSN都使用了Socket相关的技术。
- Socket原理机制:
通信的两端都有Socket网络通信其实就是Socket间的通信数据在两个Socket间通过IO传输 - InetAddress:InetAddress类用于标识网络上的硬件资源,标识互联网协议(IP)地址。 该类没有构造方法
- TCP编程
1、TCP协议是面向连接的、可靠的、有序的、以字节流的方式发送数据,通过三次握手方式建立连接,形成传输数据的通道,在连接中进行大量数据的传输,效率会稍低
2、Java中基于TCP协议实现网络通信的类
客户端的Socket类
服务器端的ServerSocket类
Java密码学
- 体验加解密---凯撒密码
- Java对称加密-DES算法
教材学习中的问题和解决过程
- 问题一:是否关闭输出流和输入流?
- 问题一解决方案:对于同一个socket,如果关闭了输出流,则与该输出流关联的socket也会被关闭,所以一般不用关闭流,直接关闭socket即可。
代码调试中的问题和解决过程
-
问题一:在URLDemo2实例中打印www.google.com中的内容时出现如图错误:
-
问题一解决方案:将google的网址改为其他可以连接的网址,但是对于打印出来的内容还是不明白是什么意思。之后很多代码也都是把不熟悉的网址内容改成熟悉的网址就可以连接。
-
问题二:在写代码时出现了找不到Request类怎么办?
-
问题二解决方案:直接连击Alt+Enter就可以选择类包,在不知道该类属于哪个类包的情况下,可以多试几次,这个Request类在API中可以找到类包,但是和教材上的内容不太一样。
代码托管
上周考试错题总结
符合SOLID中的OCP,DIP的代码是哪一个实例?
- OCP 开闭原则
- DIP 依赖倒置原则
点评过的同学博客和代码
其他(感悟、思考等,可选)
- 总结:上周由于内容很多,有一部分实践到这周一才做,学到了很多东西,对最近正在做的大创项目有了新的认识吧。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 2500行 | 30篇 | 400小时 | |
第一周 | 80/100 | 1/1 | 20/20 | |
第二周 | 180/280 | 2/2 | 30/38 | 可以用Java语言独立的编写一些具有基本结构的程序 |
第三周 | 504/784 | 3/3 | 22/25 | |
第四周 | 690/1474 | 4/4 | 25/30 | 基本可以使用父类和子类进行简单的定义和调用 |
第五周 | 807/2281 | 5/5 | 25/25 | 进行基本的查错和抛出或直接在程序中改正,理解收集对象的含义 |
第六周 | 1373/3654 | 6/6 | 25/25 | 正确使用输入输出系统和线程的一些方法和接口,了解了一些线程环境下的注意事项 |
第七周 | 623/4508 | 2/8 | 25/172 | 了解了Lambda表达式的便捷和漏洞,学会设置时间格式 |
第八周 | 312/4900 | 1/9 | 25/197 | 了解了NIO操作的类和方法,和关于日志管理的内容 |
第九周 | 409/5309 | 2/11 | 25/222 | 学习了数据库的操作方法 |
第八周 | 352/5661 | 1/12 | 25/247 | 学习了网络编程以及密码学编程的相关问题 |
-
计划学习时间:25小时
-
实际学习时间:25小时
-
改进情况:这周任务量较小,比较前几周来说完成的更加完善吧。