摘要:
1、什么是垃圾回收?程序的运行必然需要申请内存资源,无效的对象资源如果不及时处理就会一直占有内存 资源,最终将导致内存溢出,所以对内存资源的管理是非常重要了。 1.1、C/C++语言的垃圾回收在C/C++语言中,没有自动垃圾回收机制,是通过new关键字申请内存资源,通过delete 关键字释放内存资 阅读全文
摘要:
一、插件安装 jvisualvm是随jdk一同发布的jvm诊断工具,通过插件可以扩展很多功能,插件扩展也是jvisualvm的精华所在。打开该工具,通过菜单“工具”—>“插件”开发以下对话框:在可用插件tab中选择需要安装的插件,本博文中需要用到两个插件如上图中的方框所示。 二、调整IDEA类加载速 阅读全文
摘要:
有些时候我们需要查看jvm的线程执行情况,如:发现服务器的CPU的负载突然增高了,出现了死锁,死循环,我们该如何分析呢?这个时候就要借助jstack命令了,jstack的作用就是将正在运行的jvm的线程进行快照,并且打印出来 #用法: jstack <pid> #示例 jstack 2214 一、j 阅读全文
摘要:
一、初步认识 二、模拟内存溢出 2.1 ~ 编写测试类:TestJvmOutOfMemory。编写代码,向List集合中添加100万个字符串,每个字符串由1000个UUID组成。如果程序能够正常执行,最后打印ok。 package cn.itcast.jvm; import java.util.Ar 阅读全文
摘要:
一、程序计数器 记住下一条jvm指令的执行地址,解释器会去程序计数器拿jvm指令。 线程私有的,CPU会给每个线程分配时间片,时间片执行完会切换线程。 唯一不会出现内存溢出的区域。 二、虚拟机栈 线程运行需要的内存空间,每个线程都有一个栈。 由多个栈帧组成,每个方法运行需要的内存(参数、局部变量、返 阅读全文
摘要:
一、三种参数类型 1、标准参数:比较稳定,以后版本会保留 -help -version 2、-X参数(非标准参数) -Xint -Xcomp 3、-XX参数(非标准参数,使用率较高) -XX:newSize -XX:+UseSerialGC 二、标准参数 一般都是很稳定的,在未来jvm版本中不会改变 阅读全文