首页 > 技术文章 > 20155229 2016-2017-2 《Java程序设计》第十周学习总结

fyhtvxq 2017-04-29 20:38 原文

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

教材学习内容总结

网络

  • 网络分为局域网、广域网、城域网

  • 一次HTTP请求包含3个部分:①方法--统一资源标识符--协议/版本
    ② 请求头
    ③ 请求实体

  • HTTP包含3个部分:①协议--状态码--说明;②响应头;③响应实体。

  • HTTP是URL中最常使用的协议

  • URLConnection类有两个布尔类型的字段,doInputdoOutput,他们分别表示URLConnection是用于读还是写.

  • 每个HTTP请求都可以使用HTTP标准中指定的众多请求方法之一。HTTP/1.1支持7种类型的请求:GETPOSTHEADOPTIONSPUTDELETETRACE.GETPOST是互联网应用程序中最常使用的请求。

  • 套接字是一个网络连接的端点。使得应用程序能够从网络读取或者向网络写入信息。

  • 使用URL只能读取一个Web资源。要向服务器写内容,需要使用java.net.URLConnection对象。

Java与密码学

  • Java安全体系结构总共分为4个部分:

①JCA( Java Cryptography Architecture, Java加密体系结构):JCA提供基本的加密框架, 如证书、 数字签名、消息摘要和密钥对产生器。

②JCE( Java Cryptography Extension, Java加密扩展包):JCE在JCA的基础上作了扩展, 提供了各种加密算法、 消息摘要算法和密钥管理等功能。JCE的实现主要在javax.crypto包( 及其子包) 中

③JSSE( Java Secure Sockets Extension, Java安全套接字扩展包):JSSE提供了基于SSL( Secure Sockets Layer,安全套接字层) 的加密功能。 在网络的传输过程中, 信息会经过多个主机(很有可能其中一台就被窃听) , 最终传送给接收者, 这是不安全的。这种确保网络通信安全的服务就是由JSSE来提供的。

④JAAS( Java Authentication and Authentication Service, Java鉴别与安全服务):JAAS提供了在Java平台上进行用户身份鉴别的功能。

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

  • 问题一:22.6中使用await而没有使用wait,两者的区别为?
  • 解决:

常用的wait方法有wait()和wait(long timeout);

void wait() 在其他线程调用此对象的 notify() 方法或者 notifyAll()方法前,导致当前线程等待。

void wait(long timeout)在其他线程调用此对象的notify() 方法 或者 notifyAll()方法,或者超过指定的时间量前,导致当前线程等待。

wait()后,线程会释放掉它所占有的“锁标志”,从而使线程所在对象中的其他shnchronized数据可被别的线程使用。

  • 问题二:Android权限Uri.parse
  • 解决:
  • 卸载

Uri uninstallUri = Uri.fromParts("package", "xxx", null);

returnIt = new Intent(Intent.ACTION_DELETE, uninstallUri);

  • 安装

Uri installUri = Uri.fromParts("package", "xxx", null);

returnIt = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri);

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

本周暂时没有调试的问题

代码托管

上周考试错题总结

暂不知上周的错题情况

结对及互评

评分标准

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

    • 不使用Markdown不加分
    • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
    • 排版混乱的不加分
  2. 模板中的要素齐全(加1分)

    • 缺少“教材学习中的问题和解决过程”的不加分
    • 缺少“代码调试中的问题和解决过程”的不加分
    • 代码托管不能打开的不加分
    • 缺少“结对及互评”的不能打开的不加分
    • 缺少“上周考试错题总结”的不能加分
    • 缺少“进度条”的不能加分
    • 缺少“参考资料”的不能加分
  3. 教材学习中的问题和解决过程, 一个问题加1分

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

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

    • 一周提交次数少于20次的不加分
  6. 其他加分:

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

    • 有抄袭的扣至0分
    • 代码作弊的扣至0分
    • 迟交作业的扣至0分

点评过的同学博客和代码

其他

本周学习了java与android开发学习指南的网络章节和java密码学算法,因为这几周都有做密码学的实验,是用c语言编写,而这次学习是用java对密码算法进行编写,发现了两种代码的差别。在学习网络板块时,发现java涉及的范围真的很广,在那么多领域都能够运用,所以我们还要多加强对java的学习。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 15篇 400小时
第一周 9/9 1/1 20/20
第二周 162/171 1/2 25/45 学习java的基础语法
第三周 380/551 1/3 25/70 学习java对象及封装
第四周 831/1382 1/4 23/93 学习java的继承、接口与多态的运用
第五周 870/2252 1/5 20/113 学习java的异常处理和collection与map
第六周 1241/3493 1/6 22/135 学习java的输入输出、线程与Api,与搭档一起学习
第七周 429/3922 2/8 15/150 学习java的时间与日期、第一次实验
第八周 390/4312 1/9 18/168 学习java的通用API
第九周 929/5241 2/11 22/190 学习java的整合数据库、第二次实验
第十周 642/5883 1/12 22/212 学习java的密码学算法和andriod开发学习指南
  • 计划学习时间:25小时

  • 实际学习时间:22小时

  • 改进情况:本周在学习密码学算法和网络两板块花了较多时间理解代码,所以花的时间较多。

参考资料

推荐阅读