
JVM
文章平均质量分 94
对JVM中的知识点进行总结和归纳
Fon |
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
深入JVM了解Java对象实例化过程
加载类元信息为对象分配内存处理并发问题属性的默认初始化(零值初始化)设置对象头信息属性的显示初始化、代码块中初始化、构造器中初始化在没有继承的条件下,实例化一个对象初始化的顺序为:静态成员的初始化静态初始化块成员的初始化初始化块构造器这里面需要注意的是【静态部分只在类加载时初始化一次】如果有继承关系,那么实例化子类对象的初始化顺序为:父类静态成员的初始化父类静态代码块初始化子类静态成员的初始化子类静态代码块初始化父类成员的初始化父类初始化块父类构造器。原创 2023-04-24 11:12:40 · 2835 阅读 · 0 评论 -
JVM中的垃圾回收概念及其基础算法说明
关于生活中的垃圾,就是失去使用价值、 无法利用的废弃物品,是物质循环的重要环节。Java中也是这样,垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。如果不及时对内存中的垃圾进行清理,那么,这些垃圾对象所占的内存空间会一直保留到应用程序的结束,被保留的空间无法被其它对象使用,甚至可能导致内存溢出。关于Java中垃圾收集有三个经典问题:● 哪些内存需要回收?● 什么时候回收?● 如何回收?原创 2023-04-23 18:03:55 · 2367 阅读 · 0 评论 -
JVM中StringTable详解
String在JDK9中存储结构变更:官方网站说明:JEP 254: Compact Strings (java.net)对官方中的内容说明进行翻译:动机目前类的实现将字符存储在一个数组中,每个字符使用两个字节(16位)。从许多不同的应用中收集到的数据表明,字符串是堆使用的主要组成部分,此外,大多数字符串对象只包含Latin-1字符。这些字符只需要一个字节的存储空间,因此这些字符串对象的内部字符数组中有一半的空间没有被使用。说明我们建议将类的内部表示方法从字符数组改为字节数组加编码标志域。新的Str原创 2023-04-21 10:31:17 · 2230 阅读 · 0 评论 -
JVM前端编译期所做的优化(语法糖)概括
首先我们来看一组图:对于当前也是这样探究的,先用写好的Java文件通过编译器编译成class文件。然后对class进行反编译,最后对比Java文件和反编译之后的文件就知道前端编译器做了什么优化。转载 2023-04-21 09:29:25 · 1478 阅读 · 0 评论 -
JVM内存管理之本地方法栈分析与理解
在定义一个native method时,并不提供实现体(有些像定义一个Java interface),因为其实现体是有非Java语言在外面实现的。本地接口的作用就是融合不同的编程语言为Java所用,他的初衷是融合C/C++程序。原创 2022-05-26 09:45:50 · 1748 阅读 · 0 评论 -
JVM内存管理之虚拟机栈的理解与分析
针对于内容JVM运行时数据区概述和总结对JVM中运行时数据区进行了一个整体的介绍,本博文是对运行时数据区中的虚.原创 2022-05-26 09:02:54 · 1824 阅读 · 0 评论 -
JVM运行时数据区中程序计数器
JVM中的程序计数器(Program Counter Register)中,Register的命名来源于CPU的寄存器,我们知道寄存器存储指令相关的现场信息。CPU只有把数据转载到寄存器中才能运行。这里的PC寄存器不是我们实际的物理电脑上的一个寄存器,他是虚拟机对物理机器中的一个模拟实现。可以理解为是JAVA程序在运行过程中的一个“钩子”,用来保存程序执行过程中的上下条指令。JVM中的寄存器是对物理寄存器的一个模拟实现。原创 2021-12-25 00:00:04 · 1745 阅读 · 0 评论 -
JVM运行时数据区概述和总结
本文主要讨论的是JVM的运行时数据区,对Java虚拟机在执行Java程序过程中会把他管理的内存化的几个区进行介绍。博主认为,运行时数据区突出的就是运行二字,所做的工作时把一些字节码中的常量,变量,方法调用等等的信息都分布到不同的内存区域去便于管理。把一些必要的数据等等运行条件准备好之后,构成了执行引擎执行的基础。————————————————原创 2021-12-24 23:53:58 · 2121 阅读 · 0 评论 -
谈谈类加载器中的双亲委派机制
JAVA虚拟机对Class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的class文件加载到内存生成class对象,而且加载某个类的class文件时,JAVA虚拟机采用的是双亲委派模式,即是吧请求交给父类处理,是一种任务委派模式。原创 2021-12-21 10:55:39 · 1562 阅读 · 1 评论 -
JVM中类加载器的分类理解与剖析
VM支持两种类型的加载器,分别是引导类加载器(BootstrapClassLoader)和自定义类加载器(User-Defined ClassLoader)。但是,从概念上来说,自定义类加载器一般指的是程序中开发人员自定义的一类类加载器,但是JAVA虚拟机规范中确没有像我们这样定义,而是将所有派生于抽象类ClassLoader的类加载器都规划为自定义类加载器。原创 2021-12-21 09:58:25 · 2039 阅读 · 0 评论 -
JVM类加载子系统的类加载过程剖析与总结
对于ClassLoader顾名思义,只是负责class文件的加载,至于是否能够执行,则由Execution执行。只要是加载不出问题,子系统就不会进行报错。对于已经加载的类信息放在运行时数据区中的方法去内存空间中。(JDK8以后被称为元空间)。 出了类的信息之外,方法去还会存放运行时的常量池信息,可能还包含字符串的字面量和数字常量(这部分常量信息是class文件中常量池部分的内存映射)。原创 2021-12-20 23:40:06 · 2494 阅读 · 0 评论 -
JVM和JAVA体系结构关系概要总结
前言jvm可以满足你,面试的需要,项目管理、调优的需求。加上如果你有一定的极客精神,大把的时间。想了解垃圾回收算法、JIT、底层原理,就可以学一, JAVA和JVM简介1.1 生态圈Java是目前应用最为广泛的软件开发平台之一。作为一个平台,那么对于java中的虚拟机扮演着十分重要的地位。换句话说,java可能会die,但是虚拟机可能不会。如果真的有一天java这门语言被淘汰了,有可能被运行在java虚拟机上的其他语言淘汰,但虚拟机不会。Groovy, Scala,JRuby,Kotlin原创 2021-12-20 15:17:22 · 2606 阅读 · 0 评论