访问限定与异常体系
类以及成员的访问限定
Java工程 =》 包 =》 类一个/不同包里面的类互相访问定义类时需要注意以下几个问题:
1.一个Java源文件只能定义一个和文件名字相同的public类
,还可以定义其它的类,但是不能再用public修饰。
2.public公有类的访问权限是:整个Java工程的所有包里面,都可以任意访问public公有类
3.友好类(没有添加访问限定符的):它们只具有包访问权限只能在同一个包里面访问,其它包不能访问另一个包里面定义的友好类
4.类的成员(成员变量和成员方法):protected修饰或者没有访问限定都是默认属于包访问限定
访问权限表
面经问题:class前面都能够用什么来修饰?
public class
abstract class
final class
strictfp class 和浮点运算有关
Java的异常体系
1.常见的异常
StackOverFlow 栈溢出错误 写递归函数 没有写递归结束条件
ArrayIndexOutofBounds 数组越界 new arr[10] 0-9
NullPointerException 空指针异常 引用变量 没有指向 有效的对象
ClassCastException 类型转换错误 Student s = (Student)object;
OutOfMemory(OOM) 堆内存耗尽了,没有可用的堆内存了
2.总结
不可检测异常,是运行时才抛出的异常,编译阶段可以选择性的处理异常
可检测异常,是编译阶段必须处理的异常,否则代码编译不通过,处理异常的
方式有两种:
1.把可能发生异常的代码用try catch块进行处理
2.在函数签名的后面通过throws 异常类型 把可能发生的异常抛给函数的调用方来处理异常
异常使用注意事项:
1.把同类型的异常,最好放在一起进行处理
2.把循环放在异常处理的里面,不要把循环放在外面
如果我们自定义一个异常类型,需要注意:
1.如果想定义不可检测异常,需要继承自RuntimeException类
2.如果想定义可检测异常,需要直接继承自Exception