
jvm原理
不浪漫的罪名LY
这个作者很懒,什么都没留下…
展开
-
类的加载
当Java程序需要使用某个类时,会确保这个类已经被加载,连接和初始化。这些步骤必须严格按照以下顺序执行: 加载:查找并加载类的二进制数据。 连接:包括验证、准备和解析类的二进制数据。 1️⃣验证:确保加载类的正确性。 2️⃣准备:为类的静态变量分配内存,将其初始化为默认值。 3️⃣解析:把类中的符号引用转换为直接引用。 初始化:给类的静态变量赋上正确的初始值。 其中类的验证主要包括以下...原创 2018-03-29 21:49:24 · 164 阅读 · 0 评论 -
java内存模型
java内存区域上图蓝色区域表示线程共享数据区域,棕色部分代表线程私有数据区域。 方法区:方法区是线程共享的区域,又称为非堆——Non-heap,主要用来存储已经被加载的类的信息、常量、静态变量以及编译后的代码等数据。方法区中存在一块叫运行时常量池的区域,主要用来存放编译器生成的一些字面值和符号引用。 JVM堆:JVM堆也是线程共享的区域,是java虚拟机中占内存最大的一块区域,主要用来存放对象,这原创 2018-03-29 22:37:24 · 143 阅读 · 0 评论 -
垃圾回收算法
垃圾回收4种算法: 引用计数法:每当有一个引用指向一个对象,这个这个对象的引用计数就加1,引用计数法就是清除所有引用计数为0的对象。引用计数法的最大缺点就是不法解决循环引用,如果两个对象相互引用,那么它们的引用计数永远不会为0,这两个对象就永远无法被清除。 标记清除法:将垃圾回收分为两个阶段,标记和清除。首先从根节点开始查找存活的对象,只要找到就做上标记;然后把所有没有被标记的对象全部清除。标记清除原创 2018-03-29 23:00:14 · 108 阅读 · 0 评论 -
JVM内存调优参数
-Xms and -Xmx -Xms:设定JVM初始堆内存大小; -Xmx:设定JVM最大堆内存大小 -XX:PermSize and -XX:MaxPermSize -XX:PermSize:设置堆内存中永久代的初始内存; -XX:MaxPermSize:设置堆内存中永久代的最大内存 ...原创 2018-05-27 18:43:18 · 218 阅读 · 0 评论