重踏学习Java路上_Day19(异常,File)

1:异常(理解)

异常的图解:


    (1)异常就是Java程序在运行过程中出现的错误。
    (2)异常的体系
        Throwable
            |--Error    严重问题,我们不处理。这种问题一般都是很严重的,比如说内存溢出。
            |--Exception
                |--RuntimeException  运行期发生问题:    这种问题我们也不处理,因为是你的问题,而且这个问题出现肯定是我们的代码不够严谨,需要修正代码的。
                |--非RuntimeException 编译期异常,必须处理的,否则程序编译不通过,不是RuntimeException的异常 必须进行处理的,因为你不处理,编译就不能通过。
    (3)异常的处理:
        A:JVM的默认处理
            如何程序出现了问题,我们没有做任何处理,最终jvm会做出默认的处理,把异常的名称,原因,位置等信息输出在控制台,但是呢程序不能继续执行了,同时会结束程序。
        B:自己处理
            a:try...catch...finally
                自己编写处理代码,后面的程序可以继续执行
            b:throws
                把自己处理不了的,在方法上声明,告诉调用者,这里有问题
    (4)面试题
        A:编译期异常和运行期异常的区别?
            编译期异常 必须要处理的,否则编译不通过
            运行期异常 可以不处理,也可以处理
        B:throw和throws是的区别
            throw:
                在方法体中,后面跟的是异常对象名,并且只能是一个
                throw抛出的是一个异常对象,说明这里肯定有一个异常产生了
            throws:
                在方法声明上,后面跟的是异常的类名,可以是多个
                throws是声明方法有异常,是一种可能性,这个异常并不一定会产生
    (5)finally关键字及其面试题
        A:finally用于释放资源,它的代码永远会执行。特殊情况:在执行到finally之前jvm退出了
        B:面试题
            a:final,finally,finalize的区别?
            b:如果在catch里面有return,请问finally还执行吗?如果执行,在return前还是后
                会,前。
                
                实际上在中间。这个上课我们讲过
        C:异常处理的变形
            try...catch...finally
            try...catch...
            try...catch...catch...
            try...catch...catch...fianlly
            try...finally
    (6)自定义异常
        继承自Exception或者RuntimeException,只需要提供无参构造和一个带参构造即可
    (7)异常的注意实现
        A:父的方法有异常抛出,子的重写方法在抛出异常的时候必须要小于等于父的异常
        B:父的方法没有异常抛出,子的重写方法不能有异常抛出
        C:父的方法抛出多个异常,子的重写方法必须比父少或者小

2:File(掌握)
    (1)IO流操作中大部分都是对文件的操作,所以Java就提供了File类供我们来操作文件
    (2)构造方法
        A:File file = new File("e:\\demo\\a.txt");
        B:File file = new File("e:\\demo","a.txt");
        C:File file = new File("e:\\demo");
          File file2 = new File(file,"a.txt");
    (3)File类的功能(自己补齐)
        A:创建功能
        B:删除功能
        C:重命名功能
        D:判断功能
        E:获取功能
        F:高级获取功能
        G:过滤器功能
    (4)案例:
        A:输出指定目录下指定后缀名的文件名称
            a:先获取所有的,在遍历的时候判断,再输出
            b:先判断,再获取,最后直接遍历输出即可
        B:批量修改文件名称

时间: 2024-10-10 12:14:36

重踏学习Java路上_Day19(异常,File)的相关文章

重踏学习Java路上_Day15(对象数组,集合类,列表)

1:对象数组(掌握)    (1)数组既可以存储基本数据类型,也可以存储引用类型.它存储引用类型的时候的数组就叫对象数组.    (2)案例:        用数组存储5个学生对象,并遍历数组. public class Student {    // 成员变量    private String name;    private int age; // 构造方法    public Student() {        super();    } public Student(String n

重踏学习Java路上_Day27(反射,模式设计,jdk新特性)

1:反射(理解) (1)类的加载及类加载器 (2)反射: 通过字节码文件对象,去使用成员变量,构造方法,成员方法 (3)反射的使用 A:通过反射获取构造方法并使用 B:通过反射获取成员变量并使用 C:通过反射获取成员方法并使用 (4)反射案例 A:通过反射运行配置文件的内容 B:通过反射越过泛型检查 C:通过反射给任意的一个对象的任意的属性赋值为指定的值 (5)动态代理 2:设计模式 (1)装饰设计模式 BufferedReader br = new BufferedReader(new Inp

重踏学习Java路上_Day26(网络编程)

1:网络编程(理解)    (1)网络编程:用Java语言实现计算机间数据的信息传递和资源共享    (2)网络编程模型    (3)网络编程的三要素        A:IP地址            a:点分十进制            b:IP地址的组成            c:IP地址的分类            d:dos命令            e:InetAddress        B:端口            是应用程序的标识.范围:0-65535.其中0-1024不建议使

重踏学习Java路上_Day20(递归,IO流)

1:递归(理解)     (1)方法定义中调用方法本身的现象        举例:老和尚给小和尚讲故事,我们学编程    (2)递归的注意事项:        A:要有出口,否则就是死递归        B:次数不能过多,否则内存溢出        C:构造方法不能递归使用    (3)递归的案例:        A:递归求阶乘        B:兔子问题        C:递归输出指定目录下所有指定后缀名的文件绝对路径        D:递归删除带内容的目录(小心使用) 2:IO流(掌握)  

重踏学习Java路上_Day13(StringBuffer,Array与数组,Integer,Character)

1:StringBuffer(掌握)    (1)用字符串做拼接,比较耗时并且也耗内存,而这种拼接操作又是比较常见的,为了解决这个问题,Java就提供了       一个字符串缓冲区类.StringBuffer供我们使用.    (2)StringBuffer的构造方法        A:StringBuffer()        B:StringBuffer(int size)        C:StringBuffer(String str)    (3)StringBuffer的常见功能(

重踏学习Java路上_Day18(Map,Collections)

1:Map(掌握) Map接口概述 将键映射到值的对象 一个映射不能包含重复的键 每个键最多只能映射到一个值 Map接口和Collection接口的不同 Map是双列的,Collection是单列的 Map的键唯一,Collection的子体系Set是唯一的 Map集合的数据结构值针对键有效,跟值无关   Collection集合的数据结构是针对元素有效    (3)Map接口功能概述(自己补齐)        A:添加功能        B:删除功能        C:判断功能        

重踏学习Java路上_Day21(字符流,io小结,案例)

1:字符流(掌握)    (1)字节流操作中文数据不是特别的方便,所以就出现了转换流.       转换流的作用就是把字节流转换字符流来使用.    (2)转换流其实是一个字符流        字符流 = 字节流 + 编码表    (3)编码表        A:就是由字符和对应的数值组成的一张表        B:常见的编码表            ASCII            ISO-8859-1            GB2312            GBK            G

重踏学习Java路上_Day14(正则表达式,Math,Random,System,BigInteger,BigDecimal,Date,Calendar)

1:正则表达式(理解)    (1)就是符合一定规则的字符串    (2)常见规则        A:字符            x 字符 x.举例:'a'表示字符a            \\ 反斜线字符.            \n 新行(换行)符 ('\u000A')             \r 回车符 ('\u000D')                    B:字符类            [abc] a.b 或 c(简单类)             [^abc] 任何字符,除了

重踏学习Java路上_Day24(多线程锁,线程组,设计模式)

1:多线程(理解)     (1)JDK5以后的针对线程的锁定操作和释放操作        Lock锁    (2)死锁问题的描述和代码体现    (3)生产者和消费者多线程体现(线程间通信问题)         以学生作为资源来实现的                资源类:Student        设置数据类:SetThread(生产者)        获取数据类:GetThread(消费者)        测试类:StudentDemo                代码: