码迷,mamicode.com
首页 > 其他好文 > 详细

jvm 漫谈 笔记

时间:2015-02-02 23:02:45      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

1.Jvm到底是什么呢?

Jvm其实就是模拟一台计算机,每种cpu都有自己的指令集,jvm自己设置一套指令集,这就是我满看的的字节码,然后jvm需要执行这些字节码,其实这些字节码最终直接对应到cpu的指令集,或者首先对应一段c++代码,然后c++代码再转化成指令集合。

 

2.

public class EvalOrderDemo {

    public static void main(String[] args) {

        int[] arr = new int[1];

        int a = 1;

        int b = 2;

        arr[0] = a + b;

    }

}

 

Arr[0]=a+b;的字节码如下

// 左子树:数组下标

// a[0]

aload_1   //将第一个局部变量值入操作数栈,此值指的是数组的引用,可参考jvm规范

iconst_0   //把操作数0入操作数栈

 

// 右子树:加法

// a

iload_2    //把第二个局部变量a的值入1栈

// b

iload_3 //把第三个变量b的值2入栈

// +

iadd  //还行加操作后,结果存在栈中

 

// 根节点:赋值

iastore  //     将栈顶int型数值存入指定数组的指定索引位置

 

jvm 漫谈 笔记

标签:

原文地址:http://www.cnblogs.com/hansongjiang/p/4268831.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!