Iml
Iml
全部文章
JVM
Java基础(3)
Java集合(5)
LeetCode(3)
RabbitMQ(1)
Redis(6)
Solr(1)
SpringMVC(2)
剑指offer(52)
多线程与高并发(10)
数据库(2)
未归档(44)
计算机网络(3)
设计模式(1)
归档
标签
去牛客网
登录
/
注册
代码学习之路
我之为我,只在异人处
全部文章
/ JVM
(共13篇)
类加载过程
类加载过程:加载->连接->初始化。连接过程又可分为三步:验证->准备->解析 加载 类加载过程的第一步,主要完成下面3件事情: 通过全类名获取定义此类的二进制字节流 将字节流所代表的静态存储结构转换为方法区的运行时数据结构 在内存中生成一个代表该类的 ...
2019-07-01
0
517
Java对象创建过程
①类加载检查: 虚拟机遇到一条 new 指令时,在常量池中查看是否有new的参数对应类的符号引用,并且检查这个符号引用代表的类是否已被加载过、解析和初始化过。如果没有,那必须先执行相应的类加载过程 ②分配内存: 新生对象分配内存。对象所需的内存大小在类加载完成后便可确定 分配方...
2019-07-01
0
524
如何判断一个类是无用的类?
方法区主要回收的是无用的类,那么如何判断一个类是无用的类的呢? 判定一个常量是否是“废弃常量”比较简单,而要判定一个类是否是“无用的类”的条件则相对苛刻许多。类需要同时满足下面3个条件才能算是 “无用的类” : 该类所有的实例都已经被回收,也就是 Java 堆中不存在该类的任何实例。 ...
2019-07-01
0
949
垃圾回收器
以上是 HotSpot 虚拟机中的 7 个垃圾收集器,连线表示垃圾收集器可以配合使用。 单线程与多线程:单线程指的是垃圾收集器只使用一个线程,而多线程使用多个线程; 串行与并行:串行指的是垃圾收集器与用户程序交替执行,这意味着在执行垃圾收集的时候需要停顿用户程序;并行指的是垃圾收集器和用户程序同时...
2019-06-30
0
551
常见的垃圾回收算法
1、标记清除法 方法:标记阶段:首先将需要进行回收的内存进行标记,清除阶段:将标记的对象进行清除 缺点:碎片化比较多,无法给大的对象分配内存;常常效率较低 2、复制算法 方法:将内存分为相等的两块,每次只使用一块内存,将这一块内存中存活的对象复制到另一块内存中,将使用过的内存进行清理; ...
2019-06-30
0
597
对象的引用
对象的引用 通过对如何判断一个对象是够应该被回收知道,可达性分析和程序计数法都是需要判断该对象是否被引用,但是对于不同的引用,回收的情况也不尽相同 1、强引用 被强引用关联的对象不会被回收。 使用 new 一个新对象的方式来创建强引用。 Object obj = new Object(); ...
2019-06-30
0
477
如何判断对象是否死亡
怎么判断一个对象是否应该被回收? 主要的方法分为两种:引用计数算法和可达性分析算法,目前常用的就是可达性分析算法; 程序计数算法 对一个对象添加一个引用的计数器,当该对象被引用依次那么计数器+1,如果引用被释放,那么计数器-1,这样根据对象最终引用次数为0时,将该对象回收; 缺点:...
2019-06-30
0
583
类加载机制
类是在运行期间第一次使用时动态加载的,而不是一次性加载所有类。因为如果一次性加载,那么会占用很多的内存。 类的生命周期 包括以下 7 个阶段: 加载(Loading) 验证(Verification) 准备(Preparation) 解析(Resolution) 初...
2019-05-20
0
556
Minor GC 和 Full GC,垃圾回收
哪些区域需要垃圾回收? 从JVM运行数据区域划分可以看到,内存的划分集中在两块,线程私有的内存的生命周期是和内存的周期相同,随着线程的结束内存既然也就得到释放; 所以内存垃圾回收机制主要集中的区域就是线程共享区域:堆和方法区 Minor GC 和 Full GC Minor GC :新...
2019-05-20
0
761
JVM思维导图
2019-05-20
0
586
首页
上一页
1
2
下一页
末页