初识JVM内存区域划分

JVM内存区域划分为5块

.java---------编译 javac --------->.class字节码文件(二进制文件)---------加载字节码到JVM中------->JVM

Java虚拟机栈 平时学习中所说的栈,重点是存储局部变量表,我们创建的 int[ ] array 这样的存储地址的引用就是在这里保存
本地方法栈
用来存储本地方法的变量
什么是本地方法变量:底层是C/C++代码实现的方法,有一个特性,被native所修饰。特点:速度快
存储对象,new int[ ] array = {1,2,3,4,5} -----》new int[ ]{1,2,3,4,5}
方法区
程序计数器 例如存放,下一条指令

两个引用指向同一个对象:通过一个引用,修改这个对象的值,那么通过另一个引用来访问这个对象的地址的时候,值也发生了变化
局部变量和引用保存在栈上,new出的对象保存在堆上
堆的空间非常大,栈的空间比较小
堆是整个JVM共享一个,而栈每个线程具有一份(一个Java程序中可能存在多个栈)

你可能感兴趣的:(笔记)