数组、初始化

数组

数组的定义:

数组是相同类型数据的有序集合,数组描述的是相同类型的若干数据。按照一定的先后顺序排列组合而成。其中,每个数据就是一个元素,每个元素可以通过一个索引(下标)来访问。数组有四个基本特点:
1、长度是确定的,数组一旦被创建,它的大小就不可改变。
2、其元素的理性必须是相同类型,不允许混合类型。
3、数组类型可以是任何类型,包括基本类型和引用类型。
4、数组变量是引用类型,数组也是对象。

创建数组和初始化:

数组的创建和初始化是数组使用的第一步,通过内存分析可以更清楚的了解数组。同事,通过内存分析也可以明白数组本质还是“对象”。

数组声明:

type[ ] arr_name; //方式一(推荐使用这种方式)
type arr_name[ ]; //方式二

注:
1、声明时并没有实例化任何对象,只有实例化数组对象时,JVM才分配内存空间,这时才与长度有关。
2、声明一个数组时,数组并没有真正被创建。
3、构造一个数组,必须指定长度。


/*
 * 创建基本类型一维数组
 */
package cn.wu.array;

public class Test01 {
	public static void main(String[] args) {
		int[] s = null;//声明数组;                                                                                                                          
		
		s = new int[10];//给数组分配内存空间;
		for(int i = 0;i < 10; i++){
			s[i] = 2*i+1;//给数组元素辅助;数组是对象,数组中的元素就是对象的属性;遵守对象初始化默认规则。                                  
			System.out.println(s[i]);
		}
	}

}
/*
 * 创建引用型一维数组
 */
package cn.wu.array;

public class Man {
	private int age;
	private int id;
	public Man(int age, int id ){
		super();
		this.age = age;
		this.id = id;
	}
	
	

}
package cn.wu.array;

public class AppMain{
	public static void main(String[] args) {
		Man[] mans ;  //声明引用类型数组
		mans = new Man[10];//给引用类型数组分配空间;
		
		Man m1 = new Man(1,11);
		Man m2 = new Man(2,22);
		
		mans[0] = m1;//给引用类型数组元素赋值
		mans[1] = m2;//给引用类型数组元素赋值
		System.out.println(m2.toString());
		System.out.println(m1.toString());
	}
	
}

初始化:

数组初始化方式分为三种:静态初始化、动态初始化、默认初始化。

静态初始化:

除了new关键字来创建数组外,还可以直接定义数组的同时就为数组分配内存空间和赋值

动态初始化:

数组定义与数组元素分配空间并赋值分开进行。

默认初始化:

数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配,其中每个元素也按照实例变量相同方式被隐式初始化


/*
 * 数组的初始化:
 *   1、静态初始化
 *   2、动态初始化
 *   3、默认初始化
 */
package cn.wu.array;

public class Sum {
	public static void main(String[]args){
//静态初始化数组;	除了用new关键字来产生数组以外,还可以直接在定义数组的同时就为数组元素分配并赋值	
		int[] a = {1,2,3};//静态初始化基本类型数组
		Man[] mans = {new Man(1,1),new Man(2,2)};//静态初始化引用类型数组;
		
//动态初始化数组:   数组定义与为数组元素分配空间并赋值的操作分开进行
		int[] a1 = new int[2];//动态初始化数组,先分配内存空间
		a1[0] = 1;//给数组元素赋值
		a1[1] = 2;//给数组元素赋值

//默认初始化数组:   数组是引用类型,它的元素相当于子类的实例变量,因次数组一经分配空间,其中每个元素也被按照实例变量同样的方式隐式初始化		
		int a2[] = new int[2]; //默认值:0,0
		boolean[]b = new boolean[2];//默认值:false,false
		String[] s = new String[2];//默认值: null,null 
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值