java数组

java数组的静态和动态的初始化及格式和注意事项

/**
 * java数组是静态的,必须经过初始化后才能使用,并且一旦初始化指定了数组的长度,该长度是不可变的。
 * 
 * 
 * 
 *  A:数组静态初始化的格式:
 * 	格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
 * 		初始化时显示指定每个数组元素的初始值,由系统决定数组的长度
 * 	简化格式:
 * 		数据类型[] 数组名 = {元素1,元素2,…};
 * 
 *  B:java数组动态初始化
 *  动态初始化:就是与静态初始化相对的,
 *  其实动态初始化就是在初始化的时候指定数组长度(这时已经分配内存)
 *  
 *  
 *  注意:所有的局部变量都是放在栈内存中保存的,
 *  不管其实基本类型的变量还是引用类型的变量,都是存储在各自的方法栈区中;
 *  但引用类型变量所引用的对象(包括数据,普通java对象)则总是存储在堆内存中。
 *  
 *  Java中数组是引用变量(类似于C语言中的指针变量),我们初始化操作后,
 *  就是将它的引用指向了堆内存中开辟的指定长度的连续内存空间。
 *  所以我们真正所做的初始化是将栈中数组变量指向有效的内存。
 *  
 *  
 *  数组相关的两个异常
 *   a:ArrayIndexOutOfBoundsException:数组索引越界异常
 *      原因:你访问了不存在的索引。
 *  b:NullPointerException:空指针异常
 * 		原因:数组已经不在指向堆内存了。而你还用数组名去访问元素。
 * 		int[] arr = {1,2,3};
 * 		arr = null;
 * 		System.out.println(arr[0]);
 */
public class f {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
		int[] arr = new int[]{11,22,33,44,55};
		//int[] arr = new int[5]{11,22,33,44,55};	//不允许动静结合
		//Cannot define dimension expressions when an array initializer is provided
		int[] arr2 = {11,22,33,44,55};			//静态初始化的简写形式

		int[] arr3;							//声明数组引用
		arr = new int[]{11,22,33,44,55};

		int[] arr4;
		//arr2 = {11,22,33,44,55};				//简写形式声明和赋值要在同一行
		//Array constants can only be used in initializers
		System.out.println(arr2);
		System.out.println(arr2[4]);
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值