JVM
cuulmn
这个作者很懒,什么都没留下…
展开
-
JVM学习笔记(四)垃圾收集器与内存分配策略
垃圾收集器与内存分配策略概述对象已死?引用计数算法可达性分析算法垃圾收集算法分代收集理论 概述 经过半个世纪的发展,今天的内存动态分配与内存回收技术已经相当成熟,一切看起来都进入了“自动化”时代,那为什么我们还要了解垃圾收集与内存分配策略呢?答案很简单:当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们必须对这些“自动化”的技术实施必要的监控和调节。 当考虑垃圾收集时,要思考下面这三个问题: 哪些对象需要回收? 什么时候回收? 如何回收? 接下来针对这三个问题,一起看原创 2020-08-13 11:23:25 · 96 阅读 · 0 评论 -
JVM学习笔记(三)对象的内存布局
对象的内存布局 在HotSpot虚拟机中,对象在堆内存的内存布局可以划分为三个部分:对象头、实例数据和对齐填充。 HotSpot虚拟机对象头部分包括两类信息。第一类适用于存储对象自身的运行时数据,如哈希码、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等,官方称它为“Mark Word”。对象运行时要存储的数据有很多,Mark Word被设计成一个有着动态定义的数据结构,以便在极小的内存空间存储尽可能多的数据。 对象头另一部分存储的是类型指针,即对象指向它的类型数据指针,Java虚拟机通原创 2020-08-11 14:46:33 · 139 阅读 · 0 评论 -
JVM学习笔记(二)对象创建
对象创建过程对象的创建 对象的创建 Java是一门面向对象的语言,Java程序运行过程中无时无刻都有对象被创建出来。在语言层面上,创建对象仅仅是一个new关键字而已。而在虚拟机中,对象(限于普通Java对象,不包括数据和Class对象等)的创建又是怎样一个过程呢? 当Java虚拟机遇到一个new关键字时,首先检查常量池中是否含有该对象,并且检查这个符号代表的类是否已被加载、解析和初始化过。如果没有,必须要先执行相应的类加载过程。 在类检查通过后,接下来虚拟机要为对象分配内存。分配内存有两种方式,假设Jav原创 2020-08-10 21:16:17 · 113 阅读 · 0 评论 -
JVM学习笔记(一)内存模型
运行时数据区域概述程序计数器Java虚拟机栈本地方法栈Java堆方法区如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 概述 Java虚拟机在执行Java任务时,会把它所管理的内存分为不同区域。这些区域有各自的用途,以及创建和销毁时间,有的区域随着虚拟机进程的启动一直存在,有的区域依赖线程的启动和结束而简原创 2020-08-10 16:01:26 · 139 阅读 · 0 评论