JVM
文章平均质量分 83
对Java虚拟机的专栏
ZytheMoon
努力成为自己想要的人
展开
-
JVM的常量池:String.intern()的理解以及字符串常量池解析
大致过程:在该类的class常量池中会存放一些符号引用,在类加载之后,会将class常量池中存放的符号引用加载到内存中的运行时常量池中,然后经过验证,准备阶段之后,会在堆中生成驻留字符串的实例对象(也就是””括起来的),然后将这个对象的引用存到全局String Pool中,也就是StringTable中,最后在解析阶段,要把运行时常量池中的符号引用替换成直接引用,通过直接查询Str...原创 2020-04-30 15:24:50 · 629 阅读 · 2 评论 -
JVM的常量池:什么是字符串常量池、运行时常量池、Class常量池
在 JAVA 语言中有8中基本类型和一种比较特殊的类型String。这些类型为了使他们在运行过程中速度更快,更节省内存,都提供了一种常量池的概念。常量池就类似一个JAVA系统级别提供的缓存。首先,比较有名的常量池有两个,分别是运行时常量池和静态常量池,但是目前可以被称为常量池的有三个:字符串常量池、运行时常量池、静态常量池。这三个常量池的变动的关键时刻是在JDK1.7的时候:(1)...原创 2020-04-30 14:52:14 · 516 阅读 · 0 评论 -
java:JVM的内存结构和布局
class文件由JVM中的类加载器加载各个类的字节码文件,加载完毕之后会交由JVM执行引擎执行。在整个程序执行过程中,JVM会用一段内存空间来存储程序执行期间用到的数据和相关信息,这段内存空间被称作为运行时数据区,也就是JVM内存结构。java内存结构包括虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。方法区和堆是所有线程共享的内存区域;而java栈、本地方法栈和程序员计数器是运行是线程私有...原创 2020-04-27 14:23:05 · 309 阅读 · 0 评论 -
什么是OutOfMemory以及各区内存溢出
在java虚拟机的规范描述中,除了程序计数器外虚拟机内存的其他几个运行时区域都会发生OutOfMemoryError异常的可能。在Java语言里,可作为GC Roots对象的包括如下几种: a.虚拟机栈(栈桢中的本地变量表)中的引用的对象 b.方法区中的类静态属性引用的对象 c.方法区中的常量引用的对象 d.本地方法栈中JNI的引用的对象...原创 2018-10-06 21:36:55 · 1079 阅读 · 0 评论 -
什么是Java虚拟机?为什么可以被称作是“平台无关的编程语言”?
java虚拟机是整个java平台的基石,是实现平台无关性的基础,是用以实现硬件无关与系统无关的关键部分。 java作为编译代码的运行平台,Java虚拟机是一个执行class格式文件的虚拟机进程。拥有自己的指令集(字节码)和各种运行时内存区域,通过要求Class文件符合强制性语法以及特定的结构来保障用户机器不受恶意代码的侵害,只要符合class文件格式就可以在java虚...原创 2020-04-04 12:43:27 · 554 阅读 · 0 评论 -
java虚拟机发展史
从1996年Sun公司发布的JDK1.0包含的Sun Classic VM开始就涌现过各种虚拟机。以下进行一些简单介绍,通过这些介绍可以了解到虚拟机的功能在朝着哪个方向进性发展。 Sun Classic/Exact VM:这款虚拟机的技术很原始,是世界上第一款商用的java虚拟机,只能使用纯解释的方式来执行,如果要使用JIT编译器就必须进行外挂,但是如果外挂了JIT编译器它就会完全接手虚拟...原创 2018-10-01 15:30:12 · 454 阅读 · 0 评论 -
JVM的内存分配策略
1、内存分配有哪些策略从编译原理讲起,不同的开发环境、开发语言会有不同的策略。一般程序运行时有三种内存分配策略:静态的、栈式的、堆式的。静态存储分配:是指在编译时就能够确定每个数据目标在运行时的存储空间需求,所以在编译时就可以给它们分配固定的内存空间。这种分配策略要求程序代码中不允许有可变数据结构的存在,也不允许有嵌套或者递归的结构出现,因为它们都会导致编译程序无法计算准确的存储空间...原创 2018-10-10 15:50:35 · 512 阅读 · 3 评论 -
关于java内存模型的浅析
首先本篇介绍的是java内存模型而不是java的内存结构,这两个是不同的,很多人将这两个概念搞混。所以就先进行介绍一下java内存结构,这样可以和内存模型有一些区分: java内存结构 由Java虚拟机规范定义。描述的是Java程序执行过程中,由JVM管理的不同数据区域。各个区域有其特定的功能。如下: 1、以上是Java虚拟机规范...原创 2019-05-06 18:12:57 · 257 阅读 · 0 评论