1.Java数组初始化的两种方法:
静态初始化:程序员在初始化数组时为数组每个元素赋值;
动态初始化:数组初始化时,程序员只指定数组的长度,由系统为每个元素赋初值。
public class ArrayInit { public static void main(String[] args) { //静态初始化数组:方法一 String cats[] = new String[] { "Tom","Sam","Mimi" }; //静态初始化数组:方法二 String dogs[] = {"Jimmy","Gougou","Doggy"}; //动态初始化数据 String books[] = new String[2]; books[0] = "Thinking in Java"; books[1] = "Effective Java"; System.out.println(cats.length); System.out.println(dogs.length); System.out.println(books.length); } }
Java数组是一种引用数据类型。数组变量并不是数组本身,而是指向堆内存中存放的数组对象。因此,可以改变一个数组变量所引用的数组。看下面这段代码:
public class ArrayInit { public static void main(String[] args) { //静态初始化数组:方法一 String cats[] = new String[] { "Tom","Sam","Mimi" }; //静态初始化数组:方法二 String dogs[] = {"Jimmy","Gougou","Doggy"}; //动态初始化数据 String books[] = new String[2]; books[0] = "Thinking in Java"; books[1] = "Effective Java"; cats = dogs; books = dogs; printArray(cats); printArray(dogs); printArray(books); } private static void printArray(String[] arr) { for(int i=0; i < arr.length; i++) { System.out.println(arr[i]); } } }
2.数组是否必须初始化
对于这个问题,关键在于要弄清楚数组变量和数组对象的差别。数组变量是存放在栈内存中的,数组对象是存放在堆内存中的。数组变量只是一个引用变量,他能够指向实际的数组对象。
所谓的数组初始化并非对数组变量初始化,而是对数组对象进行初始化。
本文详细介绍了Java数组的两种初始化方法:静态初始化和动态初始化。静态初始化允许程序员在创建数组时直接为每个元素赋值,而动态初始化则仅指定数组长度,由系统自动填充初始值。通过实例演示了这两种方法的应用,并解释了数组是否必须初始化的概念。
2143

被折叠的 条评论
为什么被折叠?



