概念
内存是计算机中的重要原件,临时存储区域,作用是运行程序。
我们编写的程序是存放在硬盘中的,在硬盘中的程序是不会运行的,必须放进内存中才能运行,运行完毕后会清空内存。
Java虚拟机要运行程序,必须要对内存进行空间的分配和管理。
内存划分
1)栈(Stack)
存放方法中的局部变量
方法运行在栈中
局部变量:方法的参数,或者方法内部的变量
作用域:数据一旦超出作用域,立即从栈内存中消失
2)堆(Heap)
存放new出的内容
堆内存中的数据均有16进制的地址值且有默认值
3)方法区(Method Area)
存储**.class**相关信息,包含方法的信息
4)本地方法栈(Native Method Stack)
与操作系统相关
5)寄存器(pc Register)
与cpu相关
示例
1)数组:两个变量指向一个数组
// 定义数组,存储3个元素
int[] arr = new int[3];
//数组索引进行赋值
arr[0] = 5;
arr[1] = 6;
arr[2] = 7;
//输出3个索引上的元素值
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
//定义数组变量arr2,将arr的地址赋值给arr2
int[] arr2 = arr;
arr2[1] = 9;
System.out.println(arr[1]);