学习目标

  • 了解计算机网络基础
  • 掌握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.混合密码系统

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

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

4.Java 密码技术相关API

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

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

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

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

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

代码托管

  • 用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小时

参考资料

20155315 2016-2017-2 《Java程序设计》第十周学习总结的更多相关文章

  1. 201521123027 <java程序设计>第十周学习总结

    1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 异常: 多线程: 2.书面作业 Q1.finally 题目4-2 1.1 截图你的提交结果(出现学号) 1.2 ...

  2. Java程序设计第十周学习总结

    Java课程知识梳理: 流的区分; 字符流与字节流的区别: 字节流是直接操作文件本身的,如果没有关闭字节流操作,文件会依然输出内容 而字符流在程序运行之后会发现文件没有任何的内容,这是因为字符流操作的 ...

  3. 20155336 2016-2017-2《JAVA程序设计》第九周学习总结

    20155336 2016-2017-2<JAVA程序设计>第九周学习总结 教材学习内容总结 第十六章 JDBC(Java DataBase Connectivity)即java数据库连接 ...

  4. 20155201 2016-2017-2 《Java程序设计》第九周学习总结

    20155201 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC全名JavaDataBaseConnecticity,是Jav ...

  5. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  6. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

  7. 20145236 《Java程序设计》第九周学习总结

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  8. 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结

    20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...

  9. 20145237 《Java程序设计》第九周学习总结

    20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...

  10. 学号 20175212 《Java程序设计》第九周学习总结

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

随机推荐

  1. iStat Menus 的激活密

    Email: @qq.com SN: GAWAE-FCWQ3-P8NYB-C7GF7-NEDRT-Q5DTB-MFZG6-6NEQC-CRMUD-8MZ2K-66SRB-SU8EW-EDLZ9-TGH ...

  2. 美团2018年CodeM大赛-初赛B轮 B 配送(最短路)

    美团2018年CodeM大赛-初赛B轮 B 配送 题意 题解 对于每个任务,只要从上个任务的终点出发即可. 时间.地点很少,可以算出每个地点-时间的最小花费. 以题目描述的起点终点起始结束时间建图,很 ...

  3. Linux性能监控(程序篇)

    性能数据的监控,除了针对整机进行外,还要求我们对某一运行的程序单独进行.常用的程序监控命令有ps和top. Ps ps命令最常用的还是用于监控后台进程的工作情况,因为后台进程是不和屏幕键盘这些标准输入 ...

  4. 【RabbitMQ】1、安装

    1.  下载 下载地址:http://www.rabbitmq.com/download.html 2.  windows下安装 2.1. 安装Erlang 下载:http://www.erlang. ...

  5. 「CF1025D Recovering BST」

    题目 郑州讲过的题了 发现这是一个二叉搜索树,给出的还是中序遍历,我们很自然的想到我们需要可以用一个\(f[i][j][k](k\in[i,j])\)来表示区间\([i,j]\)能不能形成以\(k\) ...

  6. 【[HNOI2015]亚瑟王】

    神仙题,抄题解 用\(tp_i\)表示\(i\)这个技能在\(r\)轮中被使用过的概率 于是最后的答案就是\(\sum_{i=1}^nd_i*tp_i\) 首先\(tp_1=1-(1-p_1)^r\) ...

  7. webpack中使用babel处理es6语法

    index.js const arr = [ new Promise(()=>{}), new Promise(()=>{}) ]; arr.map(item => { consol ...

  8. Hadoop学习之路(十八)MapReduce框架Combiner分区

    对combiner的理解 combiner其实属于优化方案,由于带宽限制,应该尽量map和reduce之间的数据传输数量.它在Map端把同一个key的键值对合并在一起并计算,计算规则与reduce一致 ...

  9. 【jQuery】结合accordion插件分析写插件的方法及注意事项

    1.jQuery插件的命名方式:jquery.[插件名].js 2.对象方法附加在jQuery.fn上,全局函数附加在jQuery对象本身上 3.插件内部this指向的是通过选择器获取的jQuery对 ...

  10. Jmeter--常见问题及解决办法

    此文转自微信公众号:自动化性能测试 JMeter常见问题及解决方法 一.录制不到以html结尾的请求 在使用代理服务器录制脚本的时候,可能会出现html结尾的请求录制不到的问题.这是因为浏览器为了提升 ...