JVM-常量池

JVM-常量池JVM中的常量池通常是对静态常量池、字符串常量池、运行时常量池的总称静态常量池存在于.class文件中,存放类的版本、字段、方法、接口的信息,同时还存放俩大常量:字面量(如字符串、申明为final类型的值)、符号引用,这部分将在类加载后进入方法区的运行时常量池存放。符号引用包括:类和接


简单学习下Java的编译过程

简单学习下Java编译过程准备一个Demopublic class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); }}打开


JVM运行时数据区-方法区.md

JVM运行时数据区-方法区方法区和Java堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、域信息、方法信息、常量、静态变量、即时编译器编译后的代码等数据***。虽然Java虚拟机规范把方法区描述为堆的一个逻辑部分,但是它却有一个别名叫做Non-Heap(非堆),目的应该是与Jav


JVM运行时数据区-堆

JVM运行时数据区-堆核心概念:可以处于物理上不连续的内存空间,只需逻辑上连续即可。一个JVM进程中堆是唯一的,一个进程有多个线程,所以堆是可以被一个JVM进程中的多个线程共享,也就是说堆是线程不安全的。也就是堆内存是被线程共享的,但其中一小块区域TLAB(私有缓存区)是线程私有的,我在后面详细学习


JVM运行时数据区-本地方法栈

JVM运行时数据区-本地方法栈本地方法栈和虚拟机栈发挥的作用非常相识,只不过本地方发栈执行的是本地Native方法本地方法栈也是线程私有的本地方法可以通过本地方法接口访问运行时数据区。可以直接使用本地处理器中的寄存器。


JVM运行时数据区虚拟机栈

Java虚拟机栈虚拟机栈概述由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。 优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。Java虚拟机栈是线程私有的,其生命周期与线程相同。每个方法在执行的同时都会创