jvm
文章平均质量分 56
紫色的忧伤123456
热爱编程。熟悉.net 和java,从事过嵌入式开发。.net和java开发。
展开
-
MAT分析内存溢出
MAT工具,可以单独下载,记得和JDK进行适配,可以不用下载eclipse。MAT打开outofMTest2.hprof文件。IDEA运行时,设置JVM堆内存大小。打开leak Suspects这项。二. MAT内存溢出本地代码测试。原创 2024-05-02 14:10:02 · 293 阅读 · 1 评论 -
JVM垃圾回收期分类
1. 年轻代: serial, parNew, Paraller Scavenge(高吞吐)2. 老年代: serial old, cms(并发标记清除), Paraller OLD3. G1,ZGC4. JDK8 默认的为Paraller Scavenge组合;JDK9默认的为G1原创 2022-02-09 16:23:18 · 647 阅读 · 0 评论 -
JVM常用命令
查看pid命令 jps -q查看堆的使用情况一. jamp -head pid8477b74-dmn5k/logs]# jmap -heap 9Attaching to process ID 9, please wait...Debugger attached successfully.Server compiler detected.JVM version is 25.202-b08using thread-local object allocation.Garba原创 2021-12-13 21:26:08 · 1565 阅读 · 0 评论 -
Arthas学习
1. Arthas中文乱码java -Dfile.encoding=UTF-8 -jar arthas-boot.jar2. watch基本命令watch cn.web.note.controller.NoteController searchMessage '{params,returnObj,throwExp}' -n 5 -x 3原创 2021-11-29 23:07:32 · 806 阅读 · 1 评论 -
1.JVM学习
原创 2021-10-10 23:02:35 · 72 阅读 · 0 评论 -
jvm 运行时内存区域
1. jvm 运行时内存区域 a. java虚拟栈 虚拟机栈为虚拟机执行 Java 方法 (也就是字节码)服务 StackOverFlowError 和 那么当线程请求栈的深度超过当前Java虚拟机栈的最大深度的时候,抛出StackOverFlowError; OutOfMemoryError: ...原创 2019-05-13 18:07:06 · 89 阅读 · 0 评论 -
强引用、软引用、弱引用、虚引用的
一.了解 强引用、软引用、弱引用、虚引用的概念在Java中,虽然不需要程序员手动去管理对象的生命周期,但是如果希望某些对象具备一定的生命周期的话(比如内存不足时JVM就会自动回收某些对象从而避免OutOfMemory的错误)就需要用到软引用和弱引用了。 从Java SE2开始,就提供了四种类型的引用:强引用(StrongReference)、软引用(SoftReference)、弱引用(...转载 2019-04-18 10:50:18 · 148 阅读 · 0 评论 -
JDK动态实现原理
之前虽然会用JDK的动态代理,但是有些问题却一直没有搞明白。比如说:InvocationHandler的invoke方法是由谁来调用的,代理对象是怎么生成的,直到前几个星期才把这些问题全部搞明白了。 废话不多说了,先来看一下JDK的动态是怎么用的Java代码package dynamic.proxy; import java.lang.reflect.Invocat...原创 2019-01-23 14:01:29 · 214 阅读 · 0 评论 -
二进制字节码文件的应用
Java字节码生成开源框架有Javassist,ASM Javassist已经加入了JBoss,JBoss用此实现了其动态AOP框架ASM操作级别是底层JVM的汇编指令级别,这要求ASM使用者要对class组织结构和JVM汇编指令有一定的了解,Spring 的cglib代理是用的是asm的这种方式package cn.spring.test.utils;import jav...原创 2019-02-21 17:48:51 · 2451 阅读 · 0 评论 -
JAVA中的栈和堆
JAVA中的栈和堆JAVA在程序运行时,在内存中划分5片空间进行数据的存储。分别是:1:寄存器。2:本地方法区。3:方法区。4:栈。5:堆。基本,栈stack和堆heap这两个概念很重要,不了解清楚,后面就不用学了。以下是这几天栈和堆的学习记录和心得。得些记录下来。以后有学到新的,会慢慢补充。一、先说一下最基本的要点基本数据类型、局部变量都是存放在栈内存中的,用完就消失。...转载 2018-11-12 13:29:34 · 168 阅读 · 0 评论 -
保存java 动态代理生成的字节码文件
保存java 动态代理生成的字节码文件在Java中,常用的动态代理技术有JDK的动态代理和cglib动态代理,不管是什么动态代理,最后都要动态的生成对应的.class,正常情况下,这个字节码文件并不会保存到本地,只会存在于内存之中。好奇心的驱使之下,决定以探其庐山真面目。经过查阅资料,自己觉得比较好用的两种方案,都在下面了。1. 方案一:运行 sun.jvm.hotspot.HSDB通...原创 2019-03-29 14:03:31 · 1878 阅读 · 0 评论 -
Java的内存泄漏
Java的内存泄漏问题的提出Java的一个重要优点就是通过垃圾收集器(Garbage Collection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC或JVM的问题。其实,这种想法是不正确的,因为Java也存在内存泄露,但它的表现与C++不同。随着越来越多的服务器程序采用...转载 2019-04-11 13:42:25 · 160 阅读 · 0 评论