不一样不同点主要体现在两个部分:1、每个class文件的开头几个字节中有标识jdk版本的数值信息,这个应该不一样,比如jdk5编译的是49,jdk6编译的是50;javac 有两个参数是 -source <版本> 和 -target <版本>,一般来说,如果target相同的话,编译出来的class文件时完全相同的,但是反之则不一定相同2、有些编译器在编译时会进行优化,比如将static final的常量直接inline到使用该常量的地方~