jvm
笑不语
亲爱的自己,请逼自己变得优秀,然后骄傲地生活
展开
-
类装载器
一、类的生命周期 类从被加载到虚拟机内存中开始,直到从内存中卸载为止,它的整个生命周期包括了:加载、验证、准备、解析、初始化、使用和卸载这7个阶段。其中,验证、准备和解析这三个部分统称为链接(linking)。 graph LR A[加载] --> B[验证] B --> C[准备] C --> D[解析] D --> E[初始化] E --> F[使用] F --&...原创 2019-12-23 17:41:58 · 297 阅读 · 0 评论 -
自定义类加载器实现热加载
一、实现的需求 当一个java被修改后,系统无需重启,替换的类立即生效,这里以Work.java为例 二、实现的思路 1)难点分析 当项目在执行的时候,我们修改了Work.java,这个类的class文件是不会重新编译的,解决方法? 当Work.java内容发生改变时,调用JavaCompiler对文件进行编译,编译完成后会在Work.java文件所在目录会生成一个Work.class文件...原创 2019-12-23 17:37:01 · 718 阅读 · 5 评论 -
JVM收集器种类和GC参数
一、GC收集器的种类 1. 串行收集器(最古老,最稳定) 效率高 可能产生较长时间的停顿 使用方法:-XX:+UseSerialGC 新生代和老年代使用串行回收器 新生代复制算法 老年代使用标记压缩算法 [GC (Allocation Failure) [DefNew: 494K->28K(1856K), 0.0007607 secs][Tenured: 2460K->20...原创 2019-12-04 23:16:33 · 221 阅读 · 0 评论 -
JVM中常用的GC算法与种类
一、GC的基本概念 JVM的垃圾回收机制使开发人员不必过多考虑内存的申请与释放,这样减少了软件开发的成本和语言的学习成本。 主要的作用区域是堆和方法区。 根的定义 栈中引用的对象 方法区中静态成员或者常量引用的对象(全局对象) JNI方法栈中引用对象 二、几种主要的GC算法 引用计数法(老牌垃圾回收器) 概念:给对象中添加一个引用计数器,每当有一个地方引用它时计数器就加1;当引...原创 2019-11-30 15:16:18 · 667 阅读 · 0 评论 -
JVM内存模型和常用参数配置
一、JVM内存模型 根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。 1.虚拟机栈(我们常说的栈、堆和方法区里面的栈stack) 每个线程有一个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西,每个方法会创建一个栈帧,栈帧中存放了局部变量表(基本数据类型和对象引用)、操作数栈、方法出口等信息。栈的大小可以固定也可以动态扩展。当栈调...原创 2019-11-17 15:51:28 · 580 阅读 · 0 评论