【学习Day3】Java字节码是什么?使用字节码有什么优势?Java类加载过程?

本文介绍了Java字节码的基本概念及其优势,并详细展示了字节码的结构实例。此外还概述了Java类的加载过程,包括加载、链接和初始化三个阶段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

目录

一、Java字节码是什么?

二、使用字节码有什么优势?

三、Java类加载过程?


一、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>

参考Java 类加载过程 - 愚生浅末 - 博客园以下哪项不属于java类加载过程? A.生成java.lang.Class对象 B.int类型对象成员变量赋予默认值 C.执行static块代码 D.类方法解析 类从被加载到虚拟机内存中开始,到卸载出https://www.cnblogs.com/kohler21/p/16457791.html

参考The Java® Virtual Machine Specification (oracle.com)icon-default.png?t=M85Bhttps://docs.oracle.com/javase/specs/jvms/se8/jvms8.pdf

知识点

  • 什么是字节码,字节码的好处
  • 类的加载简单了解

未完

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值