zoukankan      html  css  js  c++  java
  • 20155320 2016-2017-2《Java程序设计》第十周学习总结

    20155320 2016-2017-2《Java程序设计》第十周学习总结

    教材学习内容总结

    本周学习目标

    • 了解计算机网络基础
    • 掌握Java Socket编程
    • 理解混合密码系统
    • 掌握Java 密码技术相关API的使用

    计算机网络概述

    • 计算机网络体系结构的通信协议划分为七层,自下而上依次为:物理层(Physics Layer)、数据链路层(Data Link Layer)、网络层(Network Layer)、传输层(Transport Layer)、会话层(Session Layer)、表示层(Presentation Layer)、应用层(Application Layer)。其中第四层完成数据传送服务,上面三层面向用户。
    • 两台计算机用于通信的语言叫做“协议”。我们只需关心应用层中的协议,而不必关心其他层的协议。Java中提供了类来封装应用层协议,使你无需了解协议就能向协议的服务器发送信息。
    • 一个IP地址可以对应多个域名,一个域名只能对应一个IP地址。

    超文本传输协议(HTTP)

    • 一次http请求包含三部分:方法—统一资源标识符——协议/版本、请求头、请求实体
    • 一次http响应包含三部分:协议-状态码-说明、响应头、响应实体:响应自身的HTML内容。

    java.net.URL

    • URL是互联网资源的唯一的地址,HTTP是URL中最常使用的协议但并不是唯一的。
    • 在java中,一个URL通过一个java.net.URL对象来表示
    • 可以使用URL类的OpenStream方法来读取一个Web资源。
    • 可以使用URL类的openStream方法来读取一个Web资源
    public final java.io.InputStream openStream()
    throws java.io.IOException
    

    java.net.URLConnection

    • URLConnection 实例时无法使用new创造的,要获取URLConnection实例可以在URL对象上调用openConnection
    • URLConnection类有两个布尔类型的字段:doInput和doOput,他们分别表示URLConnection是读还是写
    • 可以使用setDoInput和setDoOutput方法来设置doInput和doOput的值

    java.net.Socket

    • 套接字是一个网络链接的端点。套接字使得应用程序能够从网络读取或者向网络写入信息。
    • 一旦成功创建了Socket类的一个实例,就可以使用它发送或接收字节流。
    • 可以调用Socket类的getOutputStream方法获取一个java.io.OutputStream对象,用来发送字节流;从返回的OutputStream对象构建一个java.io.PrintWriter对象,向远程应用程序发送文本。

    java.net.ServerSocket

    • SeverSocket和Socket不同,服务器套接字的角色是,等待来自客户端连接的请求。

    JAVA与密码学

    • 我们遇到的安全问题可以归结为安全的三个属性(CIA金三角):

    机密性(Confidentiality):确保数据仅能被合法的用户访问, 即数据不能被未授权的第三方使用。

    完整性(Integrity):主要确保数据只能由授权方或以授权的方式进行修改,即数据在传输过程中不能被未授权方修改。

    可用性(Availability):主要确保所有数据仅在适当的时候可以由授权方访问。

    • 密码学包含密码编码学( Cryptography) 和密码分析学(Cryptanalyst) 两个分支

    • 密码学并不是孤立存在的, 它需要有一个环境——保密通信模型。

    Java与密码学

    • Java安全体系结构总共分为四个部分:JCA,JCE,JSSE,JAAS.
    • Java对称加密-DES算法

    对称密钥的生成和保存

    编程思路:(1) 获取密钥生成器,(2) 初始化密钥生成器,(3) 生成密钥,(4) 通过对象序列化方式将密钥保存在文件中。

    • Java非对称加密-RSA算法

    (1) 创建密钥对生成器

    (2) 初始化密钥生成器

    (3) 生成密钥对

    (4) 获取公钥和私钥

    • Java摘要算法- MD5

    (1) 生成MessageDigest对象

    (2) 传入需要计算的字符串

    (3) 计算消息摘要

    (4) 处理计算结果

    教材学习中的问题和解决过程

    • 问题1:SeverSocket和Socket的不同具体有哪些
    • 问题1解决方案:查了许多,说啥的都有,总结起来就是Socket表示一个“客户端”套接字,而ServerSocket是服务器套接字的一个实现。

    代码调试中的问题和解决过程

    代码托管

    上周考试错题总结

    • 错题1及原因,理解情况
    • 错题2及原因,理解情况
    • ...

    结对及互评

    • 20155326
    • 博客中值得学习的或问题: 教材内容总结的很认真。

    代码中值得学习的或问题:代码问题提的很好,看得出来很认真。

    基于评分标准,我给本博客打分:11分。得分情况如下:

    • 正确使用Markdown语法(加1分):

    • 模板中的要素齐全(加1分)

    • 教材学习中的问题和解决过程, (加1分)

    • 代码调试中的问题和解决过程, (加1分)

    • 本周有效代码超过300分行的(加2分)

    • 其他加分:
      感想,体会不假大空的加1分

    • 排版精美的加1分

    • 进度条中记录学习时间与改进情况的加1分

    • 代码Commit Message规范的加1分

    • 结对学习情况真实可信的加1分

    点评过的同学博客和代码

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

    由于上周数据库相关内容没有学好,本周又重温了相关内容,在网上看了老师要求的书22章的PDF版本并且在读娄老师写的博客过程中,终于领会到了java与密码学相结合,虽然第一次实验中自己编了凯撒密码相关内容,但是看了老师的博客感觉受益匪浅,感觉课程之间真的需要融会贯通呀。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 15篇 400小时
    第一周 20/20 1/4 20/20 安装了JDK及IDEA
    第二周 144/164 1/5 18/38 学习了java语言的基本语法
    第三周 447/567 1/6 20/ 58 掌握了一些有关对象和封装的内容
    第四周 875/ 1442 1/7 23/81 学习了解了继承、接口和多态的相关问题
    第五周 775/2250 1/8 25/106 学习了异常处理以及Collection与Map相关的内容
    第六周 487/ 2706 1/9 22/128 学习了输入输出
    第七周 529/3127 2/11 20/148 学习了时间与日期
    第八周 417/ 3491 1/12 20/168 学习了NIO与NIO2和通用API
    第九周 975/4548 2/13 22/190 主要学习了整合数据库
    第十周 320/5393 1/14 18/208 主要学习了22章与密码学内容

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

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

    • 计划学习时间:15小时

    • 实际学习时间:18小时

    • 改进情况:多花了一些时间学上周落下的数据库内容

    (有空多看看现代软件工程 课件
    软件工程师能力自我评价表
    )

    参考资料

  • 相关阅读:
    一些业内有名的网站收集
    WCF重载
    FCKEditor fckconfig.js配置,添加字体和大小 附:中文字体乱码问题解决
    查询第几条到第几条的数据的SQL语句
    SPOJ 9939 Eliminate the Conflict
    UVA 10534 Wavio Sequence
    HDU 3474 Necklace
    POJ 2823 Sliding Window
    UVA 437 The Tower of Babylon
    UVA 825 Walking on the Safe Side
  • 原文地址:https://www.cnblogs.com/ljq1997/p/6786162.html
Copyright © 2011-2022 走看看