一、javap -v javap是jdk自带的反编译工具,可以通过控制台查看字节码文件内容 javap -v 字节码文件 二、JClasslib idea可以安装这个插件,直接在插件市场就能搜索到,安装完成后,选中class文件,点击view,就可以看到对应选项 三、阿里Arthas 3.1 简介 官网文档https://arthas.aliyun.com/ Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率 3.2 下载安装 下载地址https://arthas.aliyun.com/arthas-boot.jar git指定版本下载地址Releases · alibaba/arthas (github.com) 编写如下代码并运行 public class HelloWorld { public static void main(String[] args){ Thread thread = n.... Java虚拟机--常用工具 JVM
一、简介 Java各个版本能够保持非常良好的向后兼容性,Class文件结构的稳定性功不可没,不同版本的Java虚拟机规范也只是在原有基础上新增内容、扩充功能。 二、Class类文件结构 这里只列举class文件各项标识得作用,详细信息可以参考官网第 4 章。类 File Format (oracle.com) 2.1 Class文件内容 文件内容如下 ClassFile { u4 magic; u2 minor_version; u2 major_version; u2 constant_pool_count; cp_info constant_pool[constant_pool_count-1]; u2 access_flags; u2 this_class; u2 super_class; u2 interfaces_count; u2 interfaces[interfaces_count]; u2 fields_count; field_info fields[fields_count]; u2 methods_count; method_info methods[metho.... 有更新! Java虚拟机--字节码文件结构 JVM
一、简介 Java虚拟机(JVM,Java Virtual Machine)是一种虚拟计算机,它提供了一个运行环境,使得编译后的Java程序可以在几乎所有的计算机平台上执行,而无需针对每个平台进行单独的编译。以下是JVM的一些关键概念和特点: 平台独立性 : JVM的核心价值在于它实现了“一次编写,到处运行”的理念。Java源代码被编译成字节码(Bytecode),这是一种中间语言,由JVM解释并在本地平台上执行。这意味着相同的字节码可以在不同的操作系统和硬件架构上运行,只要存在对应的JVM实现。 字节码与JVM : Java编译器将Java源代码编译成字节码,字节码是一种低级别的指令集,由JVM解释或即时编译(JIT)成机器码执行。字节码的使用保证了程序的安全性和可移植性。 内存管理 : JVM管理着应用程序的内存分配和垃圾回收。它分为几个主要的内存区域,包括: 堆(Heap) :用于存储对象实例和数组。 方法区(Method Area) :存储类信息、常量、静态变量、即时编译器编译后的代码缓存。 栈(Stack) :线程私有的,用于存储局部变量、操作数栈、动态链接和方法出口.... Java虚拟机--简介 JVM