小黄学JVM
文章平均质量分 96
贼爱学习的小黄
这个作者很懒,什么都没留下…
展开
-
第八篇章——垃圾回收器
本专栏学习内容来自以及有兴趣的小伙伴可以点击视频地址观看,也可以点击下载电子书有了虚拟机,就一定需要收集垃圾的机制,这就是Garbage Collection(GC),对应的产品(垃圾收集器)称为Garbage Collector(GC)两个都称为GC,本文中的GC理解为垃圾收集器。...原创 2022-08-30 15:21:09 · 353 阅读 · 0 评论 -
第七篇章——垃圾回收概念及相关算法
本位介绍了垃圾回收的相关概念以及垃圾回收算法原创 2022-08-25 14:29:29 · 202 阅读 · 0 评论 -
第六篇章——字符串常量池
本专栏学习内容来自以及有兴趣的小伙伴可以点击视频地址观看,也可以点击下载电子书。原创 2022-08-18 14:50:38 · 134 阅读 · 0 评论 -
第五篇章——执行引擎
执行引擎是Java虚拟机核心的组成部分之一“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约的定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式。...原创 2022-08-15 22:35:05 · 188 阅读 · 0 评论 -
第四篇章:运行时数据区——共享空间
本文介绍了运行时数据区中的线程共享区域:堆、方法区,以及一些运行时数据区的面试题原创 2022-07-20 11:07:30 · 180 阅读 · 0 评论 -
第三篇章:运行时数据区——独立空间
JVM所有的步骤其实可以理解为厨师炒菜JVM在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是以来用户线程的启动和结束而建立和销毁。JVM中的运行时数据区分为以下五块内容如下图所示,JVM支持多线程,在多线程的情况下,方法区和堆中的对象是共享的,程序计数器、本地方法栈和虚拟机栈是每个线程各拥有一份的。PC寄存器是一块很小的内存空间,几乎可以忽略不计,也是运行速度最快的存储区域在JVM规范中,原创 2022-07-13 09:22:31 · 148 阅读 · 0 评论 -
第二篇章:类加载子系统
如下图所示,类的加载过程分为三步,分别是加载——链接——初始化目的在于确保.class文件的字节流中包含信息符合当前虚拟机要求,保证被加载类的正确性,不会危害虚拟机自身安全。如下图所示,所有能够被JVM所识别的字节码文件的起始都是,可以亲切的称呼它为“咖啡宝贝”为类变量分配内存并且设置该类型的默认初始值,比如int类型为0,引用类型为null。需要注意的是这里不包含用final修饰的static,因为final在编译时就会分配了,准备阶段会显式初始化。不会为实例变量设置初始值,类变量会分配在方法区中,而实例原创 2022-07-05 11:23:29 · 330 阅读 · 0 评论 -
第一篇章:JVM与Java体系结构
从某些程度上来讲,Java虚拟机是比Java语言更成功的软件,这真正的让Java语言实现了一次编译,到处运行下图描述了JVM所处的位置,熟悉Java的小伙伴都知道,.java文件通过编译成,class文件,也就是我们所说的字节码文件,而JVM对字节码文件进行一些列的操作转换成各个操作系统所能看懂的汇编语言,从而执行命令。JVM是运行在操作系统上的,跟硬件没有直接的交互在面试中经常被问到JDK,JRE两者有什么区别如果单单想要运行Java程序,只需要安装JRE即可,而从事Java开发必须要安装JDK,JDK可原创 2022-07-01 16:34:01 · 394 阅读 · 0 评论