深入理解JVM
文章平均质量分 93
fortmie
这个作者很懒,什么都没留下…
展开
-
深入理解JVM——常见垃圾收集器
如果说收集算法是内存回收的方法论, 那垃圾收集器就是内存回收的实践者。 《Java虚拟机规 范》 中对垃圾收集器应该如何实现并没有做出任何规定, 因此不同的厂商、 不同版本的虚拟机所包含的垃圾收集器都可能会有很大差别, 不同的虚拟机一般也都会提供各种参数供用户根据自己的应用特点和要求组合出各个内存分代所使用的收集器。 一、串行收集器:Serial收集器 最古老,最稳定 简单而高效 可能会产生较长的停顿 -XX:+UseSerialGC 新生代、老年代都会使用串行回收 新生代复制算法原创 2021-07-22 04:37:01 · 195 阅读 · 0 评论 -
深入理解JVM——内存回收与GC算法
目录 哪些内存需要回收 一、判断对象是否存活 什么时候回收 如何回收 1. 标记 - 清除算法 2.标记-复制算法 3. 标记 - 整理算法 GC的历史比Java久远,1960年诞生于MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。当Lisp还在胚胎时期时,人们就在思考GC需要完成的3件事情: 哪些内存需要回收? 什么时候回收? 如何回收? 内存区域中的程序计数器、虚拟机栈、本地方法栈这3个区域随着线程而生,线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出原创 2021-07-22 04:16:56 · 195 阅读 · 0 评论 -
深入理解JVM——JVM内存结构
目录 Java 堆(Heap) 方法区(Method Area) Java 虚拟机栈(JVM Stacks) 程序计数器(Program Counter Register) 本地方法栈(Native Method Stacks) JVM 内存结构是指:Java 虚拟机定义了若干种程序运行期间会使用的运行时数据区,其中有一些会随着虚拟机启动而创建,随着虚拟机退出而销毁,另一些则与线程一一对应,随着线程的开始而创建,随着线程的结束而销毁。具体的运行时数据区如下图所示: 在 Java...原创 2021-07-22 03:47:27 · 96 阅读 · 0 评论 -
深入理解JVM—类加载机制
目录 类加载概述 类的生命周期 类加载过程 加载 准备 解析 初始化 类加载器 双亲委派模型 自定义加载器 Java是一门面向对象的编程语言, Java程序运行过程中无时无刻都有对象被创建出来。 在语言层面上, 创建对象通常(例外: 复制、 反序列化) 仅仅是一个new关键字而已, 而在虚拟机中, 对象(限于普通Java对象,不包括数组和Class对象等)的创建又是怎样一个过程呢? 当Java虚拟机遇到一条字节码new指令时, 首先将去检查这个指令的参数是否能在常量池中定位到一个类的原创 2021-06-29 07:57:45 · 135 阅读 · 0 评论