美文网首页
Java字节码

Java字节码

作者: Drew_MyINTYRE | 来源:发表于2020-10-14 09:28 被阅读0次

    Java字节码

    编辑.java文件,生成字节码文件

    javac TestCode.java
    

    反编译字节码文件

    javap -verbose TestCode.class
    

    源代码中的各种变量,关键字和运算符号的语义最终都会编译成多条字节码命令。

    640.png

    关于字节码的类型对应如下:

    641.png
    对于数组类型,每一位使用一个前置的"["字符来描述,如定义一个java.lang.String[][]类型的维数组,将被记录为"[[Ljava/lang/String;"
    
    642.jpg

    虚拟机的主要任务是装载class文件(ClassLoader完成)并执行其中的字节码,在一个Java虚拟机中有可能存在多个类加载器。

    当JAVA虚拟机运行一个程序时,相关信息被组织到“运行时数据区”。

    • 方法区

    方法区用来存储解析被加载的class文件的相关信息。

    当程序运行时,虚拟机会把所有该程序在运行时创建的对象都放到堆中。

    • PC寄存器

    PC寄存器主要用来存储线程。当新创建一个线程时,该线程都将得到一个自己的PC寄存器(程序计数器)以及一个java栈。

    • 栈区

    Java栈是由许多栈帧组成的,一个栈帧包含一个Java方法调用的状态,当线程调用一个方法时,虚拟机压入一个新的栈帧到该线程的Java栈中,当该方法返回时,这个栈帧从Java栈中弹出。

    相关文章

      网友评论

          本文标题:Java字节码

          本文链接:https://www.haomeiwen.com/subject/qeivpktx.html