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

学习目标

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

学习资源

教材学习内容总结

1.计算机网络基础

  • 在计算机网络中,如今命名IP地址的规定是IPv4协议,该协议规定每一个IP地址由4个0-255之间的数字组成,例如10.0.120.34。每一个计算机在联网之后都拥有一个惟一的合法IP地址。
  • 一个IP地址能够对应多个域名,一个域名只能对应一个IP地址。
  • 有了IP地址和端口的概念之后,在进行网络通信交换时,就能够经过IP地址查找到该台计算机,而后经过端口标识这台计算机上的一个惟一的程序。这样就能够进行网络数据的交换了。

2.Java Socket编程

  • 搭建服务器端
    • 建立ServerSocket对象绑定监听端口
    • 经过accept()方法监听客户端的请求。
    • 创建链接后,经过输入输出流读取客户端发送的请求信息。
    • 经过输出流向客户端发送请求信息。
    • 关闭相关资源。
  • 搭建客户器端
    • 建立Socket对象,指明须要链接的服务器的地址和端口。
    • 创建链接后,经过输出流向服务器发送请求信息。
    • 经过输入流获取服务器的响应信息。
    • 关闭响应资源

3.混合密码系统

将对称密码和公钥密码结合起来的密码方式称为混合密码系统。html

  • 对称密码(symmetric cryptography)是指在加密和解密时使用同一密钥的方式。
  • 公钥密码(public-key cryptography)则是指在加密和解密时使用不一样密钥的方式,公钥密码又称为非对称密码(asymmetric cryptography)。

4.Java 密码技术相关API

Java Security API提供了可互操做的算法和安全服务的实现。服务以provider的形式实现,能够以插件的形式植入应用程序中。程序员能够透明地使用这些服务,如此使得程序员能够集中精力在如何把安全组件集成到本身的应用程序中,而不是去实现这些安全功能。此外,除了Java提供的安全服务外,用户能够编写自定义的security provider,按需扩展Java的security平台。java

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

  • 问题1:掌握Java Socket编程与Java传统变成有什么区别?
  • 解决1:
    • Java Socket 可实现客户端--服务器间的双向实时通讯。
    • 传统的编程通常只有服务器到客户端的单向通讯。- Java Socket编程更适合现代的通信须要,使用Socket能实现客户端的反馈与服务器的随时更新。**

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

课堂上老师让咱们用递归的方式比较数组中的数。以前使用递归函数定义的是单个变量,但老师要求的定义是数组。一开始,老是不知道怎么敲代码,编译了好几回都有错。也尝试过用一个新的变量代替数组中没一个数,但效果仍是很差。最后依旧将形参定义为单个数组才完成要求。
其余的关于密码学的代码按照教程运行,没有明显的问题。git

代码托管

  • 用statistics脚本查看代码行数
    程序员

  • 代码提交结果
    算法

上周考试错题总结

本周考试的内容是第二次实验和数据库创建,暂时没有答案,还要继续学习数据库的知识。数据库

结对及互评

评分标准(满分10分)

  1. 从0分加到10分为止
  2. 正确使用Markdown语法(加1分):
    • 不使用Markdown不加分
    • 有语法错误的不加分(连接打不开,表格不对,列表不正确...)
    • 排版混乱的不加分
  3. 模板中的要素齐全(加1分)
    • 缺乏“教材学习中的问题和解决过程”的不加分
    • 缺乏“代码调试中的问题和解决过程”的不加分
    • 代码托管不能打开的不加分
    • 缺乏“结对及互评”的不能打开的不加分
    • 缺乏“上周考试错题总结”的不能加分
    • 缺乏“进度条”的不能加分
    • 缺乏“参考资料”的不能加分
  4. 教材学习中的问题和解决过程, 一个问题加1分数组

  5. 代码调试中的问题和解决过程, 一个问题加1分安全

  6. 本周有效代码超过300分行的(加2分)
  • 一周提交次数少于20次的不加分

6 其余加分:

  • 周五前发博客的加1分
    - 感想,体会不假大空的加1分
    - 排版精美的加一分
    - 进度条中记录学习时间与改进状况的加1分
    - 有动手写新代码的加1分
    - 课后选择题有验证的加1分
    - 代码Commit Message规范的加1分
    - 错题学习深刻的加1分
    - 点评认真,能指出博客和代码中的问题的加1分
    - 结对学习状况真实可信的加1分
    7 扣分:
    - 有抄袭的扣至0分
    - 代码做弊的扣至0分

点评模板:

  • 博客中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 代码中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 基于评分标准,我给本博客打分:XX分。得分状况以下:xxx

  • 参考示例

    点评过的同窗博客和代码

  • 20155304

  • 20155301
  • 20155219
  • 20155220
  • 20155336

体会

本周学习Java以及计算机网络基础和密码学的相关知识。这周的学习让我充分了解到学科融合的重要性。学习历来不仅是一个学科的事,还要作到学以至用。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 20/20 1/1 10/10 安装了JDK、IDEA和Git,写了第一个Java程序
第二周 97/117 2/3 20/30 用Linux上传代码,熟悉修改文件的命令行
第三周 336/453 2/4 35/65 在Linux上安装JDK和IDEA,更熟悉vi的操做指令以及修改时须要注意的地方。
第四周 851/1304 1/5 25/90 学习用JDB调试程序
第五周 834/2138 1/7 32/122 能本身设计简单的程序,遇到问题也基本上能经过前面的学习和查资料解决,还有问题没有获得解决。
第六周 573/2711 1/8 15/137 理解课本中的内容并本身把以前的代码加以改正,更理解程序的做用,继续学习用JDB调试程序
第七周 400/3111 2/10 20/157 用IDEA编辑并调试程序,设置断点,完成了实验一
第八周 403/3511 1/11 20/177 熟悉通用API,深刻学习代码并测试代码
第九周 1500/5011 2/13 20/217 了解了JDBC,章、第十七章和第十八章的内容,并检查之前的代码。共同窗习实验二的内容,学习使用StarUML,用单元测试测试代码
第10周 1627/6638 1/14 20/237 使用递归和数组的方式使用命令行参数,学习Java以及计算机网络基础和密码学的相关知识
  • 计划学习时间:25小时
  • 实际学习时间:20小时

参考资料

相关文章
相关标签/搜索