黑马程序员————————Java数组
2015-12-08 12:43
465 查看
[b]数组概念[/b]
所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。
数组使我们在程序开发过程中经常会使用到的一个简单集合,所谓简单就是在同一个数组集合中所有元素必须是相同类型,不同的开发语言中都有数组这个概念,利用数组我们可以把一类变量进行收集在一起进行使用。
在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.数组是否必须初始化
对于这个问题,关键在于要弄清楚数组变量和数组对象的差别。数组变量是存放在栈内存中的,数组对象是存放在堆内存中的。数组变量只是一个引用变量,他能够指向实际的数组对象。
所谓的数组初始化并非对数组变量初始化,而是对数组对象进行初始化。
所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。
数组使我们在程序开发过程中经常会使用到的一个简单集合,所谓简单就是在同一个数组集合中所有元素必须是相同类型,不同的开发语言中都有数组这个概念,利用数组我们可以把一类变量进行收集在一起进行使用。
在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.数组是否必须初始化
对于这个问题,关键在于要弄清楚数组变量和数组对象的差别。数组变量是存放在栈内存中的,数组对象是存放在堆内存中的。数组变量只是一个引用变量,他能够指向实际的数组对象。
所谓的数组初始化并非对数组变量初始化,而是对数组对象进行初始化。
相关文章推荐
- 黑马程序员————集合之概念(一)
- 黑马程序员————Java运算符
- 黑马程序员——封装、继承、多态
- Java线程面试题 Top 50
- 黑马程序员——————进制的转换和数据类型
- 黑马程序员——Java重点基础之多线程(一)
- 论程序员的自我修养
- 程序员做业余项目的重要性
- 为什么程序员的业余项目大多都死了?
- 面试算法——4.栈的反转
- 面试算法——6.Mingo Game
- 传智播客展望2016年大学毕业生求职现状
- 黑马程序员——Java重点基础之IO流(三)
- Java 程序员们值得一看的好书推荐[转载]
- 面试最后如何向面试官发问?
- <黑马程序员> 第九篇:反射
- 黑马程序员-C学习日记-数组
- 如何让你的程序员不要厌倦工作?
- 一位求职者发来的感谢信
- 慢腾腾成长的程序员