JAVA虚拟机07-垃圾回收-分代收集理论和垃圾收集算法
摘要:1.分代收集理论 1.1分代收集理论假说 1.2分代收集理论奠定的垃圾收集器原则 1.3基于分代收集理论的内存划分-跨代引用假说 2.垃圾回收 3.垃圾收集算法 3.1标记-清除算法 3.2标记-复制算法 3.3标记-整理算法 1、分代收集理论 当前商用虚拟机的垃圾收集器,大多采用的是分代收集理论的
阅读全文
JAVA虚拟机06-垃圾回收及引用类型
摘要:Java和C++之间有一堵由内存自动分配和垃圾收集技术围成的高墙 1.了解垃圾收集、内存自动分配的意义 2.JAVA虚拟机各个区域的垃圾回收简介 3.判断对象是否存活 3.1引用计数算法 3.2可达性分析算法 3.2.1简介 3.2.2GC Roots说明 3.3引用简介 3.4真正的死亡回收 4.
阅读全文
JAVA虚拟机05-内存溢出示例(jdk1.8)
摘要:1.JAVA虚拟机堆内存溢出OutOfMemoryError 1.1设置参数 -Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError 最小堆的大小20m 最大堆大小20m 1.2代码 public static void t1(){ List<Test> li
阅读全文
JAVA虚拟机04---对象的创建
摘要:主要是针对HotSpot虚拟机来说的 1.对象的创建过程-new 对象() 1.1检查类是否被加载 检查创建的这个对象的类是否能在常量池中找到类的符号引用,并检查这个类是否被加载、解析和初始化。如果没有,先要进行类的加载 1.2在堆中分配内存 对象需要分配的大小是在类加载完成后就可以确定的,需要做的
阅读全文
JAVA虚拟机03-常量池项中字面量和符号引用
摘要:转https://baijiahao.baidu.com/s?id=1682261792528500739&wfr=spider&for=pc 1 符号引用 符号引用以一组符号来描述所引用的目标,也就是用来表示类、方法、字段的。 例如, 在Java中, 一个Java类将会编译成一个class文件。在
阅读全文
JAVA虚拟机02---JAVA虚拟机运行时数据区域简介
摘要:JAVA虚拟机运行时数据区域 1.程序计数器 1)它可以看做是当前线程执行的字节代码的行指示器,通过改变计数器的值来决定下一步执行的代码 2)它是线程私有的,每个线程都有自己的程序计数器(JAVA中多线程是通过线程轮流切换、分配处理器的执行时间的方式实现的) 3)它的生命周期和线程的生命周期一致 3
阅读全文
JAVA虚拟机-01-JAVA虚拟机家族简介
摘要:JAVA虚拟机家族简介 Classic VM JDK1.0发布,第一款商议的JAVA虚拟机。纯解释器方式来执行java代码的的JAVA虚拟机。如果要使用即时编译就需要外挂编译器。如果外挂了编译器,及时编译器会完全接管虚拟机的执行系统,解释器就不能工作。也就是说解释器和编译器不能配合工作。这也就意味着
阅读全文