
JVM
文章平均质量分 79
我和ye猫子
这个作者很懒,什么都没留下…
展开
-
根据Java1.5的JavaAgent创建自定义的agent例子
一:什么是JavaAgent JavaAgent顾名思义就是Java探针技术,我理解的是,通过一个JavaAgent探针类,可以在java虚拟机启动之前,或者运行的时候植入这个探针类,对jvm做一些特别的操作,如动态改变字节码文件这种,要想植入,肯定是通过jvm参数来搞了 使用JavaAgent的技术的项目我目前知道的是SkyWalking,dubbo用没用我没印象了一、创建一个自定义的anget让JavaAgent在被代理程序在JVM运行启动的时候,做一些操作1、创建一...原创 2021-12-28 16:08:51 · 824 阅读 · 1 评论 -
Java虚拟机内存结构和GC原理
一、Java虚拟机内存结构(JDK1.7以前String常量池在方法区内,JDK1.8以后String常量池放到了堆heap中;运行时常量池和字符串常量池是两个概念)私有程序计数器:是一块较小的内存空间,他可以看作是当前线程所执行的字节码的行号指示器。如果正在执行的是java方法,计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是Native方法,计数器值为空。此内存区域没有OutOfMemoryError区域。Native方法指得就是Java程序调用了非Java代码,算是原创 2021-06-05 20:00:32 · 708 阅读 · 1 评论 -
Java中成员变量和局部变量在内存中的分配
首先说明,"Java中的基本数据类型一定存储在栈中的吗?”这句话肯定是错误的。对于成员变量和局部变量:成员变量就是方法外部,类的内部定义的变量;局部变量就是方法或语句块内部定义的变量。局部变量必须初始化。 形式参数是局部变量,局部变量中基础数据类型的引用和值都存储在栈中,对象引用存在栈中,对象存在堆中。栈内存中的局部变量随着方法的消失而消失。 成员变量存储在堆中的对象里面,由垃圾回收器负责回收。 如以下代码:...原创 2021-06-05 16:26:25 · 1569 阅读 · 0 评论