数组内存分配
内存分配
内存是计算机中的重要原件,用于临时保存计算机即将执行的程序和即将调用的文件,Java虚拟机要运行程序,必须要对内存进行空间的分配和管理。
java中的内存分配
1.为了提高运算效率 ,根据每一片区域特定的处理数据的方式和内存管理方式,将空间进行了不同区域的划分
2.在JAVA的内存分配中需要使用:栈内存和堆内存
区域名称 | 作用 |
---|---|
寄存器 | 为CPU所使用 |
本地方法栈 | JVM在使用操作系统功能的时候使用,和我们开发无关。 |
方法区 | 存储可以运行的class文件。 |
堆内存 | 存储对象或者数组,new来创建的,都存储在堆内存。 |
方法栈 | 方法运行时使用的内存,比如main方法运行,进入方法栈中执行。 |
**栈内存: **
存储局部变量值在堆内存中的地址
定义在方法中的变量,例如arr 使用完毕,立即消失
堆内存:
存储new出来的内容(实体,对象)数组在初始化时,会为存储空间添加默认值
1.整数—>0
2.浮点数–>0.0
3.布尔–>false
4.字符–>空字符
5.引用数据类型–>null
每一个new出来的东西都有一个地址值,使用完毕,会在垃圾回收器闲时回收
内存分配实例详解
package com.ningxiao.day5;
public class Demo1 {
public static void main(String[] args) {
int[] arr = new int[3];
// 输出数组名及元素
System.out.println(arr); // [I@880ec60
System.out.println(arr[0]);// 0
System.out.println(arr[1]);// 0
System.out.println(arr[2]);// 0
arr[0] = 100;
arr[1] = 200;
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
}
}