[2025.1.1 JavaSE学习]内部类 && 异常
内部类
package mypkg.demo01
public class Outer{
private int id;
public void out(){
System.out.println("外部类方法");
}
public class Inner{
public void in(){
System.out.println("内部类方法");
}
}
}
- 实例化内部类之前,需要先将外部类进行实例化:
import mypkg.demo01.Outer
public class test{
public static void main(String[] args){
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();
}
}
- 静态的内部类无法访问外部类的非静态的成员,因为内部类会在类加载时候被加载,而此时外部类还未实例化,内部成员还未存在
- 一个java类中可以有多个class,但是只能有一个public class
- 匿名类:
public class Test{
public static void main(String[] args){
new A().method();//匿名类可以不使用引用初始化类,即不需要将实例保存至变量中
}
class A{
public void method(){
Systen.out.println("1");
}
}
}
异常(Exception)
三种异常
- 检查性异常:比如用户错误或者问题引起的异常,无法预见,例如打开一个不存在的文件,不可在编译时被忽略
- 运行时异常:是可被避免的异常,可以在编译时被忽略
- 错误:错误不是异常,例如栈溢出
- java把异常当作对象处理,并定义基类java.lang.Throwable作为所有异常的基类,Java API中定义如下:

1、Error:由Java虚拟机生成并抛出,大多数与代码编写者执行的操作无关,下面介绍几个常见的ERROR:
- Virtual MachineError:当JVM不再有继续执行操作所需的内存资源时,将出现OutOfMemoryError。这些异常发生时,JVM一般会选择线程终止
- 还有发生在虚拟机试图执行应用时,如类定义错误(NoClassDefFoundError)、链接错误(LinkageError)。这些错误都是不可查的,因为它们在应用程序的控制和处理能力之外,且大部分都是程序运行时不允许出现的情况
2、Exception:其中重要子类RuntimeException
- ArrayIndexOutBoundException(数组下标越界)
- NullPointerException(空指针异常)
- ArithmeticException(算术异常)
- MissingResourceException(丢失资源)
- ClassNotFoundException(找不到类)
- ......
这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理
3、Error和Exception的区别:Error通常是灾难性的致命的错误,是程序无法控制和处理的,当出现这些异常时,JVM会选择终止线程;而Exception通常可以被程序处理

浙公网安备 33010602011771号