![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 79
cangchen@csdn
这个作者很懒,什么都没留下…
展开
-
JVM(六)垃圾回收
垃圾回收一,介绍二,垃圾标记阶段2.1,引用计数算法2.1.1,优点2.1.2,缺点:2.2,可达性分析算法(根搜索算法,追踪性垃圾收集)2.2.1,基本思路2.2.2,GC Roots(根对象集合)三,垃圾清除阶段3.1, 标记-清除算法(Mark-Sweep)3.1.1,标记3.1.2,清除3.1.3,优缺点3.2,复制(Copying)算法3.2.1,优缺点3.3,标记-压缩(标记整理,Mark-Compact)算法3.3.1,标记3.3.2,压缩3.3.3.,标记压缩算法和标记清除算法的区别3.3.原创 2022-03-05 19:00:13 · 857 阅读 · 0 评论 -
JVM(五)String的不可变性
String的不可变性一,字符串常量池1.1,常量池的使用1.2,StringTableSize二,字符串拼接2.1,拼接规则三,intern()的使用3.1,作用四,问题JDK8:private final char value[];JDK9:private final byte value[]; String内部真正存储数据的结构从char[]变为byte[],原因:实际情况下String是堆内存中出现最多的对象,且大量字符都只需要一个字节,造成大量空间被浪费。一,字符串常量池对字符串重原创 2022-02-18 11:28:47 · 399 阅读 · 0 评论 -
JVM(三)对象实例化
对象实例化一,创建对象的方式二,对象实例化步骤三,对象的内存布局四,图解一,创建对象的方式1,new2,反射的方式:Class 的newInstance()3,使用clone():类实现Cloneable接口,实现clone方法4,反序列化:从文件,从网络中获取一个对象的二进制流5,第三方库Objenesis二,对象实例化步骤1,判断对象对应的类是否加载,链接,初始化2,为对象分配内存。3,处理并非安全问题4,初始化分配到的空间5,设置对象的对象头6,执行init方法进行初始化原创 2022-02-16 10:46:18 · 369 阅读 · 0 评论 -
JVM(四)执行引擎
这里写目录标题一, 结构图二,概述三,执行引擎的工作过程一, 结构图二,概述虚拟机是一个相对于物理机的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器,缓存,指令集和操作系统层面上的,二虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行那些不用硬件直接支持的指令集格式。JVM的主要任务是负责装载字节码到齐内粗,但字节码并不直接运行在操作系统之上,因为字节码指令并不等价于本地机器指令,执行引擎(Execution原创 2022-02-16 11:12:37 · 467 阅读 · 0 评论 -
JVM(二)运行时数据区
运行时数据区一,说明二,程序计数器(PC寄存器)2.1,作用2.2,特点三,虚拟机栈3.1,作用3.2,特点(优点)3.3,栈可能出现的异常3.4,栈中存储的内容3.4.1,栈桢(Stack Frame)3.5, 栈运行原理3.6,栈桢中的内容3.6.1,局部变量表3.6.2,操作数栈(Operand stack)(或者表达式栈)3.6.3,动态链接(或指向运行时常量池的的方法引用)3.6.4,方法返回地址3.6.5,附加信息四,本地方法栈五,堆5.1,堆内存细分5.2,堆空间大小的设置5.3,年轻代5.4原创 2022-02-14 12:13:34 · 716 阅读 · 0 评论 -
JVM(一)类加载子系统
JVM与类加载子系统一,虚拟机二,java虚拟机三,类加载子系统3.1,类加载阶段3.2,链接阶段3.3,初始化阶段四,类加载器4.1,启动类加载器(引导类加载器Bootstrap ClassLoader)4.2,扩展类加载器(Extension ClassLoader)4.3,应用程序类加载器(系统类加载器,AppClassLoader)4.4,自定义类加载器五,双亲委派机制5.1 工作原理5.2,优势六,补充一,虚拟机虚拟机:一台虚拟的计算机,它是一款软件,用来执行一系列虚拟机算计指令。可分为系统虚原创 2022-02-08 12:22:40 · 1296 阅读 · 0 评论