首页 > 其他分享 >2 字节码文件的组成

2 字节码文件的组成

时间:2024-03-05 15:45:37浏览次数:18  
标签:文件 java 字节 指令 iconst istore 组成 String

2 字节码文件的组成

  • 基础信息

    魔数(文件的类型)、字节码文件对应的java版本号访问标识(public、final等)、父类和接口

  • 常量池

    保存了字符串常量、类和接口名、字段名,主要保存在字节码指令中使用

    常量池避免相同的内容重复定义,节约空间。例如:

    String str1 = "I love you";

    String str2 = "I love you";

  • 字段

    例如:private final static int a1 = 0整个就是一个字段

  • 方法

    将接口或者类中方法转化为字节码指令

    //例:i++,j=j+1,k+=1 所需要的指令数
    public class test1 {
    public static void main(String[] args) {
      int i = 0, j = 0, k = 0;
      //i++只需要一条指令
      i++;
      //j=j+1需要4条指令
      j = j + 1;
      //k+=1也只需要一条指令
      k += 1;
      
    }
    }
    
    //上面java代码对应字节码
    0 iconst_0
    1 istore_1
    2 iconst_0
    3 istore_2
    4 iconst_0
    5 istore_3
    6 iinc 1 by 1
    9 iload_2
    10 iconst_1
    11 iadd
    12 istore_2
    13 iinc 3 by 1
    
  • 属性

    类的属性,比如源代码的文件名、内部类的列表等。例如:Hello.java为源代码的文件名,也是类的属性

标签:文件,java,字节,指令,iconst,istore,组成,String
From: https://www.cnblogs.com/miaoyindian/p/18054194

相关文章

  • 在PowerShell中下载文件是一项常见的任务,可以通过多种方法完成。下面我将介绍使用Invo
    在PowerShell中下载文件是一项常见的任务,可以通过多种方法完成。下面我将介绍使用Invoke-WebRequest、New-Object和Start-BitsTransfer命令来下载文件的方法。使用Invoke-WebRequestInvoke-WebRequest是一个非常强大的命令,用于向网页发送HTTP和HTTPS请求。你可以使用它来下载文......
  • go-ini配置文件操作
    go-ini是golangini文件操作库,也兼容其他格式,包括但不限于my.cnf、.gitconfig使用三方库"gopkg.in/ini.v1"ini文件格式语法;注释使用分号;ini文件语法env=test;[]分区符[mysql]Host=127.0.0.1Port=3306User=rootPassword=123456D......
  • 从零开始写 Docker(四)---使用 pivotRoot 切换 rootfs 实现文件系统隔离
    change-rootfs-by-pivot-root.png本文为从零开始写Docker系列第四篇,在mydockerrun基础上使用pivotRoot系统调用切换rootfs实现容器和宿主机之间的文件系统隔离。完整代码见:https://github.com/lixd/mydocker欢迎Star推荐阅读以下文章对docker基本实现有一个大......
  • 提示空间快满,使用 rm 删除了很大的无用文件后,df 仍然看到空间不足,为什么?如何解决?
    一、问题描述删除之后df-Th并没有发生改变 二、分析原因:如果程序正在被使用,删除文件后,空间不会释放,原因可能是rm的文件正在被使用,所以不能删除,有以下两种方法1、使用lsof查看是否正在被使用,如果进程不重要,可以kill杀死进程#lsof|grepdelete|greptest2#kill-98......
  • Js下载返回是二进制保存到本地文件
    //创建一个新的XMLHttpRequest对象varxhr=newXMLHttpRequest();//监听XMLHttpRequest对象的加载完成事件xhr.addEventListener('load',function(){//如果请求成功完成if(xhr.status===200){//获取到二进制文件内容varblob=......
  • etc/sudoers没有这个文件
    问题:root@debian:#ls-l/etc/sudoersls:cannotaccess'/etc/sudoers':Nosuchfileordirectory解决:当系统中不存在/etc/sudoers文件时,通常表示sudo配置文件丢失或损坏。sudoers文件包含了sudo命令的配置信息,用于定义哪些用户或组有权限以超级用户模式执行命令。......
  • 导入Excel文件的时候公式为【#Ref!】应该怎么解决?
    前言在我们使用Excel时,经常会遇到一个问题,就是导入Excel时公式显示为【#Ref!】的情况。这通常是因为公式中引用的单元格已被删除或对应的工作表被删除,导致原公式无法识别对应的参数而显示为【#Ref!】。比如在一张Excel表中,sheet1中A1单元格的公式为‘=Sheet2!B1’,如果Sheet2......
  • 在Docker中,本地的镜像文件都存放在哪里?
    在Docker中,镜像(Images)保存在本地文件系统中,具体的保存位置取决于您使用的操作系统。以下是一些常见操作系统的Docker镜像保存位置:Linux:默认情况下,Docker镜像保存在/var/lib/docker/目录下。当您使用dockerpull命令从DockerHub或私有镜像仓库中拉取镜像时,Docker会自动将镜......
  • Windows定时删除指定路径下N天前的文件以及文件夹
    Windows定时删除指定路径下N天前的文件以及文件夹 将下面代码复制到自建的.txt文件里,然后保存再更改后辍名为.bat,点击执行即可脚本文件存放随意,因为里面的路径是绝对路径1.删除指定路径下5天前的所有文件@echooffsetSrcDir=E:\WORK\GitsetDaysAgo=5forfiles/p......
  • Windows NFS 真弱 → 中文乱码导致文件找不到
    开心一刻正睡着觉,然后来了个电话对方说:你好,方便面是吗我愣了一下,以为是恶作剧回了句:我不是,我是火腿肠!就挂了电话又躺了好一会,忽然琢磨过来......不对呀,她好像说的是:你好,方便面试吗?前提准备项目中有这么一块业务1、 脚本同步 这......