rs:

解决方案 »

  1.   

    1 如果是内部匿名类 命名方式应该是 A$B.class
    2 楼主的classname$1.class,classname$2.class是因为一个类在多次被ClassLoader加载,它又不是一个单例,也可能是每个版本不一样,编译时没有删除起先的而又生成了一个新的也用$+数字来区分
      

  2.   

    楼主的classname$1.class,classname$2.class是因为一个类在多次被ClassLoader加载,请问一下编译class 也会被classloader加载么?
      

  3.   

    public class A{
      public class B {  }
      public static class C{
         private static class D{
        
         }
      }
    }你 编译一下看看生成了多少个 .class 文件?
      

  4.   

    如果没有名字而是  $1 $2 就表示 匿名类。public class A{
      public static void main(String[] args){
          System.out.println(new Object()
           {public String toString(){return getClass().getName();}
          );
      }
    }