你问内部类何时加载进内存,这很简单,我拿代码做个试验,内部内分为静态内部类和非静态内部类,首先是静态内部类,创建静态内部类无需创建外部类,使用new 外部类.内部类()格式创建,创建非静态内部类你必须先有外部类对象,用new外部类().内部内()创建,看下面一段代码- public class TestMyInner
- {
- public static void main(String args[])
- {
- //Outer1.Inner1 oi = new Outer1.Inner1();
- new Outer1().new Inner2();
- }
- }
- class Outer1
- {
- static {
- System.out.println("外部类静态代码块得到执行");
- }
- static class Inner1{
- static {
- System.out.println("内部类静态代码块得到执行");
- }
- {
- System.out.println("内部类非静态代码块得到执行");
- }
- }
- {
- System.out.println("外部类非静态代码块得到执行");
- }
-
- class Inner2 {
- {
- System.out.println("内部类非静态代码块得到执行");
- }
- }
-
- }
复制代码 此程序运行时可以看到,不管是静态内部类还是非静态内部类,创建外部类时只是能将外部类加载进内存,只有创建内部类对象时才能将其加载进内存 |