随笔分类 - JVM
摘要:java对象的四种引用 引用与对象 每种编程语言都有自己操作内存中的元素的方式,例如c和c++是通过指针,而java是通过“引用”。 在java中一切都被视为对象,但是我们操作的标识符实际上是对象的一个引用(reference)。引用存在jvm内存的栈中。 //创建一个引用,引用可以独立存在,并不一
阅读全文
摘要:JVM垃圾回收器选择 先弄懂串行、并行、并发的区别。 1. 串行回收 SerialGC 一般使用在单CPU的平台上。串行收集器是最古老,最稳定以及效率高的收集器,可能会产生较长的停顿,只使用一个线程去回收。新生代、老年代使用串行回收;新生代复制算法、老年代标记-压缩;垃圾收集的过程中会Stop Th
阅读全文
摘要:JVM调优及常见的OOM解决 JVM调优 JVM具体调优参数这篇文章讲得很详细 GC日志分析 获取日志,命令获取和配置jvm的GC日志输出两种方式。 常用命令:jstat-gc 统计垃圾回收堆的行为 JVM调优命令 jps:显示虚拟机进程 jstat:监视虚拟机运行时状态信息,类装载、内存、垃圾收集
阅读全文
摘要:JVM内存结构 堆:线程共享。是Jvm中内存中最大的一块,在虚拟机启动时创建,所有的对象实例以及数组都要在堆上分配。GC主要管理的对象。 方法区:线程共享。储存类信息、常量、静态变量、即时编译器编译后的代码。 栈(虚拟机栈和本地方法栈):线程私有。生命周期也与线程相同。栈由一系列的帧组成,帧保存每一
阅读全文
摘要:jvm类加载机制、双亲委派模型 什么是类加载: 虚拟机把描述类的数据从.Class文件加载到内存中,并对数据进行校验、转换解析和初始化,最终形成可被虚拟机直接使用的java类型。 谁来加载: 加载描述类的Class文件的二进制流是由类加载器完成的,已有的三种类加载和自定义类加载器组成了类加载器的子系
阅读全文