数组概念
所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。
数组使我们在程序开发过程中经常会使用到的一个简单集合,所谓简单就是在同一个数组集合中所有元素必须是相同类型,不同的开发语言中都有数组这个概念,利用数组我们可以把一类变量进行收集在一起进行使用。
在Java中有一维数组和多维维数组这两种种数组结构,一维数组是我们经常使用的,下面就从使用的角度来介绍数组,以下内容以一位数组为例。
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.数组是否必须初始化
对于这个问题,关键在于要弄清楚数组变量和数组对象的差别。数组变量是存放在栈内存中的,数组对象是存放在堆内存中的。数组变量只是一个引用变量,他能够指向实际的数组对象。
所谓的数组初始化并非对数组变量初始化,而是对数组对象进行初始化。
时间: 2024-10-25 04:44:57