JVM学习
文章平均质量分 96
从JVM各个环节的流程出发,深入源码学习JVM的运行机制。
starslightshine
且学且编程
展开
-
(7)JVM 对象内存回收算法和垃圾收集器
目录前言一、垃圾收集算法1、标记-复制算法2、标记-清除算法3、标记-整理算法二、垃圾收集器1、Serial收集器2、Parallel收集器3、ParNew收集器4、CMS收集器5、G1收集器6、ZGC收集器总结前言上一篇文章讲到对象内存的回收,本篇文章将会进一步深入记录进行垃圾对象内存回收的三种算法和不同的实现。一、垃圾收集算法传统的JVM通常根据对象的存活周期的不同而将堆区内存分为新生代和老年代,那么在进行垃圾回收的时候,也要考虑到两部分内存中对象的特点,分别实现不同的垃圾收集算法,以达到高效原创 2021-06-07 13:38:08 · 234 阅读 · 0 评论 -
(6)JVM 对象内存分配和回收
目录前言一、对象内存分配1、分配到线程栈2、分配到堆中的新生代Eden区3、分配(移动)到堆中的老年代二、对象内存回收1、四个引用类型2、对象内存回收之引用计数法3、对象内存回收之可达性分析法总结前言上一篇(5)JVM 对象的创建流程记录了JVM创建一个对象的流程,其中包括对象内存分配步骤。一个对象的生命周期结束后,需要使用垃圾回收器来回收相应的内存,这就涉及对象内存的回收。本篇文章将会记录对象的内存分配会回收,先放流程图。其中橙黄色和紫色框是对象内存分配部分,橙红色和蓝色框是对象内存回收部原创 2021-05-29 21:10:45 · 215 阅读 · 0 评论 -
(5)JVM 对象的创建流程
目录前言一、对象的创建流程二、对象的内存分配三、对象的回收总结前言先放上前几篇文章的Java执行一个类的流程图:在上面几节中,我对类的一、对象的创建流程二、对象的内存分配三、对象的回收总结提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。...原创 2021-05-26 14:55:10 · 307 阅读 · 0 评论 -
(4)JVM 整体结构理解
目录前言一、JVM的整体结构1、JDK 整体结构图2、JVM 整体结构图3、JVM 类加载子系统4、JVM 字节码执行引擎5、JVM 线程栈、本地方法栈和程序计数器6、JVM 堆区7、JVM 方法区总结前言前面三篇文章围绕进行类加载之前的一些过程进行理解:(1)JVM 类加载之流程理解(2)JVM 类加载之类加载器初始化(3)JVM 类加载之双亲委派机制那么类加载之后呢?再次把Java执行一个类的流程图放上:从图中可以看出,类加载之后就是JVM对类的调用执行了,这个需要通过JVM的整体原创 2021-05-12 19:58:02 · 173 阅读 · 0 评论 -
(3)JVM 类加载之双亲委派机制
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码原创 2021-05-11 10:10:07 · 319 阅读 · 0 评论 -
(2)JVM 类加载之类加载器初始化
目录前言一、JVM的四种类加载器1、引导类加载器2、扩展类加载器3、应用程序类加载器4、自定义类加载器二、类加载器的初始化总结前言上一节(1) 类加载之流程理解记录了类加载过程中五个具体步骤的流程理解。那么对于一个需要加载的类,到底是什么东西来对它进行加载呢?其实在程序启动之初,在加载包括核心类库在内的所有类库之前,JVM会先创建一个用C++实现的引导类加载器实例,然后用这个类加载器加载JVM启动器类"sum.misc.Launcher"并跨语言调用JAVA代码来创建实例,通过该实例调用"sum.m原创 2021-05-10 16:38:38 · 297 阅读 · 0 评论 -
(1)JVM 类加载之流程理解
目录前言一、java执行某个类代码的大致流程二、loadClass流程结语前言春招结束,即将步入职场。这是我为以后职场发展所写的第一篇文章,从JVM底层开始,边学习边记录。加油!一、java执行某个类代码的大致流程我们能够使用IDE很轻松地编写出一个java类文件,也可以很轻松地执行类文件并得到结果。但在底层,JVM其实做了很多事情,java执行某个类的代码大致流程如下:jvm.dll是C++的,类似于java的jar包,毕竟JVM是用C写的。这里流程图面有很多东西,先放这占坑,后面学一原创 2021-05-09 00:11:32 · 233 阅读 · 0 评论