数组(array)
数组(array)
单词
length 长度 | array 数组 | explain 解释 | index 索引;指数 | bound 界限;肯定的
程序
1 public class ArrayExplain { 2 3 public static void main(String[] args) { 4 5 int[] a;//声明一个数组(栈:存储指向堆的地址) 6 a = new int[10];//创建一个数组(堆) 7 8 int[] b = {1,2,3,4,5,6}; //静态初始化 9 int[] b = new int[10]; //动态初始化,包含了默认初始化 10 11 //为数组元素赋值,不初始化就为默认值 12 for (int i=0; i<a.length; i++) { 13 a[i] = i; 14 } 15 } 16 }
数组的定义
-
相同类型数据的有序集合
-
四个基本特点
-
创建后长度固定。(越界报:ArrayIndexOutofBounds)
-
其中元素必须是相同类型。
-
数组中元素可以是任何类型,包括基本类型和引用类型。
-
数组变量属引用类型,数组可以看成对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中的对象是在堆中的,因此数组无论是保存原始类型还是其他类型,数组对象本身是在堆中的。
java内存
-
堆
· 存放new的对象和数组
·可以被所有的线程共享,不会存放别的对象引用
-
栈
·存放基本变量类型(包含这个基本类型的数值)
·引用对象的变量(存放引用在堆里面的地址)
-
方法区
·可以被所有的线程共享
·包含了所有的class和static变量

数组的初始化
-
数组是引用类型,元素相当与类的实例变量,所以一分配空间就会被隐式初始化。
多维数组
程序演示
1 public class TwoArray { 2 3 public static void main(String[] args) { 4 5 int[][] a = {{1,2},{2,3},{3,4},{4,5,6}}; 6 7 System.out.println(a[3][0]); 8 System.out.println(a.length);//显示的是有几个模块 9 System.out.println(a[2].length); 10 System.out.println(a[3].length);//模块中有几个元素 11 12 for (int i = 0; i < a.length; i++) { 13 for (int j = 0; j < a[i].length; j++) { 14 System.out.print(a[i][j]+"\t"); 15 } 16 } 17 } 18 }
foreach遍历数组
结构
1 /* 2 for (类型 名称: 数组) { 3 操作语句... 4 } 5 */ 6 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// 7 for (int x : a) { 8 System.out.println(x); 9 }
遍历(一维/二维)数组
1 //一维 2 for (int x : a) { 3 System.out.println(x); 4 } 5 6 //二维 7 for (int[] ints : a) { //创建一个整型数组ints并且将a中的模块地址存到数组ints中 8 for (int anInt : ints) { //现在就和遍历一维数组一样了 9 System.out.print(anInt + " "); 10 } 11 System.out.println(); 12 }
注意点
-
length与length()的区别
-
length(属性)计算数组(array)的长度。
-
length() (方法)计算字符(String)的长度。
仅个人理解,有不对的希望可以告诉我一下[拜托][拜托][拜托]。

浙公网安备 33010602011771号