摘要: 一、jvm垃圾回收要做的事情 哪些内存需要回收 什么时候回收 怎么回收 二、如何判断对象已经死亡,或者说确定为垃圾 引用计数法: 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器的值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。这也就是需要回收的对象, 阅读全文
posted @ 2020-06-25 16:27 酒客 阅读(627) 评论(0) 推荐(2) 编辑
摘要: 一、虚拟机栈背景 由于跨平台性的设计,java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。 优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。 二、内存中的堆与栈 栈是运行时的单位,而堆是存储的单位;即:栈解决程序的运行问题,即程 阅读全文
posted @ 2020-05-12 22:14 酒客 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 一、堆 定义: Heap,通过new关键字创建的对象,都存放在堆内存中。 特点 线程共享,堆中的对象都存在线程安全的问题 垃圾回收,垃圾回收机制重点区域。 jvm内存的划分: JVM内存划分为堆内存和非堆内存,堆内存分为年轻代(Young Generation)、老年代(Old Generation 阅读全文
posted @ 2020-04-17 11:10 酒客 阅读(793) 评论(3) 推荐(3) 编辑
摘要: 一、内存与线程 内存: 内存是非常重要的系统资源,是硬盘和cpu的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了JAVA在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的jvm对于内存的划分方式和管理机制存在着部分差异(对于Hotspot主要指方法区 阅读全文
posted @ 2020-04-16 11:47 酒客 阅读(579) 评论(0) 推荐(3) 编辑
摘要: 一、类加载子系统的作用 类加载子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识; ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定 加载的类信息存放于一块成为方法区的内存空间。除了类信息之外,方法 阅读全文
posted @ 2020-04-15 20:14 酒客 阅读(699) 评论(0) 推荐(3) 编辑