JVM
文章平均质量分 54
红尘路莫低首
lifelong learning
展开
-
Java虚拟机学习 - 体系结构 内存模型
一:Java技术体系模块图 二:JVM内存区域模型 1.方法区 也称"永久代” 、“非堆”, 它用于存储虚拟机加载的类信息、常量、静态变量、是各个线程共享的内存区域。默认最小值为16MB,最大值为64MB,可以通过-XX:PermSize 和 -XX:MaxPermSize 参数限制方法区的大小。 运行时常量池:是方法区的一部分,Class文件中除了有类的版本、字段、方法、接口等描述...转载 2018-12-13 19:55:50 · 105 阅读 · 0 评论 -
Java虚拟机学习 - 类加载机制
类加载机制 JVM把class文件加载的内存,并对数据进行校验、转换解析和初始化,最终形成JVM可以直接使用的Java类型的过程就是加载机制。 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的生命周期包括了:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)、卸载(...转载 2018-12-13 20:23:37 · 141 阅读 · 0 评论 -
Java虚拟机学习 - 类加载器(ClassLoader)
类加载器 类加载器(ClassLoader)用来加载 class字节码到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源文件在经过 Javac之后就被转换成 Java 字节码文件(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class 类的一个实例。每一个这样的实例用来表示一个 Java 类。实际的情况可能更加...转载 2018-12-13 20:21:33 · 135 阅读 · 0 评论 -
Java虚拟机学习 - 内存调优
JVM调优主要是针对内存管理方面的调优,包括控制各个代的大小,GC策略。由于GC开始垃圾回收时会挂起应用线程,严重影响了性能,调优的目是为了尽量降低GC所导致的应用线程暂停时间、 减少Full GC次数。 代大小调优 最关键参数:-Xms、 -Xmx 、-Xmn 、-XX:SurvivorRatio、-XX:MaxTenuringThreshold、-XX:PermSize、-XX:MaxPer...转载 2018-12-13 20:19:12 · 101 阅读 · 0 评论 -
Java虚拟机学习 - 对象引用强度
无论是通过计数算法判断对象的引用数量,还是通过根搜索算法判断对象引用链是否可达,判定对象是否存活都与“引用”相关。 引用主要分为 :强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)、虚引用(PhantomReference) 四种,引用的强度依次骤减。 强引用: 就是指在代码之中普遍存在的,类似:“Object obje...转载 2018-12-13 20:17:01 · 108 阅读 · 0 评论 -
Java虚拟机学习 - JDK可视化监控工具
1.JConsole JConsole工具在JDK/bin目录下,启动JConsole后,将自动搜索本机运行的jvm进程,不需要jps命令来查询指定。双击其中一个jvm进程即可开始监控,也可使用“远程进程”来连接远程服务器。 进入JConsole主界面,有“概述”、“内存”、“线程”、“类”、“VM摘要”和"Mbean"六个页签: 内存页签相当于jstat命令,用于监视收集器管理的虚...转载 2018-12-13 20:15:21 · 143 阅读 · 0 评论 -
Java虚拟机学习 - 对象内存分配与回收
对象优先在Eden上分配 大多数情况下,对象优先在新生代Eden区域中分配。当Eden内存区域没有足够的空间进行分配时,虚拟机将触发一次 Minor GC(新生代GC)。Minor GC期间虚拟机将Eden区域的对象移动到其中一块Survivor区域。 大对象直接进入老年代 所谓大对象是指需要大量连续空间的对象。虚拟机提供了一个XX:PretenureSizeThreshold参数,令大于这...转载 2018-12-13 20:10:43 · 119 阅读 · 0 评论 -
Java虚拟机学习 - 垃圾收集器
HotSpot JVM收集器 上面有7中收集器,分为两块,上面为新生代收集器,下面是老年代收集器。如果两个收集器之间存在连线,就说明它们可以搭配使用。 Serial(串行GC)收集器 Serial收集器是一个新生代收集器,单线程执行,使用复制算法。它在进行垃圾收集时,必须暂停其他所有的工作线程(用户线程)。是Jvm client模式下默认的新生代收集器。对于限定...转载 2018-12-13 20:07:22 · 98 阅读 · 0 评论 -
Java虚拟机学习 - 垃圾收集算法
跟踪收集器 跟踪收集器采用的为集中式的管理方式,全局记录对象之间的引用状态,执行时从一些列GC Roots的对象做为起点,从这些节点向下开始进行搜索所有的引用链,当一个对象到GC Roots 没有任何引用链时,则证明此对象是不可用的。 下图中,对象Object6、Object7、Object8虽然互相引用,但他们的GC Roots是不可到达的,所以它们将会被判定为是可回收的对象。 可...转载 2018-12-13 20:02:22 · 100 阅读 · 0 评论 -
Java虚拟机学习 - 对象访问
对象访问会涉及到Java栈、Java堆、方法区这三个内存区域。 如下面这句代码: Object objectRef = new Object(); 假设这句代码出现在方法体中,"Object objectRef” 这部分将会反映到Java栈的本地变量中,作为一个reference类型数据出现。而“new Object()”这部分将会反映到Java堆中,形成一块存储Object...转载 2018-12-13 19:58:18 · 115 阅读 · 0 评论