同一个 Java 文件用不同的 jdk 编译出的 class 文件是一样的吗
2016-02-22 · 知道合伙人软件行家
关注
展开全部
不一样
不同点主要体现在两个部分:
1、每个class文件的开头几个字节中有标识jdk版本的数值信息,这个应该不一样,比如jdk5编译的是49,jdk6编译的是50;javac 有两个参数是 -source <版本> 和 -target <版本>,一般来说,如果target相同的话,编译出来的class文件时完全相同的,但是反之则不一定相同
2、有些编译器在编译时会进行优化,比如将static final的常量直接inline到使用该常量的地方
不同点主要体现在两个部分:
1、每个class文件的开头几个字节中有标识jdk版本的数值信息,这个应该不一样,比如jdk5编译的是49,jdk6编译的是50;javac 有两个参数是 -source <版本> 和 -target <版本>,一般来说,如果target相同的话,编译出来的class文件时完全相同的,但是反之则不一定相同
2、有些编译器在编译时会进行优化,比如将static final的常量直接inline到使用该常量的地方
展开全部
不一样,不同的操作系统的jdk都不同,因为高级语言首先转换为汇编语言,再转换为机器语言,而每个系统的汇编都是不同的,所以java作为高级语言在不同的系统上转换的汇编语言都不同,class就不同。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2016-02-14
展开全部
这个是不一样的。因为jdk的版本导致jdk的内容不同,从而编译出的class文件也会不一样,运行时,会出现异常!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不一样的,class文件中会存有jdk版本信息等等等等,还有一些其他区别等
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询