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

教材学习内容总结

第十章

  • stream:串流。抽象化输入/输出概念。将数据从来源取出,使用输入串流;将数据写入目的地,使用输出串流。输入串流代表对象为Java.io.InputStream实例,输出串流代表对象为Java.io.OutputStream实例。
  • 在不使用InputStream和OutputStream,close()关闭串流。
  • Java.net.URL的使用:只要指定网址,URL实例就会自动进行HTTP协议。
  • 串流继承架构:标准输入输出,等
  • 串流处理装饰器:使用打包器类,为输入输出数据做加工处理。
  • 字符处理类

第十一章

  • 多线程程序,Multi-thread.
  • 在Java中,如果想在main()之外独立设计流程,可以撰写类操作java.lang.Runnable接口。流程的进入点是操作在run()方法中。
  • 在Java中,main()开始的流程会由主线程(Main Thread)执行。其他方法定义的流程可以创建thread实例来执行。
  • daemon线程,Thread基本状态图,安插线程,停止线程。
  • 每个线程都属于某个线程群组(threadgroup)。
  • 等待与通知。

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

第十章

  • 问题1:打包器类的作用包括哪些?

  • 问题1解答:

      * 打包器类:为输入/输出的数据做加工处理
    * BufferedInputStream/BufferedOutputStream:具备缓冲区作用
    * DataInputStream/DataOutputStream:具备数据转换处理
    * ObjectInputStream/ObjectOutputStream:具备对象串行化能力
    * 以上类又称为装饰器(Decorator)。

第十一章

  • 问题2:如何区别线程的多种状态?
  • 问题2解答:
  1. 新建状态(New):新创建了一个线程对象。
  2. 就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。
  3. 运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。
  4. 阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态。阻塞的情况分三种:

    (一)、等待阻塞:运行的线程执行wait()方法,JVM会把该线程放入等待池中。

    (二)、同步阻塞:运行的线程在获取对象的同步锁时,若该同步锁被别的线程占用,则JVM会把该线程放入锁池中。

    (三)、其他阻塞:运行的线程执行sleep()或join()方法,或者发出了I/O请求时,JVM会把该线程置为阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。
  5. 死亡状态(Dead):线程执行完了或者因异常退出了run()方法,该线程结束生命周期。

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

  • 问题1:在第十一章的龟兔赛跑代码中,我不停地出现编译错误:

  • 问题1解决方案:在这个程序中,主线程执行main()定义的线程,main()定义的流程中建立了两个线程,这两个线程会分别执行tortoise()和hare()的run()定义的流程,要启动线程执行这两个流程,必须调用start()方法。而我在照着书上的程序打的时候,忽略了我的文件名和书上的不同。所以导致找不到定义的流程,所以才会报错。

代码托管

上周考试错题总结

  • 1.输入"cd"命令并按回车键后,将会出现什么情况?

    答案:从当前目录切换到用户主目录。

    错选为切换到上一级目录,cd 等价于cd ~,也就是cd /home/userXXX
  • 3.现有:
    1.import java.util.*;
2.
3.Class FindStuff {
4.public static void main (String[]args) {
5, //insert code here
6. c.put ("X", 123);
7. }
8. }
分别插入到第5行,哪几行允许代码编译?

答案:

B .

HashMap c= new HashMap();

D .

SortedMap c= new TreeMap();

F .

Map c = new LinkedHashMap();

我只选了BD,没选F

  • 13.Which of the following methods will not compile?

    答案:B .
private void method2(int age) {
if (age > 30)
throw Exception();
}

D .

protected double method4() throws Exception {
throw new Throwable();
}

题目意思是下面哪个选项无法编译,throw new exception属于逻辑错误抛出异常;throws exception是代码层面的异常,比如将一个对一个null的对象做取值操作,注意是throws,不是throw.

  • 15.现有:
 1.  class Propeller2  {
2. pulolic static void main (String[]args)//add code here?
3. { new Propeller2().topGo(); }
4.
5.void topGo() //add code here?
6. { middleGo(); }
7.
8.void middleGo() //add code here?
9. { go(); System.out.println ("late middle"); }
10.
11. void go() //add code here?
12. {throw new Exception(); }
13. }

为使代码通过编译,需要在哪一行加入声明throws Exception?

答案:在第2行、第5行、第8行和第11行.

*我选择了C,只有在第5行、第8行和第11行,忽略了第2行。

补充:

1、是throws Exception 表示的是本方法不处理异常,交给被调用处处理 ,而且被调用处必须处理

2、是throw Exception 表示人为的抛出一个异常,例如:

public boolean insert(News n) {
try{
.....
}catch{
throw new Exception("这是我自己抛出的一个异常, 如 果我看到此段信息表示我这个方法这儿出 错了,给自己看的!");
}finally{
}
}
  • 25.关于try...catch...finally结构,描述正确的是哪些?

    答案:A .

    可以有多个catch。C .可以没有catch。

    try-catch-finally结构中try块是必须有的,catch和finally块为可选,但两者至少必须出现其中之一。

  • 29.现有:

1.  class  Test4  {
2. public static void main (String [] args) {
3. boolean x=true;
4. boolean y=false;
5. short z=42;
6.
7. if((z++==42) && (y=true))z++;
8.if((x=false) || (++z==45)) z++;
9.
10. System. out.println(¨z=”+z);
II. }
12. }

结果为:z=46。运行结果如下图:

结对及互评

评分标准

  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

  • 参考示例

点评过的同学博客和代码

  • 本周结对学习情况

    • 20155232

    • 结对照片:

    • 结对学习内容

      • 一起讨论课本代码,共同解决代码编译报错问题。
      • 前几周考试留下来的部分没有解决的试题。
      • 一起看JAVA教学视频。
      • 讨论知识点,交换学习体会和学习难点。
  • 上周博客互评情况

其他(感悟、思考等,可选)

上周我考试成绩很不好,只有3分,结果这周因为云班课的原因所有人都有5分,但是我知道如果凭我自己的能力,是考不到5分的,希望在接下来的学习中我能有所进步,努力凭我自己的能力考到5分。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第四周 300/500 2/4 18/38
第五周 515/1396 3/7 22/60
第六周 845/2012 1/9 24/30
  • 计划学习时间:24小时

  • 实际学习时间:30小时

  • 改进情况:最近两周一直保持在相近的学习时间,没有增加,希望自己下周能有所进步。

参考资料

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

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

    20155306 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 16.1 JDBC入门 Java语言访问数据库的一种规范,是一套API ...

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

    20155236 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC入门 1.JDBC简介 JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标 ...

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

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

  4. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

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

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

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

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

  7. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

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

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  9. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  10. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

随机推荐

  1. Linux常用基本命令大全

    1 一般情况下,自己安装linux系统都会选择简易版,这里面少很多命令,所以需要安装其他的包        yum install openssh-clients   安装scp的软件包 2 把当前一 ...

  2. nginx+lvs+keepalived安装

    安装nginx 配置文件和之前的一样 user nobody nobody;    #定义Nginx运行的用户和用户组 worker_processes 4;    #nginx进程数,建议设置为等于 ...

  3. EDM邮件营销激活不活跃客户群的五大策略

    有很多朋友给U-Mail马工大倒苦水:我邮件群发做了大量工作,可是有一些潜在消费者却始终无动于衷,你要说他没什么用吧,可是明明显示他有打开过,你把这个地址排除出去又有点可惜了,你要说他不可或缺,可是他 ...

  4. 翻译-QPKG开发工具快速开始指南

    QPKG开发工具快速开始指南 指导你编译你自己的QPKG软件包 目录 什么是QDK 下载QDK 安装QDK 编译你自己的QPKG软件包 搭建QPKG编译环境 配置QPKG 定制QPKG程序 向QPKG ...

  5. Android Studio 动态调试 apk 反编译出的 smali 代码

    在信安大赛的准备过程中,主要通过 Android Studio 动态调试 apk 反编译出来的 smali 代码的方式来对我们分析的执行流程进行验证.该技巧的主要流程在此记录.以下过程使用 Andro ...

  6. python反序列化

    import pickle import os class A(object): def __reduce__(self): a = """python -c 'impo ...

  7. mixup: Beyond Empirical Risk Minimization

    这篇论文MIT和FAIR的工作,主要是提出了一种mixup的方式.(感觉是一种产生hard sample的方法,是一种新的.更有效的数据增强.) 1 Introduction 大网络需要大数据,目前C ...

  8. HDU 1142 A Walk Through the Forest(最短路+记忆化搜索)

    A Walk Through the Forest Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Jav ...

  9. initUrl方法

    private String initUrl(String preurl,String taskurl) { if(JavaUtil.match(taskurl, "/[a-z]+$&quo ...

  10. Angular动态表单生成(二)

    ng-dynamic-forms源码分析 在两个开源项目中,ng-dynamic-forms的源码相较于form.io,比较简单,所以我还勉强能看懂,下面就我自己的理解进行简单分析,若有不对的地方,请 ...