java的汇编代码 java 汇编

一段java代码经过jvm会被转化成汇编语言吗

理论上说计算机运行的程序都可以被反汇编的。但java这类程序就不一样了~~~java程序运行在java虚拟机(jvm)里由java虚拟机和操作系统进行交互操作。java源文件在编译成*.class时,java源代码被编译成类似计算机汇编代码的java汇编代码(也就是 Java字节码),这时java虚拟机就像cpu一样可以“运行java汇编代码”所以java的类并不是计算机是机器指令而是由jvm解译成机器指令运行的。

创新互联专注于企业网络营销推广、网站重做改版、青云谱网站定制设计、自适应品牌网站建设、html5商城网站开发、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为青云谱等各大城市提供网站开发制作服务。

如何查看C++和java生成的汇编代码

下面有几种方法:

方法一:生成asm文件

1)VS2005:

项目 ---》属性 ---》 配置属性 ---》 c/c++ ---》 输出文件 ---》 右边内容项:汇编输出 ---》带源代码的程序集(/FAs )。

这样在项目里面生成后缀为*.asm 的文件。里面还有注释,有利于分析。

要得到汇编代码与源代码的对应,设置选项:

2)VC6.0:

project settings:

--- C++

--- category == Listing files

---Listing file type == Assembly with source code

方法二:使用反汇编方式(推荐使用这种方法,在debug的时候使用)

1)VC6.0在进行断点调试的时候,进行以下步骤:

点击“查看”

“调试窗口”

“Disassably”

即可查看到反汇编的结果

2)VS2005在进行断点调试的时候,进行以下步骤:

点击“调试”

“窗口”

“反汇编”

查看java就直接用javap -v 类文件.class 即可。详细内容可以参考 jvm虚拟机

java的代码是汇编语言吗?

汇编是除了机器语言外的最底层的语言,java是面向对象的语言,是属于最高级的语言之一了,与汇编语言差的太多。完全不是同一个东西,连相似的地方都几乎没有。

至于java的底层是用什么实现的就不好说了,估计java 的底层应该也是使用的与汇编相似的语言写的,那么多复杂的类应该会有一种比较高效的机制来处理。

为什么Java反编译后带有汇编代码

那个不是汇编。。。是反编译工具无法识别的字节码(bytecodes,java中间代码),因为无法识别,自然只能直接把字节码打出来给你看了。

你多试几种反编译工具,并不是所有的都会出的,也不是所有的都在同一个地方出。这个取决于反编译工具的作者对字节码的理解。


分享文章:java的汇编代码 java 汇编
标题链接:http://myzitong.com/article/hhdpdj.html