JVM
文章平均质量分 86
JAVA 虚拟机内核
demon7552003
这个作者很懒,什么都没留下…
展开
-
修改Java class文件
Java 字节码修改转载 2024-05-12 12:04:51 · 2183 阅读 · 0 评论 -
MAT工具详解
可以用来分析Java堆内存,可以用来排查内存泄漏和内存浪费的问题,但是功能不是特别强大, MAT(Memory Aanlysis Tool)是一款更优的工具。原创 2024-04-14 19:39:40 · 510 阅读 · 0 评论 -
Javac命令详解
javac java编译命令原创 2023-02-18 13:59:16 · 2064 阅读 · 0 评论 -
JAVA注解处理API实战
插件化注解处理(Pluggable Annotation Processing)API原创 2022-12-30 20:32:04 · 4593 阅读 · 3 评论 -
Java-JSR-269-插入式注解处理器
Java插入式注解处理器转载 2022-12-30 20:30:08 · 767 阅读 · 0 评论 -
JCTree简要分析
JCTree转载 2022-12-30 20:28:00 · 324 阅读 · 0 评论 -
Arthas详解
文章目录概述安装快速安装使用`arthas-boot`(官网推荐)使用`as.sh`全量安装把Arthas安装到基础镜像里卸载使用命令详解基础命令helpcatechogrepbase64teepwdclsversionhistorykeymap后台异步命令相关快捷键会话相关quitstopsessionresetjvm相关dashboardthreadjvmsyspropsysenvvmoptionperfcounterloggergetstaticognlmbeanheapdumpvmtoolclass原创 2021-09-07 19:22:04 · 2405 阅读 · 0 评论 -
JMX笔记整理
JMX的定义JMX 全称为 Java Management Extensions,翻译过来就是 Java 管理扩展,用来管理和监测 Java 程序。最常用到的就是对于 JVM 的监测和管理,比如 JVM 内存、CPU 使用率、线程数、垃圾收集情况等等。另外,还可以用作日志级别的动态修改,比如 log4j 就支持 JMX 方式动态修改线上服务的日志级别。最主要的还是被用来做各种监控工具,比如文章开头提到的 Spring Boot Actuator、JConsole、VisualVM 等。JMX 既是 Ja原创 2021-09-07 19:14:27 · 280 阅读 · 0 评论 -
JVM--类加载机制
目录类加载的时机类的加载过程加载(Loading)验证(Verification)(1)文件格式验证(2)元数据验证(3)字节码验证(4)符号引用验证准备(Preparation)解析(Resolution)初始化(Initialization)使用(Using)卸载(Unloading)类加载器类与类加载器双亲委派模型破坏双亲委...原创 2019-07-21 19:46:17 · 220 阅读 · 0 评论 -
JVM-类文件结构
目录无关性基石Class类文件的结构魔数和Class文件的版本常量池访问标识类索引、父类索引与接口索引集合:字段表集合字段表结构:字段访问标志方法表集合:方法表的结构:属性表集合:虚拟机规范预定义的属性:Code属性异常表的结构:Exception属性LineNumberTable属性LocalVariableTable...原创 2019-07-21 16:13:48 · 406 阅读 · 0 评论 -
JVM-垃圾收集器与内存分配策略
对象存活判定方法引用计数算法对象引用计算器,引用加1,失效减1。计数为0表示对象死亡。JVM不采用,因为互相引用导致循环引用问题可达性分析算法以GC Roots为起点,从这些起点开始向下搜索,经过的路径称为引用链。若一个对象到GC Roots之间没有任何引用链,则该对象是不可达的。在Java语言中,可作为GC Roots的对象包括以下几种:虚拟机栈(栈帧中的局部变量...原创 2019-07-21 12:25:22 · 177 阅读 · 0 评论 -
JVM-Java内存区域
运行时数据区域Java虚拟机在执行程序时,会把管理的内存分为几个不同的数据区域。这些区域有各自的用途,创建和销毁时间,根据JAVA规范,JAVA虚拟机所管理的内存包括以下几个运行时数据区域(JDK7)。程序计数器程序计数器(Program Counter Register)可以看作是当前线程所执行的字节码的行号指示器。用于在线程切换时保留状态。若正在执行的是java方法,则计数...原创 2019-07-21 08:38:41 · 113 阅读 · 0 评论 -
JVM--优化
早期(编译期)优化编译完成了从程序到抽象语法树或中间字节码的生成编译器种类:前端编译器 如:javac JIT编译器 如:HotSpot VM的C1、C2 AOT编译器javac编译器把*.java文件转变为*.class文件的过程,对代码运行效率几乎没有优化,相当多新生的Java语法特性都是靠编译器的语法糖来实现的,由java语言编写的程序。编译过程大致可以分为3个过程...原创 2019-07-24 11:52:24 · 140 阅读 · 0 评论 -
JVM--字节码执行引擎
运行时栈帧栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈(Virtual Machine Stack)的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。每一个方法从调用开始至执行完成的过程,都对应着一个栈帧在虚拟机栈里面从入栈到出栈的过程。每一个栈帧都包括了局部变量表、操作数栈、动态连接、方法返...原创 2019-07-24 10:33:55 · 116 阅读 · 0 评论 -
JVM--对象的实例化过程
Java对象创建时机一个对象在可以被使用之前必须要被正确地实例化。在Java代码中,有很多行为可以引起对象的创建。下面对各种方式一一介绍。使用new关键字创建对象这是我们最常见的也是最简单的创建对象的方式,通过这种方式我们可以调用任意的构造函数(无参的和有参的)去创建对象。比如:Student student = new Student();使用Class类的newI...转载 2019-07-24 08:08:06 · 509 阅读 · 0 评论