阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第7章:数组的定义与使用:课时26:数组引用传递分析
程序员文章站
2024-02-26 18:45:22
...
通过数组的基本定义可以发现,在数组使用的过程之中依然需要关键字new进行内存空间的开辟,同理,那么这里面也一定存在有内存的关系匹配。
范例:定义一个简单代码
public class ArrayDemo {
public static void main (String args []) {
// 使用数组的静态初始化
int data [] = new int [3] ;
data [0] = 10 ; // 为数组设置内容
data [1] = 20 ; // 为数组设置内容
data [2] = 30 ; // 为数组设置内容
for (int x = 0; x < data.length; x ++){
System.out.println(data[x]) ;
}
}
}
以上面的程序为例下面要进行一次内存的简单分析。
但是数组本身毕竟是属于引用数据类型,那么既然是引用数据类型,就一定会发生引用传递,引用应该还是按照传统的方式那样:一个堆内存可以被多个栈内存所指向。
范例:观察数组引用
public class ArrayDemo {
public static void main (String args []) {
int data [] = new int [] {10,20,30} ; // 静态初始化
int temp [] = data ; // 引用传递
temp [0] = 99 ;
for (int x = 0; x < data.length; x ++){
System.out.println(data[x]) ;
}
}
}
下面通过此程序进行内存分析。
由于数组属于引用类型,所以一定要为其开辟内存空间之后才可以使用,如果现在使用了未开辟堆内存空间的数组则一定会出现“NullPointerException”异常。
public class ArrayDemo {
public static void main (String args []) {
int data [] = null ;
System.out.println(data[0]) ;
}
}
必须提供有实例化对象才可以使用数组的操作形式进行数组的操作。
上一篇: 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第7章:数组的定义与使用:课时29:数组与方法
下一篇: 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第7章:数组的定义与使用:课时34:对象数组
推荐阅读
-
阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第20章:接口的定义与使用:课时91:代理设计模式
-
阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第7章:数组的定义与使用:课时29:数组与方法
-
阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第7章:数组的定义与使用:课时26:数组引用传递分析
-
阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第7章:数组的定义与使用:课时34:对象数组
-
阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第30章:链表的定义与使用:课时139:根据索引取得数据
-
阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第27章:异常的捕获及处理:课时119:异常处理流程
-
阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第23章:包的定义及使用:课时104:生成jar文件
-
阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第30章:链表的定义与使用:课时134:链表实现简介