Day13
匿名类
匿名对象: 是对象,没有引用指向这个对象
匿名内部类 : 没有名字的一个内部类
作用: 简化没有类本身作用,只为了重写的一些抽象方法,方便调用这个方法 ,匿名内部类就可以简化这种实现类
简化符合需求的实现类,子类->接口|抽象父类
异常
程序出现了问题 程序一旦遇到异常,后面代码无法正常执行,并且同时控制台中展示异常的详细信息|细节问题,便于程序猿的调试
异常体系: Throwable / \ Error Exception
Error : 一般指由虚拟机生成并脱出的,无需程序猿解决处理 Exception : 异常 异常如果不处理,程序无法正常执行,需要程序猿在代码层面上处理异常 RuntimeException 运行时异常 : 运行期间才会发生的异常 CheckedException 编译时异常|检查时异常 : 编译期间发生的异常,不处理程序无法运行
重点学习关注异常处理方案:
所有的异常都可以通过标准异常处理方案来处理
运行时异常一般通过增强程序健壮性的代码就可以解决 -> if判断
编译时异常只能通过异常处理方案来处理
异常处理方案:
1.异常抛出 throws 把异常抛出到上一层,谁调用谁处理 2.异常捕获 异常对象当前抓住捕获,直接处理
注意:
1.异常一旦处理,不影响程序的继续执行 2.try中代码可能出现异常,可能不会出现异常,
如果没有出现异常,try{}中的代码执行完毕,try...catch结束 try中代码一旦异常,try后面的代码不会执行,直接执行catch的判断 从上到下一次判断,判断当前的catch是否能够捕获出现的异常对象,如果能,执行后面的{}中的代码, 如果不能匹配,继续向下判断,如果所有的都不鞥匹配,当前的异常对象没有处理,中止程序的执行
3.一个try后面可以跟1~n个catch
4.如果一个异常已经通过catch处理不影响后面代码的执行 5.接收范围较大的异常的catch,需要定义在后面 6.finally 最终的 无论try中是否会出现异常,finally中的代码肯定最后会执行 一般会定义一些资源的关闭等代码
自定义异常
异常类也是类 需要直接或者间接的继承自Exception 如果是运行时期异常必须直接或者间接的继承RuntimeException
制造异常: throw
常用类 : 经常使用的类
字符串String
不可变长字符序列 String类表示字符串。 Java程序中的所有字符串文字(例如"abc" )都实现为此类的实例。 "abc" 字符串常量 --> 字符串常量池中-> 方法区 new String() --> 堆中
学习API类型:
了解类的作用与特点 学习构造器 学习方法 成员 非静态 静态的
底层分析:
jdk11 ->使用字节数组存储字符串数据 private final byte[] value;
jdk8 -> 使用字符数组存储字符串数据 private final char[] value;