内部类种类:静态成员类、非静态成员类、匿名类、局部类,相当于内部类的辅助类。 public class StaticOrNoClass { // 静态成员类 static class A { public static String a = "123"; } // 非静态成员类 class B { public String b = "789"; } private static String a = "456"; private static String s1 = "s1"; private String s2 = "s2"; public static void main(String[] args) { // 1、静态内部类 System.out.println(E02.A.a); System.out.println(A.a); System.out.println(E02.a); System.out.println(a); // 2、共享静态变量 E02 e021 = new E02(); E02 e022 = new E02(); System.out.println(e022.s1); e021.s1 = "s22"; System.out.println(e022.s1); // 3、非静态内部类属于实例,需要先实例化外部类,再实例化内部类,内部类和外部类之间绑定,影响GC B b = e021.new B(); b.b = "hahha"; System.out.println(b.b); // 4、匿名类 new Thread(()->{ System.out.println("1"); }).start(); // 5、内部类 LinkedHashMap<String, String> m1 = new LinkedHashMap(); LinkedHashMap<String, String> m2 = new LinkedHashMap(){ @Override protected boolean removeEldestEntry(Map.Entry eldest) { return size() > 2; } }; m1.put("a", "a"); m1.put("b", "b"); m1.put("c", "c"); m1.put("d", "d"); m2.put("a", "a"); m2.put("b", "b"); m2.put("c", "c"); m2.put("d", "d"); System.out.println(m1.size()); System.out.println(m2.size()); System.out.println(m1); System.out.println(m2); } }
01-14
720
05-23
449