![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 94
交流学习
木鱼非鸟
把“坚持”坚持成习惯
展开
-
JVM学习————字符串常量池(七)
文章目录StringTableString的基本特性String的内存分配String的基本操作字符串拼接操作inter()的使用面试题StringTable的垃圾回收G1中的String去重操作StringTableString的基本特性String:字符串,使用一对“ ”引起来表示String声明为final的,不可被继承String 实现了Serializable接口:表示字符串是支持序列化的;实现了Conparable接口:表示String可以比较大小JDK8即以前定原创 2021-05-17 17:33:28 · 118 阅读 · 2 评论 -
JVM学习————执行引擎(六)
文章目录执行引擎执行引擎的概述Java代码编译和执行过程机器码、指令、汇编语言机器码指令汇编语言高级语言字节码小结解释器JIT编译器分类HotSpot JVM的执行方式热点代码及探测方式热点探测功能方法调用计数器回边计数器HotSpot VM可以设置程序执行方式HotSpot VM中JIT分类分层编译策略C1和C2不同的优化策略小结最后执行引擎执行引擎的概述执行引擎是Java虚拟机核心的组成部分之一JVM的主要任务负责装载字节码到其内部,但字节码并不能直接在操作系统之上,因为字节码并非等价于本地机器原创 2021-05-17 17:31:45 · 146 阅读 · 0 评论 -
JVM学习————方法区(五)
文章目录方法区栈、堆、方法区的交互关系方法区的理解方法区的基本理解HotSpot中方法区的演进方法区概述设置方法区大小与OOM方法区的内部结构类型信息域信息方法信息non-final的类变量全局常量 static final常量池和运行时常量池常量池VS运行时常量池为什么要使用常量池?常量池中有什么?小结运行时常量池方法区使用举例方法区的演进细节永久代为什么要被元空间替换?StringTable为什么要调整?方法区的垃圾回收方法区栈、堆、方法区的交互关系方法区的理解尽管所有的方法区在逻辑上是属于原创 2021-05-17 17:29:30 · 138 阅读 · 1 评论 -
JVM学习————堆(四)
文章目录堆堆的核心概述设置堆内存大小与OOM年轻代与老年代图解对象分配过程Minor GC、Major GC、Full GC年轻代GC(Minor GC)触发机制老年代GC(Major GC/Full GC)触发机制Full GC触发机制堆空间分代思想内存分配策略(对象提升(promotion)规则)为对象分配内存:TLAB小结堆空间的参数设置堆是分配对象的唯一选择吗逃逸分析技术概述逃逸分析:代码优化代码优化之栈上分配代码优化之同步省略(消除)代码优化之标量替换本章小结堆堆的核心概述一个JVM实例只存原创 2021-05-17 17:13:59 · 121 阅读 · 0 评论 -
JVM学习————运行时数据区(三)
文章目录运行时数据区运行时数据区概述及线程程序计数器常见问题虚拟机栈虚拟机栈Java虚拟机栈是什么?栈的优点设置栈内存大小栈中存储什么?栈运行原理栈帧的内部结构局部变量表关于slot理解slot重复利用局部变量表操作数栈栈顶缓存技术动态链接(方法的调用【额外】)方法重写的本质虚方法表(动态语言和静态语言【额外】)方法返回地址一些附加信息【有关栈的面试题】举例栈溢出的情况?调整栈大小,就能保证不出现溢出吗?分配的栈内存越大越好吗?垃圾回收是否会涉及到虚拟机栈?方法中定义的局部变量是否线程安全?本地方法接口本地原创 2021-04-21 09:54:22 · 121 阅读 · 0 评论 -
JVM学习————类加载子系统(二)
文章目录类加载子系统类加载器ClassLoader角色类加载过程加载链接初始化类加载器的分类虚拟机自带的加载器启动类加载器(引导类加载器 Bootstrap ClassLoader)扩展类加载器应用程序类加载器用户自定义类加载器获取加载器的方法双亲委派机制沙箱安全机制类加载子系统类加载器负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识ClassLoader只负责class文件的加载,至于是否可以运行,则由Execution Engine决定加载类信息存放于一块原创 2021-04-04 09:36:43 · 107 阅读 · 0 评论 -
JVM学习————简介(一)
文章目录JVM简介JVM的整体结构区分栈的指令集基于栈和基于寄存器的JVM生命周期虚拟机的启动虚拟机的执行虚拟机的生命周期虚拟机的退出JVM发展历程Sun Classic VMExact VMSUN公司的 HotSpotBEA的 JRockitIBM的 J9其他类型虚拟机JVM简介所谓虚拟机就是一台虚拟的计算机,用来执行一系列计算机指令。分为系统虚拟机和程序虚拟机系统虚拟机:Visual Box,VMware,完全对物理计算机的仿真,提供一个可供运行的完整的操作系统的软件平台程序虚拟机:Java虚原创 2021-04-04 09:33:07 · 82 阅读 · 0 评论