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

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

## 课堂内容总结html

  • 数组
    • 遍历数组:
      • for(...,arr)
      • for(i=0;i<arr.length;i++)
      • for(i=arr.lengthl;i>0;i++) arr[i-1]
    • 递归java

      学习内容总结

  • 网络
    • 局域网:LAN
    • 广域网:WAN
  • 协议
    • 应用层协议
      • 超文本传输协议:HTTP
        • 是一种请求响应协议
        • 默认80号端口上的TCP
        • HTTP请求包括三个部分
          git

          • 第一部分具体以下:
            算法

            • 其中请求方法有如下七种:
          • URL:互联网资源的惟一地址->java.net.URL类
            • URL构造方法:
              vim

            • URL实例调用openStream()打开一个URL流==URLConnection的getInputStream()
            • 构造一个URLConnection实例:openConnection()
        • HTTP请求包括三个部分
          数组

      • FIP
      • telnet
    • 传输层协议
      • TCP
      • UDP
    • 网络层
      • "街道地址":IP(端口是网络系统中地址的最小单位)
        ## 学习过程当中的问题
  • 问题一:HTTP请求的7种方法GET,POST,HEAD,OPTIONS,PUT,DELETE,TRACE之间有什么不一样?其具体含义是什么?
  • 解决:通过查阅资料,发现一共有八中请求方法,除了上述7种,还有CONNECTION。他们的差异以下:
  1. GET方法:它本质就是发送一个请求来取得服务器上的某一资源。
    1. 资源经过一组HTTP头和呈现数据(如HTML文本,或者图片或者视频等)返回给客户端。
    2. GET请求中,永远不会包含呈现数据。
    3. eg:GET /C/9/5/1_kfanning.jpg HTTP/1.1
  2. POST方法:向URL指定的资源提交数据或附加新的数据。
    1. 通常来讲,提交表单数据都用POST方法。
    2. GET 与 POST的区别以下:
    3. (GET 与 POST的区别)
  3. PUT方法:向服务器提交数据。

PUT方法请求服务器去把请求里的实体存储在请求URI(Request-URI)标识下。若是请求URI(Request-URI)指定的的资源已经在源服务器上存在,那么此请求里的实体应该被看成是源服务器关于此URI所指定资源实体的最新修改版本。若是请求RI(Request-URI)指定的资源不存在,而且此URI被用户代理定义为一个新资源,那么源服务器就应该根据请求里的实体建立一个此URI所标识下的资源。缓存

若是一个新的资源被建立了,源服务器必须能向用户代理(useragent)发送201(已建立)响应。若是已存在的资源被改变了,那么源服务器应该发送200(Ok)或者204(无内容)响应。若是资源不能根据请求URI建立或者改变,一个合适的错误响应应该给出以反应问题的性质。服务器

实体的接收者不能忽略任何它不理解和不能实现的Content-* (如:Content-Range)头域,而且必须返回501(没有被实现)响应。若是请求穿过一个缓存(cache),而且此请求URI(Request-URI)指示了一个或多个当前缓存的实体,那么这些实体应该被看做是旧的。PUT方法的响应是不可缓存的网络

  1. HEAD方法:只请求页面的首部。
  2. DELETE方法:删除服务器上的某资源。
  3. OPTIONS方法:用于获取当前URL所支持的方法。
    1. 若是请求成功,会有一个Allow的头包含相似“GET,POST”这样的信息。
  4. TRACE方法:被用于激发一个远程的,应用层的请求消息回路。
  5. CONNECT方法:把请求链接转换到透明的TCP/IP通道。
  • 问题二:网关和代理的区别是什么?
  • 解决:网关能够进行协议转换,而代理不能,只是起代理的做用,好比缓存服务器其实就是一个代理。
  • 问题三:PUT和POST的区别是什么?
  • 解决: 查询资料,总结以下:
  1. PUT指定了资源在服务器上的位置,而POST没有。
  2. POST方法和PUT方法请求最根本的区别是请求URI(Request-URI)的含义不一样。
    1. POST请求里的URI 指示一个能处理请求实体的资源。此资源多是一个数据接收过程,一个网关,或者一个单独接收注释的实体。
    2. PUT方法请求里的URI标识请求里封装的实体一一用户代理知道URI意指什么,而且服务器不能把此请求应用于其它资源(resource)。PUT方法请求里的实体头域应该被用于资源的建立或修改。学习

      代码调试中的问题

  • 问题一: URLConnectionDemo1.java中的下面这两行代码时什么意思?
Map<String, List<String>> headers = urlConnection.getHeaderFields();
Set<Map.Entry<String, List<String>>> entrySet = headers.entrySet();
  • 解决:
    • 查询了Map的API,以下图所示:K是“此映射所维护的键的类型”,上段代码中键类型为String,V是“映射值的类型”,这里是一个String类型的链表。getHeaderFields用于读取此URL引用的资源。

    • Set是一个不包含重复元素的 collection。其成员类型为Map.Entry<String, List<String>>Map.Entry其中是映射项(键-值对)。截图以下:

    • 查询entrySet方法:它返回此映射中包含的映射关系的 Set 视图。

      代码托管

上周考试错题总结

目前暂不知道试题的具体答案。

结对及互评

这周我对搭档的帮助是和她一块儿分析电子版教材中网络方面的代码,解决咱们不明白的模块并督促双方学习。

评分标准

  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分

点评模板:

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

  • 参考示例

    点评过的同窗博客和代码

  • 本周结对学习状况
    • 20155333
    • 结对照片
    • 结对学习内容
      • 15章
  • 上周博客互评状况

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 4/0 1/3 28/80 下载了JDK和GIT
第二周 61/4 1/4 20/108 在unbuntu中熟练编写程序,熟练进行文件、目录等操做
第三周 684/65 1/5 27/108 初步配置vim方便使用,会本身解决一些代码问题
第四周 1238/749 1/6 23/135 大部分本身补全的代码片断不会出现问题,渐渐具有脱离书本编代码的能力
第五周 627/1987 1/7 20/158 可以帮助其余同窗发现代码出错的缘由
第六周 414/2614 1/8 24/178 可以整理出教材中各类类、接口、方法之间的相互关系,理清知识脉络
第七周 564/3028 2/9 17/202 借室友的书进行学习,因此学习时更加注重理解和记忆
第八周 280/3592 1/11 20/219 借室友的书进行学习,因此学习时更加注重理解和记忆
第九周 300/3872 2/12 20/239 借室友的书进行学习,因此学习时更加注重理解和记忆
第十周 899/4172 1/14 18/259 对Java在网络上的应用有了更多了解

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

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

参考资料

相关文章
相关标签/搜索