【JAVA基础补完计划001】类 静态类
固有印象:静态内部类不可以被实例化 是错的!
看AQS Abstract Queen Synchronization 时发现其静态内部类Node,对自己进行实例化。遂查询资料并动手实践,发现静态类是可以被实例化的,但是一般情况下没必要。new一个静态内部类对象,获得对其引用,不用先堆外部类进行实例化。
1.根据内部类在外部类中的位置可以分为4种:
- 局部内部类,定义在外部类中的局部范围(方法和代码块中)
- 匿名内部类(学习的重点和难点)也通常定义在局部
- 成员内部类(定义在外部类的成员位置)
- 静态内部类(用stataic修饰的内部类)
- 内部静态类是要在有引用了以后才会装载到内存的,详情见JAVA类加载机制
- 被静态修饰符static修饰的内部类,就是静态内部类
- 静态内部类中可以声明静态变量,非静态内部类中不可以。
- 静态内部类不可以使用外部类的非静态成员变量。
- 创建静态内部类对象,不需要其外部类对象引用。