1、数组内存原理
1.1、内存
1.1.1、什么是内存
内存是计算机临时存储数据的区域,我们会将内存在逻辑上分配成不同区域方便对数据进行分类高效管理。
1.1.2、内存分区
**寄存器:**最快的存储区域直接与CPU打交道,是程序员无法控制的计算区域。
**堆栈:**又叫栈,仅次于寄存器。用于存储局部变量。
**堆:**通用内存池,用于存放所有引用数据类型对象。每个对象均有地址,且有默认初始化值。
**常量存储区域:**用于存放永远不会被改变的值。
1.2、JAVA虚拟机内存
1.2.1、什么是JAVA虚拟机内存
Java 程序在运行时,需要在内存中的分配空间。
为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
1.2.2、JAVA虚拟机内存分区
堆栈:又叫栈,仅次于寄存器。用于存储局部变量(局部变量是定义在方法中或者语句中的变量,局部变量使用完毕,立即回收)
**堆:**通用内存池,用于存放所有引用数据类型对象。每个对象均有地址,且有默认初始化值,都是new出来的东西。(每一个对象都有首地址值,是一个十六进制的地址,每一个对象内的数据都有默认值。使用完毕后,会被垃圾回收器空闲的时候回收)
方法区:(方法区)又叫静态区,存放所有的class和静态变量,方法区存放的是整个程序中唯一的元素,如class和static变量。
本地方法区: (和系统相关)
寄存器: (给CPU使用)最快的存储区域直接与CPU打交道,是程序员无法控制的计算区域