目录
一、Java字节码是什么?
Java字节码(Byte-code)是通过JVM虚拟机编译以后产生的.class文件,其内容二进制。下面来看看字节码到底是什么样子
CodeDemo.java文件
public class CodeDemo {
public static void main(String[] args) {
System.out.println("code");
}
}
CodeDemo.class通过IDEA编译后的内容
// class version 52.0 (52)
// access flags 0x21
public class com/yuejin/CodeDemo {
// compiled from: CodeDemo.java
// access flags 0x1
public <init>()V
L0
LINENUMBER 10 L0
ALOAD 0
INVOKESPECIAL java/lang/Object.<init> ()V
RETURN
L1
LOCALVARIABLE this Lcom/yuejin/CodeDemo; L0 L1 0
MAXSTACK = 1
MAXLOCALS = 1
// access flags 0x9
public static main([Ljava/lang/String;)V
L0
LINENUMBER 12 L0
GETSTATIC java/lang/System.out : Ljava/io/PrintStream;
LDC "code"
INVOKEVIRTUAL java/io/PrintStream.println (Ljava/lang/String;)V
L1
LINENUMBER 13 L1
RETURN
L2
LOCALVARIABLE args [Ljava/lang/String; L0 L2 0
MAXSTACK = 2
MAXLOCALS = 1
}
二、使用字节码有什么优势?
优点:
- 跨平台,字节码指认JVM,JVM指认字节码,所有我们的程序在编译以后,想要在别的系统运行,只需要安装对应的JVM虚拟机即可。
三、Java类加载过程?
- 加载:创建类的二进制过程
- 链接:获取类或接口并将其组合到JVM中
- 初始化:类或接口的初始化包括执行类或接口初始化方法<clinit>
知识点
- 什么是字节码,字节码的好处
- 类的加载简单了解