0
点赞
收藏
分享

微信扫一扫

Java数组的内存结构


Java虚拟机的内存划分

为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。

Java数组的内存结构_数组

数组在内存中的存储

public static void main(String[] args) {
int[] arr = new int[3];
System.out.println(arr);//[I@5f150435
}

以上方法执行,输出的结果是[I@5f150435,这个是什么呢?是数组在内存中的地址。new出来的内容,都是在堆

内存中存储的,而方法中的变量arr保存的是数组的地址。

Java数组的内存结构_空指针异常_02

数组中空指针异常

public static void main(String[] args) {
int[] arr = {1,2,3};
arr = null;
System.out.println(arr[0]);

arr = null 这行代码,意味着变量arr将不会在保存数组的内存地址,也就不允许再操作数组了,因此运行的时候会抛出 NullPointerException 空指针异常。在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修
改我们编写的代码。

空指针异常在内存图中的表现

Java数组的内存结构_http_03

新创建一个公众号 Rockey小何同学 想相互交流的同学可以关注一下哈! 感谢支持!


举报

相关推荐

0 条评论