JVM-02

server/2024/9/23 22:15:29/

字节码文件是一种特殊的文件格式,它包含了将源代码转换为机器可执行代码所需的指令集。字节码文件通常是由编译器将源代码编译为字节码的中间表示形式。
在Java中,字节码文件的扩展名为.class,它存储了编译后的Java代码。这些字节码文件可以在Java虚拟机上运行,并将字节码转换为机器代码来执行。
字节码文件中的指令通常是基于栈的操作,它们被设计成与Java虚拟机的指令集兼容。这使得字节码文件可以在不同的计算机上运行,只要这些计算机有一个能够解释和执行字节码的Java虚拟机。
除了Java,其他编程语言如Python、Ruby和C#等也有类似的字节码文件。这些字节码文件在执行时会被相应的虚拟机解释和执行。

字节码文件主要信息:
1.基础信息:魔数、字节码文件对应的Java版本号,访问标识(public final等等),父类和接口。
2.常量池:保存了字符串常量、类或接口名、字段名,主要在字节码指令中使用。
3.字段:当前类或接口声明的字段信息。
4.方法:当前类或接口声明的方法信息,字节码指令。
5.属性:类的属性,比如源码的文件名,内部类的列表等。

Java字节码文件中,将文件头称为magic魔数。 CAFEBABE

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

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


http://www.ppmy.cn/server/32657.html

相关文章

【数据结构与算法】二叉树基础与遍历的C语言实现

【数据结构与算法】二叉树基础与遍历的C语言实现 树的介绍树的定义树的性质 二叉树的介绍二叉树的定义二叉树的性质二叉树的种类二叉树的存储方式二叉树三种遍历方式 遍历的实现(递归实现)递归算法三要素树的创建C程序设计(递归)遍…

深入浅出DBus-C++:Linux下的高效IPC通信

目录标题 1. DBus简介2. DBus-C的优势3. 安装DBus-C4. 使用DBus-C初始化和连接到DBus定义接口和方法发送和接收信号 5. dbus-cpp 0.9.0 的安装6. 创建一个 DBus 服务7. 客户端的实现8. 编译和运行你的应用9. 瑞芯微(Rockchip)的 Linux 系统通常会自带 db…

深入解析Spring Boot中的JWT令牌校验:安全身份验证与授权实践

在现代的Web应用程序中,身份验证和授权是至关重要的功能。 JSON Web Token(JWT)是一种用于安全传输信息的开放标准,它通过在用户和服务器之间传递被声明的对象来安全地传输信息。Spring Boot作为一种流行的Java开发框架&#xff…

服务器部署开源大模型完整教程 Ollama+Llama3+open-webui

前言 最近大语言模型大火,正好最近打比赛可能会用得上LLMs,今天就在学校的服务器上面进行一次部署。这样之后就可以直接在内网里面使用学校的LLMs了。 介绍 Ollama:一款可以让你在本地快速搭建大模型的工具 官网:https://olla…

【ARM 裸机】BSP 工程管理

回顾一下上一节:【ARM 裸机】NXP 官方 SDK 使用,我们发现工程文件夹里面各种文件非常凌乱; 那么为了模块化整理代码,使得同一个属性的文件存放在同一个目录里面,所以学习 BSP 工程管理非常有必要。 1、准备工作 新建…

使用通义千问,5分钟实现读取EXCEL数据生成Matlab数据字典.m脚本

使用通义千问,5分钟实现读取EXCEL数据生成Matlab数据字典.m脚本 步骤如下: 在通义千问上传EXCEL数据字典表格,同时输入以下提示词 .m文件的内容为自己之前编辑好的对应得m数据脚本。下边是具体步骤 excel表格的格式如下: 提示词:(上传excel文档+m文件内容作为提示词)

Ubuntu 域名解析出现暂时性错误

Ubuntu 域名解析出现暂时性错误 问题描述解决方案 问题描述 由于在Ubuntu系统里面经常切换网络导致,系统一直处于有线网络连接但是没网状态,尝试ping网络也无法完成,尝试了很多方法均不能解决 解决方案 点击”虚拟机“ 按照要求设置好即可…

【Qt QML】Frame组件

Frame(框架)包含在: import QtQuick.Controls继承自Pane控件。用于在可视框架内布局一组逻辑控件。简单来说就是用来包裹和突出显示其他可视元素。Frame不提供自己的布局,但需要自己对元素位置进行设置和定位,例如通过…