JVM虚拟机
etron_jay
自信满满地让自己的自信满满
展开
-
《深入理解Java虚拟机》笔记04之垃圾收集算法
3.3 垃圾收集算法 由于垃圾手机算法的实现涉及大量的程序细节,而且各个平台的虚拟机操作内存的方法又各不相同,这里只是介绍几种算法的思想及其发展过程。 3.3.1 标记-清除算法 **最基础的收集算法**是“标记-清除”(Mark-Sweep)算法,见名知意,算法分为“标记”和“清除”两个阶段: 首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象,它的标记过程请回忆上一篇博客的“生...原创 2019-06-12 22:06:21 · 198 阅读 · 0 评论 -
《深入理解Java虚拟机》笔记01之运行时数据区域
第一部分-走进Java 1.1概述 Java能获得如此广泛的认可,除了它拥有一门结构严谨、面向对象的编程语言之外,还有许多不可忽视的优点: 它摆脱了硬件平台的束缚,实现了“一次编写,到处运行”的理想: 它提供了一个相对安全的内存管理和访问机制,避免了绝大部分的内存泄漏和指针越界问题: 它实现了热点代码检测和运行时编译及优化,这使得Java应用能随着运行时间的增加而获得更高的性能; 它有一套完整的应...原创 2019-06-07 18:58:26 · 241 阅读 · 0 评论 -
《深入理解Java虚拟机》笔记02之HotSpot虚拟机对象探秘
2.3 HotSpot虚拟机对象探秘 基于实用优先的原则,作者以常用的虚拟机HotSpot和常用的内存区域Java堆为例,深入探讨HotSpot虚拟机在Java堆中对象分配、布局和访问的全过程。 2.3.1 对象的创建 在语言层面上,创建对象(例如克隆,反序列化)通常仅仅是一个new关键字而已,而在虚拟机中,对象(文中讨论的对象限于普通Java对象,不包括数组和Class对象等)的创建又是怎样一个...原创 2019-06-08 21:26:07 · 268 阅读 · 0 评论 -
《深入理解Java虚拟机》笔记05之垃圾收集器
3.5垃圾收集器 如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。 这里讨论的收集器基于JDK1.7 Update 14之后的HotSpot虚拟机(在这个版本中正式提供了商用的G1收集器,之前G1仍处于实验状态) 如下是该虚拟机所包含的所有收集器: 在介绍这些收集器各自的特性之前,我们先来明确一个观点:虽然我们是在对各个收集器进行比较,但并非为了挑选出一个最好的收集器。 ...原创 2019-06-15 19:18:18 · 138 阅读 · 0 评论 -
《深入理解Java虚拟机》笔记03之对象已死吗
第三章 垃圾收集器与内存分配策略 Java与C++之间有一堵由内存动态分布和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。 3.1 概述 垃圾收集(Garbage Collection,GC),GC的历史比Java久远,1960年诞生于MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。 当Lisp还在胚胎时期时,人们就在思考GC需要完成的3件事情: 那些...原创 2019-06-11 12:42:19 · 139 阅读 · 0 评论 -
《深入理解Java虚拟机》笔记06之类加载过程
7.1 概述 我们知道,在Class文件中描述的各种信息,最终都需要加载到虚拟机中之后才能运行和使用。而虚拟机如何加载这些Class文件?Class文件中的信息进入到虚拟机后会发生什么变化? 虚拟机的类加载机制: 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。 与那些在编译时需要进行连接工作的语言(比如C语言)...原创 2019-07-01 15:26:31 · 205 阅读 · 0 评论 -
《深入理解Java虚拟机》笔记07之类加载器
7.4 类加载器 虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便**让应用程序自己决定如何取获取所需要的类**。实现这个动作的代码模块称为“类加载器”。 7.4.1 类与类加载器 对于任何一个类,都需要由加载它的类加载器和这个类本身一同确立其在Java虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间。 比较...原创 2019-07-01 17:43:35 · 167 阅读 · 0 评论