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