20155322 2016-2017-2 《Java程序设计》第10周学习总结
20155322 2016-2017-2 《Java程序设计》第10周学习总结
教材学习内容总结
第10周学习的主要内容Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)第22章
学习目标:
- 了解计算机网络基础
- 掌握Java Socket编程
- 理解混合密码系统
- 掌握Java 密码技术相关API的使用
1. 网络编程
- 网络编程的实质就是两个(或多个)设备(例如计算机)之间的数据传输。
- 应用层协议使用了传输层的协议。传输层常见的两种协议是TCP和UDP。
- Java提供了类来封装应用层协议。
URL(统一资源定位符)是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
2. Java Socket
Java Socket 可实现客户端--服务器间的双向实时通信。java.net包中定义的两个类socket和ServerSocket,分别用来实现双向连接的client和server端。
3.混合密码系统
对称密码和公钥密码结合起来的密码方式称为混合密码系统(hybrid cryptosystem)。
组成机制:
- 用对称密钥加密消息
通过伪随机数生成器生成对称密码加密中使用的会话密钥 - 用公钥密码加密会话密钥
从混合密码系统外部赋予公钥密码加密时使用的密钥
相关API
- java.net.URL
在Java中,一个URL通过一个java.net.URL对象来表示。可以通过调用URL类的构造方法来构建一个URL。
可以使用URL类的getFile()、getHost()、getPath()、getPort()、getProtocol()、getQuery()等方法来获取一个URL的各个部分。
- java.net.URLConnection
API手册显示,URLConnection类没有公共的构造方法,因此无法使用new关键字构造URLConnection实例。要获取实例需要在URL对象上调用openConnection方法。
URLConnection类的两个字段doInput(默认值是true)和doOutput(默认值是false),分别表示URLConnection是用于读还是写。可以使用setDoInput和setOutPut方法来设置doInput和doOutput的值。
- java.net.Socket
套接字是一个网络链接的端点。套接字使得应用程序能够从网络读取或者向网络写入信息。
创建一个套接字,可以使用如下构造方法Socket(String host, int port)
。其中,host是远程机器名或IP地址,port是远程应用程序的端口号。
可以调用Socket类的getOutputStream方法获取一个java.io.OutputStream
对象,用来发送字节流;从返回的OutputStream对象构建一个java.io.PrintWriter
对象,向远程应用程序发送文本。
- java.net.ServerSocket
Socket表示一个“客户端”套接字,而ServerSocket是服务器套接字的一个实现。
要创建服务器套接字,需要使用ServerSocket类提供的构造方法之一,其具有以下签名:public ServerSocket(int port,int backlog,InetAddress bindAddr)
。注意,该构造方法绑定的地址必须是java.net.InetAddress
类的一个实例。
教材学习中的问题和解决过程
- 问题1.:Java安全体系结构之间的关系。老师给出的解释如下:
但是我感觉解释的很抽象。
- 解决:根据教材解释和网上一些文章的理解,我感觉应该是这么回事:
- JCE/JCA是接口,不提供具体算法,只是能够调用第三方的算法,不运行算法。
- JCE扩展JCA,在其基础上增加内容。
- JSSE主要是提供SSL加密协议。
- JAAS主要提供认证服务。
- 问题2:混合密码加密系统,是如何结合的,为什么能结合两者的优势?
- 解决:
- 组成机制:用对称密钥加密消息,通过伪随机数生成器生成对称密码加密中使用的会话密钥;用公钥密码加密会话密钥,从混合密码系统外部赋予公钥密码加密时使用的密钥。
为何能结合两者优势?因为公开密钥算法并不是完美的,其比对称算法慢并且公开密钥密码系统对选择明文攻击是脆弱的,所以需要进行两者的结合。
引文:混合密码系统代码调试中的问题和解决过程
1.问题:在编译代码中遇到的关于类的编译错误
解决方案:使用import声明一下指定的DATE类:
代码托管
上周考试错题总结
错题1:课本第十章哪一个程序体现了OCP和DIP原则?
正确答案:P305 IO.java
错误原因:没有听课
结对及互评
评分标准
- 正确使用Markdown语法(加1分):
- 不使用Markdown不加分
- 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
- 排版混乱的不加分
- 模板中的要素齐全(加1分)
- 缺少“教材学习中的问题和解决过程”的不加分
- 缺少“代码调试中的问题和解决过程”的不加分
- 代码托管不能打开的不加分
- 缺少“结对及互评”的不能打开的不加分
- 缺少“上周考试错题总结”的不能加分
- 缺少“进度条”的不能加分
- 缺少“参考资料”的不能加分
教材学习中的问题和解决过程, 一个问题加1分
代码调试中的问题和解决过程, 一个问题加1分
- 本周有效代码超过300分行的(加2分)
- 一周提交次数少于20次的不加分
- 其他加分:
- 周五前发博客的加1分
- 感想,体会不假大空的加1分
- 排版精美的加一分
- 进度条中记录学习时间与改进情况的加1分
- 有动手写新代码的加1分
- 课后选择题有验证的加1分
- 代码Commit Message规范的加1分
- 错题学习深入的加1分
- 点评认真,能指出博客和代码中的问题的加1分
- 结对学习情况真实可信的加1分
- 扣分:
- 有抄袭的扣至0分
- 代码作弊的扣至0分
- 迟交作业的扣至0分
点评过的同学博客和代码
- 本周结对学习情况
- 20155302杨效宸
- 结对照片:无
- 结对学习内容:十七章类加载
- 上周博客互评情况
- 20155302杨效宸
- 学号20155305
- 学号20155239
- 学号20155335
- 学号20155322
- 学号20155331
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 15篇 | 400小时 | |
第一周 | 4/4 | 1/1 | 10/10 | |
第二周 | 20/24 | 1/2 | 9/19 | |
第三周 | 80/104 | 1/3 | 10/29 | |
第四周 | 343/ 447 | 1/4 | 15/44 | |
第五周 | 748/1195 | 1/5 | 20/64 | 能够自己敲出一些简单的程序 |
第六周 | 207/1402 | 1/6 | 10/74 | 继续敲出一些简单的程序 |
第七周 | 241/1643 | 2/8 | 11/85 | |
第八周 | 209/1852 | 1/9 | 11/96 | |
第九周 | 630/2482 | 2/11 | 20/116 | 代码量提高,学会Junit |
第十周 | 996/3587 | 1/12 | 25/141 | 代码量提高 |
计划学习时间:20小时
实际学习时间:25小时
改进情况:五一放假,代码量提高,学习时间增多
参考资料
20155322 2016-2017-2 《Java程序设计》第10周学习总结的更多相关文章
- 20155322 2016-2017-2 《Java程序设计》 第一周学习总结
20155322 2016-2017-2 <Java程序设计> 第一周学习总结 教材学习内容总结 本周学习内容的主要是: 一.浏览教材,根据自己的理解每章提出一个问题. 在浏览教材后,我提 ...
- 2018面向对象程序设计(Java)第10周学习指导及要求
2018面向对象程序设计(Java)第10周学习指导及要求(2018.11.1-2018.11.4) 学习目标 理解泛型概念: 掌握泛型类的定义与使用: 掌握泛型方法的声明与使用: 掌握泛型接口的定 ...
- 面向对象程序设计(JAVA) 第10周学习指导及要求
2019面向对象程序设计(Java)第10周学习指导及要求 (2019.11.1-2019.11.4) 学习目标 1.掌握java异常处理技术: 2.了解断言的用法: 3.了解日志的用途: 4.掌 ...
- 20155313 2016-2017-2 《Java程序设计》第九周学习总结
20155313 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 JDBC(Java DataBase Connectivity)即java数据库连 ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
随机推荐
- 关于 MapReduce
继续摘抄<Hadoop 权威指南>第二章,跳过不少于我复杂的东西,但依然是捉急的效率,开始觉得看不完另外一本全英文的书,大概每天要看5页吧... 以上. MapReduce 是一种可用于数 ...
- Odoo中的模型
转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9280164.html [Odoo中,一切皆模型,连视图都是模型.Odoo将各种数据,如:权限数据 ...
- [Java123] JDBC and Multi-Threading 多线程编程学习笔记
项目实际需求:DB交互使用多线程实现 多线程编程基础:1.5 :( (假设总分10) 计划一个半月从头学习梳理Java多线程编程基础以及Oracle数据库交互相关的多线程实现 学习如何通过代码去验证 ...
- python自动化测试框架学习
今天发现python有多个框架可以用于自动化测试方面,下面整理了下splinter和urllib2框架,对于pywinauto框架和ruby框架先记录下以后需要用到再学习. python有个splin ...
- win2003 HookPort 服务启动失败的解决办法!
Win2003系统每次开机启动时都弹出个对话框报HookPort 服务启动失败,很多网友都遇到同类问题,问题根源是360安全卫士引起的,官方一直没有给出解决方案 问题描述:Win2003系统每次开机启 ...
- JNI由浅入深_9_JNI 异常处理
1 .本地代码中如何缓存和抛出异常 下面的代码中演示了如何声明一个会抛出异常的本地方法.CatchThrow这个类声明了一个会抛出IllegalArgumentException异常的名叫doit的本 ...
- 解密蓝牙mesh系列
解密蓝牙mesh系列 https://mp.weixin.qq.com/s/KdVhkgcmHIboA0xPFqFCgQ 1.NRF52832 & NRF52840 BLE mesh 协议栈 ...
- 全面理解 ASP.NET Core 依赖注入 (转载)
DI在.NET Core里面被提到了一个非常重要的位置, 这篇文章主要再给大家普及一下关于依赖注入的概念,身边有工作六七年的同事还个东西搞不清楚.另外再介绍一下.NET Core的DI实现以及对实例 ...
- 用JavaScript编写简单斗地主效果Es6
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 分布式消息通信ActiveMQ
消息中间件 消息中间件是指利用高效可靠的消息传递机制进行平台无关的数据交流,并且基于数据通信来进行分布式系统的集成.通过提供消息传递和消息排队模型,可以在分布式架构下扩展进程之间的通信. 消息中间件能 ...