zoukankan      html  css  js  c++  java
  • jvm 漫谈 笔记

    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型数值存入指定数组的指定索引位置

  • 相关阅读:
    美化盒子和文本字体
    图片和多媒体
    学习node1_module对象
    学习vue5_组件
    学习vue4_input
    学习vue3
    学习vue2
    Ubuntu中U盘识别不了
    docker 建立新用户软件安装环境ubuntu
    计算机性能优化笔记
  • 原文地址:https://www.cnblogs.com/hansongjiang/p/4268831.html
Copyright © 2011-2022 走看看