摘要:
在程序执行的时候 JVM定义了各种的运行时数据区,一些数据区域是在JVM启动的时候创建的,也在JVM销毁的时候销毁,还有一些数据区域是在线程创建的时候创建,在线程销毁的时候销毁。 运行时数据区由6部分组成 1 程序计数器(Program Counter Register) 2 虚拟机栈 (VM St 阅读全文
随笔分类 - JVM
Java字节码
2020-08-17 17:51 by Tony、, 171 阅读, 收藏, 编辑
摘要:
package com.my; public interface IMy01 { int say01(); } package com.my; public interface IMy02 { String say02(); } package com.my; /** * Hello world! 阅读全文
volatile
2020-05-21 16:37 by Tony、, 169 阅读, 收藏, 编辑
摘要:
volatile 有两个作用 1 线程内存可见性 2 指令排序 可见性原理: 线程在对Volatile变量执行写操作时强迫线程将最新的值刷新到主内存中,而在读操作时强迫从主内存中读入变量的值 2 指令重排 使用了volatile修饰的变量,在对改变量进行读写的时候会添加屏障规则; 在讲指令重排之前先 阅读全文
双亲委派机制
2020-05-09 14:49 by Tony、, 504 阅读, 收藏, 编辑
摘要:
机制定义 如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的类加载器都是如此,因此所有的加载请求最终都应该传送到顶层的启动类加载器中,只有当父加载器反馈自己无法完成这个加载请求(它的搜索范围中没有找到所需的类)时,子加载器才会尝试自 阅读全文
Metaspace 内存溢出分析
2019-12-30 18:04 by Tony、, 852 阅读, 收藏, 编辑
摘要:
class Metaspace extends ClassLoader { public static List<Class<?>> createClasses() throws InterruptedException { // 类持有 List<Class<?>> classes = new A 阅读全文
JVM之GC回收算法与GC收集器
2019-12-20 11:08 by Tony、, 296 阅读, 收藏, 编辑
摘要:
GC回收算法 1.标记清除算法分为标记阶段和清除阶段标记阶段:标记处可回收的对象清除阶段:将已标记的对象所占用的内存回收缺点:运行多次以后容易产生空间碎片,当需要一整段连续内存时虽然空间足够但是无法分配从而导致多次触发GC操作。适合存活对象多,垃圾对象少的情况 2.复制算法为了提高标记清除算法的效率 阅读全文
JVM 虚拟机参数配置
2019-12-11 16:42 by Tony、, 167 阅读, 收藏, 编辑
摘要:
https://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html 阅读全文
Java GC日志
2019-12-10 18:39 by Tony、, 504 阅读, 收藏, 编辑
摘要:
JVM 命令:-Xms5m -Xmx20m -XX:+PrintGCDetails -XX:+PrintCommandLineFlags -XX:+UseSerialGC [GC (Allocation Failure) [DefNew: 1056K->5K(1856K), 0.0008460 se 阅读全文
认识 JVM
2019-12-05 19:48 by Tony、, 226 阅读, 收藏, 编辑
摘要:
1 什么是JVM? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范。比如 对Class文件类型,运行时数据,帧栈 ,指令集等的规范 ,Hotspot是使用JVM规范的商用产品,除此之外还有Oracle JRockit、IBM的J9也是JVM实 阅读全文
java类从加载、连接到初始化过程
2019-08-28 17:27 by Tony、, 372 阅读, 收藏, 编辑
摘要:
类加载器 在了解Java的机制之前,需要先了解类在JVM(Java虚拟机)中是如何加载的,这对后面理解java其它机制将有重要作用。 每个类编译后产生一个Class对象,存储在.class文件中,JVM使用类加载器(Class Loader)来加载类的字节码文件(.class),类加载器实质上是一条 阅读全文