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


教材学习内容总结

  • 第十章 输入/输出

    • 字节输入类:
    1. Java将输入/输出抽象化为串流,数据有来源及目的地,衔接两者的事串流对象。从应用程序角度来看,将数据从来源取出,使用输入串流java.io.InputStream;如果将数据写入目的地,可以使用输出串流java.io.OutputStream

      。

    2. 串流继承架构

    3. ObjectInputStream提供readObject()方法将数据读入为对象,而ObjectOutputStream提供writeObject()方法将对象写至目的地。

    • 字符输入类:
    1. 针对字符数据的读取,Java SE提供了 java.io.Reader类,抽象化了字符数据读入的来源;

      针对字符数据的写入,提供了java.io.Writer类

      ,抽象化了数据写出的目的地。
    2. 就装饰器的作用而言,

      InputStreamReader将

      System.in读入的字节数据做编码转换,而BufferedReader将编码转换后的数据做缓冲处理,以增加读取效率。
  • 第十一章 线程与并行API

    • 线程
    1. 单线线程程序就是自启动的程序从main()程序进入点开始至结束只有一个流程。多线程:在同一应用程序中,有多个流程被同时执行。
    2. 线程生命周期:调用Thread实例start()方法后,基本状态为可执行(Runnable)、被阻断(Blocked)、执行中(Running)。

    • 并行API
    1. 使用Thread建立多线程程序,必须亲自处理synchronized、对象锁定、wait()、notify()、notifyAll()等细节。

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

  • 问题1:在学习死结部分时,编译运行P343 DeadLockDemo.java代码,有时发生死结,有时不发生:



  • 问题1解决方案:书上的解释是这样:发生死结的原因在于,thread1在调用resource1.corportate(resource2)时,会取得r1的锁定,若此时thread2也正好调用resource2.corportate(resource1),取得r2的锁定,凑巧thread1现在打算运用传入的r2调用doSome(),理应取得r2的锁定,但锁定现在被t2拿走了,于是t1进入阻断,而t2也打算运用传入的r1调用doSome(),理应取得r1的锁定,但锁定现在是t1取走,于是t2进入等待。
  • 问题2:之前第四章的课后题中有输出斐波那契数列的题,我自己编的代码是这样:

    没有调用函数,只是用了数组。
    int[] fb=new int[num];
fb[0]=0;
fb[1]=1;
int i=0;
for(i=0;i<num;i++){
if(i>1){
fb[i]=fb[i-1]+fb[i-2];
}
  • 问题2解决方案:书上输出斐波那契数列选择的方法是递归调用函数:
static long fibonacci(long n) {
if (n <= 1) {
return n;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}

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

  • 问题1:在编译P315代码时,出现了问题:

  • 问题1解决方案:发现书上省略了定义get、set的方法,补全代码如下

public String getNumber() {
return number;
} public void setNumber(String number) {
this.number = number;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
}

编译通过。

代码托管

上周考试错题总结

  • 现有:

    1. import java.util.*;

      2.
    2. Class FindStuff {

      4.public static void main (String[]args) {

      5, //insert code here

      6. c.put ("X", 123);

      7. }
    3. }

分别插入到第5行,哪几行允许代码编译?

A .Map c= new SortedMap();

B .HashMap c= new HashMap();

C .HashMap c= new Hashtable();

D .SortedMap c= new TreeMap();

E .ArrayList c= new ArrayList();

F . Map c = new LinkedHashMap();

答案:BDF


结对及互评

  • 结对:

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

    1. 正确使用Markdown语法:加1分
    2. 模板中的要素齐全:加1分
    3. 代码调试中的问题和解决过程:加1分
    4. 感想,体会不假大空:加1分
    5. 排版精美:加1分
    6. 进度条中记录学习时间与改进情况:加1分
    7. 错题学习深入:加1分

    博客中值得学习的或问题:参考搭档的教材内容总结,对前两章的学习又有了新的理解。

    代码中值得学习的或问题:对照搭档的问题,我修改了自己的代码,程序成功编译。

  • 小组:

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

    1. 正确使用Markdown语法:加1分
    2. 教材学习中的问题和解决过程,:加1分
    3. 代码调试中的问题和解决过程,:加2分
    4. 本周有效代码超过300分行:加2分
    5. 排版精美的加1分
    6. 进度条中记录学习时间与改进情况的加1分
    7. 有动手写新代码的加1分

    博客中值得学习的或问题:该同学的标题写错了,应该是2016-2017学期

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

    1. 错题学习深入:加1分
    2. 教材中的问题和解决过程:加2分

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

    1. 正确使用Markdown语法:加1分
    2. 模板中的要素齐全:加1分
    3. 教材学习中的问题和解决过程:加1分
    4. 本周有效代码超过300分行的:加2分
    5. 排版精美:加1分
    6. 进度条中记录学习时间与改进情况:加1分
    7. 有动手写新代码:加1分
    8. 错题学习深入:加1分

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

    1. 正确使用Markdown语法:加1分
    2. 模板中的要素齐全:加1分
    3. 教材学习中的问题和解决过程:加1分
    4. 感想,体会不假大空:加1分
    5. 排版精美:加一分
    6. 进度条中记录学习时间与改进情况:加1分
    7. 有动手写新代码:加1分
    8. 代码Commit Message规范:加1分

点评过的同学博客和代码

感悟与思考

这周正好赶上清明节放假,因为时间安排,提前两天完成任务。当然时间不够充裕,也许学习过程中有落下的部分,课后会仔细看看书。这周代码量更多了,一点一点敲确实有点繁冗枯燥,但是我相信再经过深入学习,会有一天把写代码看作跟日常吃饭睡觉一样平常。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
第六周 1761/3365 1/1 15/92
  • 计划学习时间:17小时

  • 实际学习时间:15小时

  • 改进情况:这周没达到学习目标,本来想周六仔细看看书,但是周六白天上课,只好晚上再加班。

参考资料

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

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

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

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

    20155201 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 每一章的问题: 第一章 Java ME都有哪些成功的平台? 第二章 哪些情况可以使用impo ...

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

    20155201 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 编译运行P55各种类型可储存的数值范围代码,截图: 常用格式控制符: 符号 说明 %% 表示 ...

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

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

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

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

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

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

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

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

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

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

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

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

  10. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

随机推荐

  1. 关于css伪类

    p:nth-child(2){} !选择所有p元素的第二个子元素:  p:nth-of-type(2) !选择所有p元素第二个为p的子元素(是选择第二个类型为p的元素 而不是第二个子集为p的元素)

  2. [转帖]22个必须学习的Linux安全命令

    22个必须学习的Linux安全命令 http://os.51cto.com/art/201808/581401.htm Linux系统的安全性涉及很多方面,从设置帐户到确保用户合法,限制比完成工作所需 ...

  3. [转帖].net 4.8 将不再支持win7 win8 版本

    ZT:https://blogs.msdn.microsoft.com/dotnet/2018/07/18/announcing-net-framework-4-8-early-access-buil ...

  4. [转帖]HTTPS系列干货(一):HTTPS 原理详解

    HTTPS系列干货(一):HTTPS 原理详解 https://tech.upyun.com/article/192/HTTPS%E7%B3%BB%E5%88%97%E5%B9%B2%E8%B4%A7 ...

  5. 使用flex布局调换两个按钮的位置

    组件用的时antd的Modal组件,里面的按钮需要调换一下位置 今天发现用flex布局非常方便,代码如下: display: flex; justify-content: center; flex-f ...

  6. 使用userData兼容IE6-10,chrome,FF 及360等浏览器的本地存储

    开发过程中涉及本地存储的使用,IE很多版本都不支持localStorage,没办法,就得兼容使用userData了.废话不说了,看代码: (function(window){var LS;(funct ...

  7. Java并发编程实战2-线程安全

    1. 定义 一个类是线程安全的,是指在被多个线程访问时,类可以持续进行正确的行为. 2. WHY 我们想要的是线程安全的程序,为什么在线程安全的开始讲线程安全的类呢? 编写线程安全的代码,本质上就是管 ...

  8. 对final和static的理解

    一.final (一).final的使用 final关键字可以用来修饰类.方法和变量(包括成员变量和局部变量) 1. 当用final修饰一个类时,表明这个类不能被继承.2. 当用final修饰一个方法 ...

  9. TortoiseSVN使用svn+ssh协议连接服务器时重复提示输入密码

    当使用svn+ssh协议连接svn服务器时,ssh会提示请求认证,由于不是svn客户端程序来完成ssh的认证,所以不会缓存密码. 而svn客户端通常会建立多个版本库的连接,当密码没有缓存的时候,就会重 ...

  10. MT【137】多少个?

    数列\(\{a_n\}\)共11项,\(a_1=0,a_{11}=4\),且\(|a_{k+1}-a_{k}|=2,k=1,2,\cdots,10\) 求满足条件的不同的数列的个数______ 解答: ...