同一个 Java 文件用不同的 jdk 编译出的 class 文件是一样的吗

 我来答
青鸟中关村专家
2016-02-22 · 知道合伙人软件行家
青鸟中关村专家
知道合伙人软件行家
采纳数:1734 获赞数:8437
就职于北大青鸟中关村,自2004年踏入北大青鸟这个行业,已经有11年工作经验和8年的培训经验,寓教于乐

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

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式