20145337马月

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

20145337 《Java程序设计》第五周学习总结

教材学习内容总结

第八章

  • JAVA中的所有错误都会被包装成对象,如果你愿意,可以尝试执行并捕捉代表错误的对象后做一些处理。使用了trycatch语法,JVM会尝试执行try区块中的程序代码,如果发生错误,执行流程会跳离错误发生点,然后比对catch括号中声明的类型。是否符合被抛出的错误对象类型,如果是的话,就执行catch区块中的程序代码。
  • 错误会被包装为对象,这些对象都是可抛出的,因此设计错误对象都继承自java.lang.Throwable类,Throwable定义了取得错误信息、堆栈追踪等方法,它有两个子类:java.lang.Errorjava.lang.Exception
  • Error与其子类实例代表严重系统错误,例如硬件层面错误、JVM错误或内存不足等问题。虽然也可以使用try、catch来处理Error对象,但并不建议,发生严重系统错误时,JAVA应用程序本身是无力处理的。
  • 如果抛出了Throwable对象,而程序中没有任何catch捕捉到错误对象,最后由JVM捕捉到的话,那JVM基本处理就是显示错误对象包装的信息并中断程序。
  • 操作对象的过程中如果会抛出受检异常,但目前环境信息不足以处理异常,所以无法使用try、catch处理时,可由方法的客户端依据当时调用的环境信息进行处理。为了告诉编译程序这个事实,必须使用throws声明此方法会抛出的异常类型或父类,编译程序才会让你通过编译。
  • 无论try区块中有无发生异常,若撰写有finally区块,则finaly区块一定会被执行完后,再将值返回。

第九章

  • 收集对象的行为,像是新增对象的add()方法、移除对象的remove()方法等,都是定义在java.util.Collection中。既然可以收集对象,也要能逐一取得对象,这就是java.util.Iterator操作对象,可以让你逐一取得收集的对象。
  • 数组在内存中会是连续的线性空间,根据索引随机存取时速度快,如果操作上有这类需求时,像是排序,就可以Arraylist,可得到较好的速度表现。
  • LinkedList在操作List接口时,采用了链式结构,不会事先耗费内存,想要指定随机存取对象时,会比较没有效率,链接的每个元素会参考下一个元素,这有利于调整索引顺序。
  • 一般常用Properties的setProperty()指定字符串类型的键值,getProperty()指定字符串类型的键,取回字符串类型的值,通常称为属性名称与属性值。

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

  • 代码一
    package cc.openhome;
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.util.Scanner;
    
    public class FileUtil2 {
    public static String readFile(String name) throws FileNotFoundException {
    StringBuilder text = new StringBuilder();
    try(Scanner console = new Scanner(new FileInputStream(name))) {
    while (console.hasNext()) {
    text.append(console.nextLine())
       .append('\n');
    }
    } 
    return text.toString();
    }
    }

- 代码二
    package cc.openhome;
    public class FinallyDemo {
    public static void main(String[] args) {
    System.out.println(test(true));
    }
    
    static int test(boolean flag) {
    try {
    if(flag) {
    return 1;
    }
    } finally {
    System.out.println("finally...");
    }
    return 0;
    }
    }

本周代码托管截图


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

这周因为把任务堆到了周末,所以比较赶,看不懂的代码没来得及问。希望好好利用假期把不懂的地方梳理一下。对于现阶段的我来说,对代码的熟悉还是不够,会尽快掌握,努力跟上大家的进度。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20 了解JAVA环境
第二周 300/500 2/4 18/38 编写HelloWorld
第三周 500/1000 3/7 22/60 了解类、封装
第四周 300/1300 2/9 30/90 继承与多态
第五周 200/1300 2/9 30/90 了解异常处理

参考资料

posted on 2016-04-03 23:38  20145337马月  阅读(109)  评论(1编辑  收藏  举报