(二十七)java中数组是不是对象、数组初始化方式
一、
数组是指具有相同类型的数据的集合,他们一般有固定长度,并在内存中占据连续的空间
java中数组有自己的属性(比如length),也可以有一些方法可以被调用(比如clone)。根据对象的特点是封装了一些数据,同时提供了一些属性和方法,从这个角度讲,数组是对象
int[] a={1,2};
int[][] b=new int[2][4];
String[] s={"a","b"};
System.out.println(a.getClass().getName());//[I "["是一维 I是Integer
if(a instanceof int[]){
System.out.println("the type for a is int[]");//√
}
if(a instanceof Object){
System.out.println("the type for a is Object");//√
}
if(b instanceof int[][]){
System.out.println("the type for b is int[][]");//√
}
if(s instanceof String[]){
System.out.println("the type is String[]");//√
}
//数组不局限于普通类型,可以是任意类
Woman[] wos=new Woman[10];
二、数组初始化方式
①一维
//静态初始化
int[] intArr;
intArr = new int[]{1,2,3,4,5,9};//注意[]里没有数组长度
//在创建时,用new声明空间(动态初始化)
int[]a=new int[5];
a[0]=1;
//变形
int a[];
a=new int[3];
a[0]=1;
②二维
int a[][];
a=new int[][]{{1,2},{3,4}};
[]可以放在String后,也可以放在变量名后
String[] strArr = {"张三","李四","王二麻"};
String strArr[] = {"张三","李四","王二麻"};
int a[][]={{1,2},{3,4}};
注意:不要同时使用静态初始化和动态初始化,也就是说,不要在进行数组初始化时,既指定数组的长度,也为每个数组元素分配初始值。
一旦数组完成初始化,数组在内存中所占的空间将被固定下来,所以数组的长度将不可改变。
③任意维度
int[][] arr={{1},{1,2}};
int[][] a=new int[2][];//指定行
a[0]=new int[]{1,2};
a[1]=new int[]{3,4,5};
int[][] a=new int[][2];//Cannot specify an array dimension after an empty dimension