zoukankan      html  css  js  c++  java
  • java第五周学习总结

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

    教材学习内容总结

    使用try 、catch

    使用try、catch: Java中所有错误都会被包装成对象,可以尝试(try)执行程序并捕捉(catch)代表错误的对象后做一些处理。使用了try、catch语法,JVM会尝试执行try区块中的程序代码,如果发生错误,执行程序会跳离错误发生点,然后比对catch括号中声明的类型,是否符合被抛出的错误对象类型,如果是就执行catch中的程序代码。

     

    public class Average {    

    public static  void main(String[] args){

                Scanner scanner = new Scanner(System.in);

                double sum = 0;

                int count = 0;

                int number;

                while(true){  

                   number = scanner.nextInt();

                    if(number==0){

                        break;

                    }

                    sum+=number;

                    count++;

                }

                System.out.printf("平均%.2f%n", sum/count);

            }

    }

    在进行错误的输入后,系统会进行正确的处理

    异常继承架构

    错误会被包装为对象继承自java.lang.Throwable,他有两个子类java.lang.Error与java.lang.Exception。

    单就语法与继承架构上来说,如果某个方法声明会抛出Throwable或子类实例,只要不是属于Error或java.lang.RuntimeException或其子类实例,就必须明确使用try、catch语法加以处理,或者在方法中用throws声明这个方法会抛出异常,否则会编译失败,throws的使用也提高了代码的安全性。

    若某个方法声明会抛出Thorwable或子类实例,只要不是属于Error或java.lang.RuntimeException,就必须明确使用try、catch语法加一处理,或者在方法中使用throws声明这个方法会抛出异常,否则编译失败

    若想得知异常发生的根源,以及多重方法调用下异常的堆栈传播,可以利用异常对象自动收集的堆栈追踪来取得相关信息,例如调用异常对象的printStackTrace()、getStackTrace()等方法。要善于堆栈追踪,前提是程序代码中不可有私吞异常的行为、对异常做了不适当的处理,或显示了不正确信息。在使用throw重抛异常时,异常的追踪堆栈起点,仍是异常的发生根源,而不是重抛异常的地方。如果想要让异常堆栈起点为重抛异常的地方,可以使用fillInStackTrace(),这个方法会重新装填异常堆栈,将起点设为重抛异常的地方,并返回Throwable对象。

    要抓还是要抛

    编译时被检测异常 :该异常在编译时,如果没有处理(没有抛也没有try),编译失败。该异常被表示,代表可以被处理。 •运行时异常(编译时不检测):在编译时,不需要处理,编译器不检查。该异常的发生,建议不处理,让程序停止,需要对代码进行修正。

     

    import java.io.*;
    import java.util.Scanner;
    public class FileUtil{
        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(' ');
                }
            }catch(FileNotFoundException ex){
                ex.printStackTrace();
                throw ex;
            }
            return text.toString();
        }
    }

     

    认识堆栈追踪

    在多重方法调用下,异常发生点可能是在某个方法之中,若想得知异常发生的根源,以及多重方法调用下异常的堆栈传播,可以使用堆栈追踪来取得相关信息。使用方法是直接调用异常对象的printStackTrace()。堆栈追踪信息中显示了异常类型,最顶层是异常的根源,以下是调用方法的顺序,程序代码行数是对应于当初的程序原始码,如果想要取得个别的堆栈追踪元素进行处理,则可以使用getStackTrace(),在捕捉异常后什么都不做的话或者做了不适当的处理,这种程序代码会对应用程序维护造成严重伤害。在使用throws重抛异常时,异常的追踪堆栈起点,仍是异常的发生根源,而不是重抛异常的地方。如果想要让异常堆栈起点为重抛异常的地方,可以使用fillInStackTrace()方法,这个方法会重新装填异常堆栈,将起点设为重抛异常的地方,并返回Throwable对象。

    认识Collection架构

    JavaSE中提供了满足各种需求的API,收集对象的行为,都定义在java.collection中,既能收集对象也能驱逐对象。收集对象的行为,像是新增对象的add()方法、移除对象的remove()方法等,都是定义在java.util.Collection中。既然可以收集对象,也要能逐一取得对象,这就是java.lang.Iterable定义的行为,它定义了iterable()方法返回java.util.Iterator操作对象,可以让你逐一取得收集的对象。Collection接口中有三个子接口,分别是List、Set和Queue。如果希望收集时记录记录每个对象的索引顺序,并可依索引取回对象,可以使用java.util.List接口,如果希望收集的对象不重复,具有集合的行为,可以使用java.util.Set接口,如果希望收集对象时以队列方式,收集的对象假如至尾端,取得对象时从前端,则可以使用java.util.Queue接口,如果希望对Queue的两端进行加入、移除等操作,则可以使用java.util.Deque。

    具有索引的List

    List是一种Collection,作用是收集对象,并以索引方式保留收集的对象顺序,其操作之一是java.util.ArrayList。 ArrayList特性:数组在内存中会是连续的线性空间,根据索引随机存取时速度快。有可指定容量的构造函数。 LinkedList特性:若收集的对象经常会有变动索引的情况。

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

    本周学习的是第8,9章的知识点,学习了如何对代码进行异常的处理,平时编代码都会有一些小问题,通过同学和书本的讲解都可以得到讲解,通过学习本章的知识,我对处理错误异常的代码的能力又提高了许多,今后在遇见错误的带码时我也可以进行即使正确的处理。

    下图是我的代码托管:

     

    学习进度条

     代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
    目标 5000行 30篇 400小时  
    第一周 150/150 1/1 15/15  
    第二周 150/400 1/2 15/30  
    第三周 150/550 1/3 20/50  
    第四周 150/700 1/4 16/56  
    第五周 150/850 1/5 19/65

    参考资料

  • 相关阅读:
    简单的实现了利用plist进行大图分割小图
    windows 10升级后系统盘清理
    在window下用编译lua源文件生成lua程序
    window下ip切换
    springMVC对简单对象、Set、List、Map的数据绑定和常见问题.
    MIME类型大全
    Apache poi 固定Excel 表格导入数据库方法(列名对应数据库字段名)
    java 通过Apache poi导出excel代码demo实例
    mySQL 开启事件存储过程
    Mysql 变量讲解
  • 原文地址:https://www.cnblogs.com/20145336yang/p/5350668.html
Copyright © 2011-2022 走看看