A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 朱玉玺 于 2013-2-13 20:54 编辑

什么是机器码?什么是字节码?它们的作用、联系 和区别是啥?   解释越通俗越简单越好~可能这个问题跟编程没直接的关系,但我觉得它对理解java内存模型很有必要~

评分

参与人数 1黑马币 +9 收起 理由
Rancho_Gump + 9

查看全部评分

6 个回复

正序浏览
杨玲 发表于 2013-2-13 18:42
呵呵,机器码就是0101这样的二进制代码嘛,而二进制码要想操作机器就需要相应的指令系统,而指令系统就是对 ...

对这块稍微清晰了一些~,对硬件真心不懂,看来还得拓展知识面~
回复 使用道具 举报
朱玉玺 发表于 2013-2-13 18:01
那么二进制码能直接对机器进行操作?就像机器码一样?

呵呵,机器码就是0101这样的二进制代码嘛,而二进制码要想操作机器就需要相应的指令系统,而指令系统就是对二进制代码所表示意思的规定,比如0表示某个开关关,1表示某个开关开这样的.关于这一部分属于硬件部分了.有兴趣可以看操作系统中关于指令系统的知识!
回复 使用道具 举报
王晓斌 发表于 2013-2-13 17:10
一,机器码,完全依附硬件而存在~并且不同硬件由于内嵌指令集不同,即使相同的0 1代码 意思也可能是不同的 ...

那么岂不是硬件的机器码一变化虚拟机就要修改?是不是它先作用与系统,然后系统再作用于硬件?jvm是硬件相关还是系统相关的?
回复 使用道具 举报
杨玲 发表于 2013-2-13 16:31
哈,机器码就是说计算机能读懂的代码,简单点说就是给计算机执行的二进制代码.
字节码,是JAVA语言专有的,它是 ...

那么二进制码能直接对机器进行操作?就像机器码一样?
回复 使用道具 举报
一,机器码,完全依附硬件而存在~并且不同硬件由于内嵌指令集不同,即使相同的0 1代码 意思也可能是不同的~换句话说,根本不存在跨平台性~比如~不同型号的CPU,你给他个指令10001101,他们可能会解析为不同的结果~
二,我们知道JAVA是跨平台的,为什么呢?因为他有一个jvm,不论那种硬件,只要你装有jvm,那么他就认识这个JAVA字节码~~~~至于底层的机器码,咱不用管,有jvm搞定,他会把字节码再翻译成所在机器认识的机器码~~~

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1

查看全部评分

回复 使用道具 举报
哈,机器码就是说计算机能读懂的代码,简单点说就是给计算机执行的二进制代码.
字节码,是JAVA语言专有的,它是让JVM来执行的二进制代码
虽然都是二进制代码,但是由于执行它的哥们不一样,所以它们存在一些指令集上的区别

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马