JVM
hqh1357054948
这个作者很懒,什么都没留下…
展开
-
jvm垃圾回收
首先确定哪些是垃圾 1、引用计数法: 引用和对象是关联的,调用一个对象时必须引用他,如果一个对象引用数为0,则说明这个对象是可回收的。 2、可达性分析: 通过一系列gc roots对象作为起点搜索,如果gc roots和一个对象之间没有可达路径,则该对象不可达,不可达对象经过两次标记之后就会被回收。 GC算法: 1、标记清除法: 先标记所有需要回收的垃圾,然后回收。 2、复制算法: 将内存容量分为...原创 2019-09-09 10:48:12 · 82 阅读 · 0 评论 -
内存泄露问题
什么是内存泄露 当一个对象不在使用,本该被回收,但是由于其他正在使用的对象持有他的引用使得其不能被回收,这就是本该被回收的对象不能被回收而停留在堆内存中造成的内存浪费,也就是内存泄露。 内存泄露会带来的问题 泄露的内存太多会导致程序的内存不够用,从而导致内存溢出。 常见的内存泄露 1、单例模式,如果单例模式持有某些不再使用使用的对象的引用,由于单例模式的特点就是和应用一样的生命周期,这会造成该对象...原创 2019-09-10 18:18:07 · 112 阅读 · 0 评论 -
jvm内存区域
jvm内存简单划分:堆、栈、方法区 堆:老年代、新生代 栈:本地方法栈,虚拟机栈 方法区 详细划分: jvm内存区域分为线程私有区域【程序计数器、虚拟机栈、本地方法区】、线程共享区域【java堆、方法区】、直接内存 程序计数器:唯一一个无OOM的区域,记录当前字节码指令的地址。 虚拟机栈:描述java方法执行的内存模型。存放了各种基本数据类型,对象引用,returnaddress类型。 基本类型:...原创 2019-09-12 14:59:40 · 128 阅读 · 0 评论 -
垃圾收集器
1、CMS收集器 CMS收集器是一种以获取最短回收停顿时间为目标的收集器。基于“标记清除算法”实现。其运作方式如下: 1、初始标记 2、并发标记 3、重新标记 4、并发清除 初始标记仅仅只是标记一下GC Roots能直接关联到的对象,并发标记阶段就是根据初始标记进行GC Roots Tracing找出要清除对象,而重新标记阶段则是为了修正并发标记期间因用户程序继续运作而导致标记产生表动的那一部分对...原创 2019-09-15 12:12:47 · 96 阅读 · 0 评论