当前位置: 首页 > news >正文

JVM:字节码文件

文章目录

  • 一、Java虚拟机的组成
  • 二、字节码文件的组成
    • 1、基本信息
    • 2、常量池
    • 3、字段
    • 4、方法
    • 5、属性
  • 三、常用的字节码工具
    • 1、javap -v 命令
    • 2、jclasslib插件
    • 3、阿里arthas

一、Java虚拟机的组成

在这里插入图片描述

二、字节码文件的组成

1、基本信息

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

2、常量池

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

  • 常量池中的数据都有一个编号,编号从1开始。在字段或者字节码指令中通过编号可以快速的找到对应的数据。
  • 字节码指令中通过编号引用到产量池的过程称为符号引用。
    在这里插入图片描述

3、字段

当前类或接口声明的字段信息。

  • 字节码中的方法区域是存放字节码指令的核心位置,字节码指令的内容存放在方法的Code属性中。

4、方法

当前类或接口声明的方法信息字节码指令

5、属性

类的属性、比如源码的文件名内部类的列表等。

三、常用的字节码工具

1、javap -v 命令

  • javap是JDK自带的反编译工具,可以通过控制台查看字节码文件内容。适合在服务器上查看字节码文件内容。
  • 直接输入javap查看所有参数。
  • 输入javap -v 字节码文件名称查看具体的字节码信息。(如果jar包需要先使用jar -vxf命令解压)。

2、jclasslib插件

  • jclasslib也有idea插件版本,建议开发时使用idea插件版本,可以在代码编译之后实时看到字节码文件内容。
    在这里插入图片描述

3、阿里arthas

  • Arthas是一款线上监控诊断产品,通过全局视角实时查看应用load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,大大提升线上问题排查效率。
    在这里插入图片描述
  • 官网:https://arthas.aliyun.com/doc/quick-start.html
  • dump 类的权限定名:dump已加载类的字节码文件到特定目录。
  • jad 类的权限定名:反编译已加载的源码。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 刷题——输出二叉树的右视图
  • 5-一元函数微分学的应用(一)——几何应用
  • Qt 线程 QThread类详解
  • 【ROS2】中级-在单个进程中组合多个节点
  • 【CW32F030CxTx StartKit开发板】利用超声波传感器实现智能灯控
  • MacOS和Windows中怎么安装Redis
  • Nginx 是一个非常流行的 Web 服务器和反向代理服务器
  • 【Unity2D 2022:Particle System】添加拾取粒子特效
  • 【LeetCode】12. 小张刷题计划
  • 【大模型LLM面试合集】大语言模型基础_Word2Vec
  • [吃瓜教程]南瓜书第6章支持向量机
  • 【咨询】企业数字档案馆(室)建设方案-模版范例
  • 高职物联网实训室
  • linux查看当前路径下各个文件的大小,仅到当前路径
  • Python | Leetcode Python题解之第223题矩形面积
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • extract-text-webpack-plugin用法
  • js操作时间(持续更新)
  • Mysql数据库的条件查询语句
  • node和express搭建代理服务器(源码)
  • Spark RDD学习: aggregate函数
  • Vue小说阅读器(仿追书神器)
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 浅谈web中前端模板引擎的使用
  • 如何学习JavaEE,项目又该如何做?
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 责任链模式的两种实现
  • 最简单的无缝轮播
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • 昨天1024程序员节,我故意写了个死循环~
  • #QT(智能家居界面-界面切换)
  • (2)nginx 安装、启停
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (python)数据结构---字典
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (四)Linux Shell编程——输入输出重定向
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)Linq学习笔记
  • (转)程序员疫苗:代码注入
  • (自用)gtest单元测试
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET CORE Aws S3 使用
  • .NET编程——利用C#调用海康机器人工业相机SDK实现回调取图与软触发取图【含免费源码】
  • .net反编译工具
  • .Net各种迷惑命名解释
  • .Net实现SCrypt Hash加密
  • .net网站发布-允许更新此预编译站点
  • .NET周刊【7月第4期 2024-07-28】