![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 66
学习jvm的笔记及其个人感悟
m0_38013741
这个作者很懒,什么都没留下…
展开
-
JVM内存结构-方法区
1.定义保存在着被加载过的每一个类的信息;包括类的成员变量,方法数据,成员方法以及构造器方法的代码部分,类的构造器。这些信息由类加载器在加载类的时候,从类的源文件中抽取出来;static变量信息也保存在方法区中;方法区是线程共享的;当有多个线程都用到一个类的时候,而这个类还未被加载,则应该只有一个线程去加载类,让其他线程等待;方法区在虚拟机启动时被创建,逻辑上是堆的一部分,但具体实现上不同的jvm厂商实现方式是不一样的。例如1.8之前Oracle厂商的方法区是放在堆内存中的,称为永久代,但.原创 2021-09-02 10:29:53 · 144 阅读 · 0 评论 -
JVM内存结构-堆
1.定义堆是Java虚拟机所管理的内存中最大的一块存储区域。堆内存被所有线程共享。主要存放使用new关键字创建的对象。所有对象实例以及数组都要在堆上分配。垃圾收集器就是根据GC算法,收集堆上对象所占用的内存空间(收集的是对象占用的空间而不是对象本身)一个JVM实例只存在一个堆内存,堆内存的大小是可调节的。类加载器读取类文件后,需要把类、方法、常量、变量放在堆内存中,保存所有引用类型的真实信息,以方便执行器指向,堆内存分为三个部分:年轻代、老年代、永久代。2.特点Heap堆通过new关键字原创 2021-08-31 10:15:35 · 307 阅读 · 0 评论 -
JVM内存结构-本地方法栈
Java 虚拟机在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域,分别是:程序计数器(PC)、Java虚拟机栈(VMS)、本地方法栈(NMS)、Java堆(Heap)、方法区(MA)。其中方法区中有一个比较重要的区域叫做运行时常量池。其中程序计数器、虚拟机栈和本地方法栈都是线程独有的,而堆和方法区是线程之间共有的。1.本地方法栈本地方法栈与 Java 虚拟机栈类似,它们之间的区别只不过是本地方法栈为本地方法服务,保存的是本地方法要执行所需的...原创 2021-08-30 10:02:29 · 684 阅读 · 0 评论 -
JVM内存结构 - 栈
1 栈栈是一种“操作受限”的线性表,只涉及在一端插入和删除数据,并且满足后进先出、先进后出的特性。2 Java虚拟机栈2.1 定义Java 虚拟机栈描述的是 Java 方法执行的内存模型,用于存储栈帧。线程启动时会创建虚拟机栈,每个方法在执行时会在虚拟机栈中创建一个栈帧,用于存储局部变量表、操作数栈、动态连接、方法返回地址、附加信息等信息。每个方法从调用到执行完成的过程,就对应着一个栈帧在虚拟机栈中的入栈(压栈)到出栈(弹栈)的过程。每个线程运行需要的...原创 2021-08-10 11:31:44 · 261 阅读 · 0 评论 -
JVM内存结构 - 程序计数器
1 定义全称:Program Counter Register 程序计数器(寄存器)(1)一块较小的内存空间,它的作用是当前线程所执行的字节码行号指示器(记录下一条jvm指令的执行地址)(2)一个处理器只会执行一条线程中的指令。因此,为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器(线程私有)(3)唯一一个在jvm中没有规定任何OutOfMemoryError的区域2 作用记住下一条JVM指令的执行地址。执行步骤:java源码不能直接执行,必须.原创 2021-08-08 11:07:46 · 147 阅读 · 0 评论 -
JVM初识
定义Java Vritual Machine -java程序的运行环境(java二进制字节码的运行环境)是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。类似于一台小电脑运行在windows或者linux这些操作系统环境下。它直接和操作系统进行交互,与硬件不直接交互,可以帮我们完成和硬件进行交互的工作。优点一次编写,到处运行JVM屏蔽了字节码和底层操作之间的联系。自动内存管理,垃圾回收功能 当时的竞争对手主...原创 2021-08-07 10:57:02 · 59 阅读 · 0 评论