A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 孟浩然 于 2012-6-3 22:54 编辑

写了一个很简单的程序,编译以后出现了两个字节码文件,我的源文件是AcceptDemo.java ,编译以后出现AcceptDemo$1.class和AcceptDemo.class ,就是一个简单的过滤指定目录下的文件的程序。

评分

参与人数 1技术分 +1 收起 理由
袁錦泰 + 1

查看全部评分

8 个回复

倒序浏览
造成这个的原因在于,定义了内部类!
请楼主把代码贴出来看下。
回复 使用道具 举报
代码就是这:
  1. /*
  2. *练习:过滤某个路径下的指定文件  使用FilenameFilter
  3. *
  4. **/
  5. import java.io.*;

  6. class AcceptDemo{
  7.        
  8.         public static void main(String args[]){
  9.                
  10.                 File f=new File("d:\\");
  11.             FilenameFilter ff=new FilenameFilter(){
  12.             public boolean accept(File dir,String name){
  13.                
  14.                 return name.endsWith(".bmp");
  15.         }
  16.                    
  17.         };
  18.                 String[] arr=f.list(ff);
  19.                 for(String name:arr){
  20.                        
  21.                         System.out.println(name);
  22.                 }
  23.         }
  24.        
  25.        
  26. }
复制代码
回复 使用道具 举报
FilenameFilter ff=new FilenameFilter(){   //这里有个匿名内部类,所以会生成带$的class文件!

13.            public boolean accept(File dir,String name){

14.               

15.                return name.endsWith(".bmp");




评分

参与人数 1黑马币 +2 收起 理由
孟浩然 + 2

查看全部评分

回复 使用道具 举报
本帖最后由 唐辉辉 于 2012-6-3 22:46 编辑

import java.io.*;


class AcceptDemo{

        
        public static void main(String args[]){

               
                File f=new File("d:\\");

            FilenameFilter ff=new FilenameFilter(){

            public boolean accept(File dir,String name){

               
                return name.endsWith(".bmp");

                        }

                    
                };

                String[] arr=f.list(ff);

                for(String name:arr){

                        
                        System.out.println(name);

                }

        }      
        
}

标红的地方为一个匿名内部类。所以才会生产那个AcceptDemo$1.class文件。楼主不用担心,没有什么异常的。
回复 使用道具 举报
cro 发表于 2012-6-3 22:40
FilenameFilter ff=new FilenameFilter(){   //这里有个匿名内部类,所以会生成带$的class文件!

13.     ...

嗯! 原来如此,目录里面有好几个
回复 使用道具 举报
java文件中一个类中有内部类时编译后就会生成两个字节码文件,AcceptDemo$1.class这是内部类的字节码文件。
回复 使用道具 举报
小总结:一个源文件如果能通过编译,那么里面有多少个类,就有产生多少class文件!
回复 使用道具 举报
话说我是看到楼主的名字进来的。{:soso__3943448463613330755_3:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马