随笔分类 - JVM
摘要:1. 对象年龄达到阈值后进入老年代 默认情况下,对象在新生代经历了15次(CMS默认6,其他回收器默认15,以为4字节最大长度限制,最大值也是15)GC后,便会达到进入老年代的条件,将对象转移进入老年代。当然,年龄的阈值可以通过JVM参数进行设置: -XX:MaxTenuringThreshold=
阅读全文
摘要:怎么判定对象是否为垃圾对象 1.引用计数法 在每个对象中添加一个引用计数器,当有地方引用这个对象的时候,引用计数器就+1,当引用失效的时候,计数器的值就-1。任何时刻计数器为0的对象就是不可能再被使用的。 优点:容易实现 缺点:很难解决对象之间相互循环引用的问题 2.可达性分析 目前的JAVA虚拟机
阅读全文
摘要:创建对象的几种方式 1. new关键字 Object obj = new Object(); 2. 反射 3.克隆 4.反序列化 创建对象的过程 1.创建过程 (1)检查是否加载过 虚拟机解析new指令,首先检查常量池是否有类的符号引用,并且检查是否已经加载解析和初始化,没有就执行类加载过程 (2)
阅读全文
摘要:溢出区域 内存溢出分为堆内存溢出和栈内存溢出 如果虚拟机在扩展堆时无法申请到足够大的内存空间时,就会抛出outOfMemoryError 如果线程请求的栈深度大于虚拟机所允许的最大深度,则抛出StackOverflflowError 栈溢出 public class TestOverFlow { p
阅读全文
摘要:什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一个虚构出来的计算机,有着自己完善的硬件架构,如处理器、堆栈等。 为什么需要JVM Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代
阅读全文