java 数组声明与初始化

一维数组
1)   int[] a;   //声明,没有初始化

2)   int[] a=new int[5];   //初始化为默认值,int型为0,数组大小为5

  int[] a;    a=new int[5];    //正确,同2

3)   int[] a={1,2,3,4,5};   //初始化为给定值

       int[] a;   a={1,2,3,4,5};  //错误,数组常量只能在初始化操作中使用

4)   int[] a=new int[]{1,2,3,4,5};   //同(3)  

        int [] a;   a=new int[]{3,4,5,6,7};    

       int[] a=new int[5]{1,2,3,4,5};   //错误,如果提供了数组初始化操作,则不能定义维表达式

     5)  int a[];

     a[0]=1;   //错误,因为数组只有声明,没有初始化,不能赋值

     a[1]=2; 

二维数组

1)   int[][] a;  //声明,没有初始化

2)   int[][] a=new int[2][3];    //初始化为默认值,int型为0

3)   int[][] a={{1,2},{2,3},{3,4}};   //初始化为给定值 
     int[][] a={{1,2},{2,3},{3,4,5}};   //没有错,数组空间不是连续分配的,所以不要求每一维的大小相同

4)   int[][] a=new int[2][];
     a[0]=new int[3];  //a[0]其实就是一个数组
     a[1]=new int[4];  //每一维的大小可以不一样;

5)   int[][] a=new int[][]{{1,2},{2,3},{3,4,5}};   //同(3)  
     int[] a=new int[5]{{1,2},{2,3},{3,4,5}};  //错误,如果提供了数组初始化操作,则不能定义维表达式

int[][] a=newint[2][];
     a[0]={1,2,3,4,5};   //错误,数组常量只能在初始化操作中使用

6)   int[][] a=new int[2][];
     a[0][1]=1;   //错误,第二维没有初始化,不能赋值,java.lang.NullPointerException异常

总结: 1.二维就是数组的数组,里面的数组大小不要求一样
       2.不管一维还是二维,在使用前(赋值,访问)必须初始化,可以用new默认初始化,也可以用数组常量初始化

1.动态初始化:数组定义与为数组分配空间和赋值的操作分开进行;

2.静态初始化:在定义数字的同时就为数组元素分配空间并赋值;

3.默认初始化:数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐式初始化。


数组声明(创建基本类型和对象数组基本一样)

  1 :   静态初始化

                                 (1) 是使用 数据类型 + [] + 数组名称的方式。

                                 (2) 是使用 数组类型+ 数组名称+[] 的方式。

   2:使用new关键字创建数组,然后再分别为数组中的元素赋值,完成初始化操作。(注:如果数组元素类型为基本数据类型,在完成new 操作之后,数组中的元素会自动初始化为空值,可以直接使用,但是数组元素为引用类型,在完成new操作之后,没有给引用类型赋值,就直接使用数组中的元素,会产生运行时异常。)

  3:使用new关键字创建数组,同时为数组中的元素赋值,完成初始化操作。

复制代码
1         int[] a = new int[]{1,2,3}; //与第二种方法不同,这里new不需要指定数组的长度,数组长度由其后的初始化操作确定
3         int[] b = new int[]{
4                 new Integer(1), 
5                 new Integer(2);
7         };
复制代码

**
 * 
 * @author Demon 创建基本数据类型和对象数组基本类似 都会默认初始化
 * // int []p=new int [5]{1,3,4,5,7};
 * //错误,如果提供了数组初始化操作,则不能定义维表达式
 * 
 */
public class Initial {
	public static void main(String[] args) {
		// 创建非基本类型的数组,即创建引用数组(对象),默认初始化为null,不可使用空引用
		// 要将对象赋给引用才能使用
		//基本类型也会默认初始化
		System.out.println("Test default:");
		int ss[]=new int[4];
		 String s[]=new String[4];
		 for (int j=0;j<s.length;j++)
			 System.out.print(ss[j]+" ");
		 System.out.println();
		 for (int j=0;j<s.length;j++)
		 System.out.print(s[j]+" ");
		 System.out.println();

			print("Test one:");// 形式1
		int[] a1 = { 1, 2, 3, 4, 5 };
		Integer[] a11 = { new Integer(1), 2, 3, 4, 5 };
		for (int i = 0; i < 5; i++)
			System.out.print(a1[i] + " ");
		System.out.println();
		for (int i = 0; i < 5; i++) {
			System.out.print(a11[i] + " ");
		}
		System.out.println();

		print("Test two:");// 形式2
		int[] a2 = new int[5];
		Integer[] a22 = new Integer[5];
		for (int i = 0; i < 5; i++)
			System.out.print(a2[i] + " ");
		System.out.println();
		for (int i = 0; i < 5; i++) {
			a22[i] = i + 1;
			System.out.print(a22[i] + " ");
		}
		System.out.println();

		print("Test three:");// 形式3
		int[] c = new int[] { 1, 3, 4, 5, 6 };
		Integer[] c1 = new Integer[] { 1, 2, 3, 4, 5 };
		for (int j = 0; j < c.length; j++)
			System.out.print(c[j] + " ");
		System.out.println();
		for (int j = 0; j < c1.length; j++)
			System.out.print(c1[j] + " ");
		System.out.println();
		

	}

}

Output:

Test default:
0 0 0 0 
null null null null 
Test one:
1 2 3 4 5 
1 2 3 4 5 
Test two:
0 0 0 0 0 
1 2 3 4 5 
Test three:
1 3 4 5 6 
1 2 3 4 5 


  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值