Java中内部类
1.静态类与非静态类是内部类的区分,外部类不可以被static修饰。
2.类的加载过程:类只有被使用才会被类加载器加载,加载后类的信息放在元空间(方法区)中。类的使用包括初始化对象、静态方法的调用。
3.静态内部类与普通内部类的区别:
静态内部类
可以访问外部类的静态数据
不能访问外部类的成员数据
构造方法可以传空,不必持有外部类对象
非静态内部类
可以访问外部类的任何数据
构造方法默认持有外部类的对象,只能通过外部类的对象来调用它的构造方法
4.除了普通内部类和静态内部类,也可以定义局部内部类,即在方法内部定义类。也可以定义匿名内部类,配合接口的使用。
5.匿名内部类和lambda表达式的区别:
匿名内部类编译后会生成类似LambdaTest$1.class的类,lambda表 达式编译时不会生成真正的类
6.kotlin中内部类的表达:
默认没有任何修饰的类属于静态内部类
添加inner修饰的是普通内部类