同一个java文件,在32位系统下和64位系统下生成的字节码是否相同?最后能解析下原因

写代码的奥特曼 发布于 2015/02/28 14:37
阅读 2K+
收藏 0
同一个java文件,在32位系统下和64位系统下生成的字节码是否相同?最后能解析下原因
加载中
0
南湖船老大
南湖船老大

想都不用想,当然相同了。。。你见过Java区分32和64位吗?你下载spring,有看到64位的spring和32位的spring吗,有强调必须用某一个操作系统吗?你有见到过64位的Jar和32位的jar吗?

eclipse区分,是因为它需要运行一个exe的壳子,还调用了一些dll文件。

写代码的奥特曼
写代码的奥特曼
哦哦,这样啊!我也感觉相同的,可是说不出理由
0
Shazi199
Shazi199
相同,java程序跨平台,java虚拟机不跨平台
写代码的奥特曼
写代码的奥特曼
这样啊!谢谢
0
淘淘我的小宝宝
淘淘我的小宝宝
因为JVM不同嘛,翻译成机器码自然就不一样了,字节码都是.class文件的内容
0
豆豆爸
豆豆爸
这个问题的描述不准确,你是想问:在相同版本的32位和64位JDK编译生成的class字节码文件是否相同--这个应该是相同的--虽然我没有比较过两个class的二进制,但是class文件可以在这两类JVM下执行。原文中的32位和64位系统如果是指操作系统,那就不一定咯。
豆豆爸
豆豆爸
@写代码的奥特曼 编译成字节码与JDK版本有关,跟JDK是32位还是64位无关,跟操作系统也无关;当然32位操作系统安装64位JDK会报错。
写代码的奥特曼
写代码的奥特曼
是操作系统
0
eechen
eechen
你可以认为JVM有自己的指令集, 而javac编译生成的字节码class文件没有32和64位之分, 所以JVM都能够正常运行这些字节码, 注意不要和JDK的32位和64位混淆.
返回顶部
顶部