首先JAVA的CLASS文件是二进制文件吗,DataInputStream说是用于读取二进制文件的一个类,如果用计事本打开是乱码,用DataInputStream读到程序中是否有可能看到源码,如果不能请说明理由.如果能是不是说这就相当于反编译了,最好举个例子.

解决方案 »

  1.   

    文件并不是把源代码直接把字符变成2进制码保存的, 文件包含了所有JVM需要的东西每个class文件的头4个字节是个称为magic的东西,值始终是0xCAFEBABE, 接下来的4个字节是版本号,JVM通过这个版本号确定自己是否能编译这个版本的class文件,比方说1.4的JVM不能编译版本号是1.5的class文件. 然后还有什么访问标识,类,父类,接口,方法等等很多东西,你要是想了解,可以上网查查java class文件的结构
      

  2.   

    SUN官方的解释:http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html