Java虚拟机
达龙猫
不要只做代码搬运工,思想+行动+坚持=成功
展开
-
Java虚拟机之自动内存管理
文章目录JVM内存区域对象的创建对象的访问定位OutOfMemoryError异常Java堆溢出虚拟机栈和本地方法栈溢出方法区和运行时常量池溢出本机直接内存溢出JVM内存区域先来看两张大家都很熟悉的图(JVM整个内存结构):类加载器负责从文件系统或者网络中加载class文件,并将类信息存放在方法区中方法区是各个线程共享的内存区域,主要保存已被虚拟机加载的类信息、常量、静态变...原创 2019-02-01 23:01:30 · 164 阅读 · 0 评论 -
Java虚拟机之内存分配详解
文章目录堆永久代虚拟机栈栈帧组成之局部变量表堆java虚拟机所管理的内存中最大的一块。几乎所有的对象都是存储在堆中,并且堆是完全自动化管理的,通过垃圾回收机制,垃圾对象会被自动清理,而不需要显式的释放。因为GC垃圾回收采用分代收集算法,因此堆空间的结构一般也为上述结构(这里只描述常见的情况):分为新生代和老年代两块区域。刚new出来的对象实例是存在新生代中的,当Minor GC回收次数达到...原创 2019-02-02 16:10:11 · 2575 阅读 · 0 评论 -
Java虚拟机之常见参数配置
-Xmx5g:设置堆最大内存为5G-Xms5g:设置堆最小内存为5G,将最大和最小值设置一样,可以避免堆自动扩展,即垃圾回收后会重新分配堆内存空间,提高性能,一般也推荐这么做-Xmn2g:设置堆中的年轻代大小为2G。整个堆大小=年轻代大小+老年代大小+持久代大小。持久代一般固定位64M,所以增大年轻代后,将会减少老年代大小,当老年代内存用完会引发Full GC,相当严重。此值对系统性能影响较大...原创 2019-02-02 20:29:32 · 5512 阅读 · 0 评论 -
Java虚拟机之性能监控工具
文章目录jps 虚拟机进程状况工具(常用)jstat 虚拟机统计信息监视工具(常用)jinfo 配置信息工具(常用)jmap 内存映像工具jhat 虚拟机堆转储快照分析工具(一般不用)jstack 堆栈跟踪工具VisualVM 可视化工具MAT 强大的dump分析工具(常用)jps 虚拟机进程状况工具(常用)最常用的工具之一,因为其他命令都需要先使用jps查询出LVMID(本地虚拟机唯一ID)...原创 2019-02-02 21:12:16 · 735 阅读 · 0 评论 -
Java虚拟机之垃圾收集器
文章目录判断对象已死垃圾收集算法垃圾收集器判断对象已死在堆中存放着所有对象实例,那虚拟机是如何判断该对象已死,是需要进行GC回收的呢?这里两种算法:引用计数算法给对象添加一个引用计数器,每当有一个地方引用它时,计数器值加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用可达性分析通过一系列的称为“GC Roots”的对象作为起始点,从这些节点开始向下搜...原创 2019-02-02 19:53:22 · 159 阅读 · 0 评论