java中怎么数组初始化?

Python016

java中怎么数组初始化?,第1张

//数组定义最方便的就是用for循环来做定义,数组下标是从0开始,到11的话就是12个数字。要输出的话可以用以//号注释掉的后面的一句if(i<12){System.out.println(x[i])}当然也可以自己再写一个for循环语句来输出,不过我觉得这有点画蛇添足了

public class shuzu {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

int x[]=new int[12]

for(int i=0i<=11i++)

{

x[i]=i

//if(i<12){System.out.println(x[i])}

}

}

}

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

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

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

数组名加上下标可以表示数组元素。数组的第一个元素是下标为O的元素,例如points[0]。最后一个元素的下标为length一1,如points[points.1ength一1]。当创建一个数组时,每个元素都被初始化。如前面创建的字符数组s,它的每个值被初始化为O(\0000)。而数组points的每个值被初始化为null,表明它还没指向真正的Point对象。

在赋值语句points[o]= New Point();后,系统创建一个真正的Point对象,并让数组的第一个元素指向它。

注意:包括数组元素在内的所有变量的初始化.从系统安全角度看都是必不可少的任何变量都不能在没有初始化状态下使用。编译器不能检查数组元素的初始化情况。Java允许用初值来创建数组,如例:String names[]={”Georgianna”,“Tenn”,“Simon“,“Tom“}用4个字符串常量初始化names数组,这种方式称为静态初始化,它等价于:String names[];names=new String[4];names[0]=“Georgianna“names[1]=“JEN”names[2]=”Simon“;静态初始化可用于任何元素类型,初值块中每个位置的每个元素对应一个引用。

创建数组的三种方式:其实分为2类,一种是静态的创建,如方式一。一种是动态的创建,只不过根据写法的不同分为方式二和方式三:

[java] view plain copy

public static void main(String[] args) {

// 1.方式一 声明 分配空间并赋值

int[] arr1 = {1,2,3}

// 2.方式二 显示初始化

int[] arr2

arr2 = new int[]{1,2,3}

// 3.方式三 显示初始化()

int[] arr3

arr3 = new int[3]

}

他们的区别,方式一:在声明的时候直接就已经分配空间,并赋值,方式一是不能写成如下这种形式的。

[java] view plain copy

int[] arr1

arr1 = {1,2,3}//错误写法 编译不同过

方式二和方式三,声明和内存分配是分开的,如上面的例子,

[java] view plain copy

int[] arr2 和 int[] arr3

这一步是在栈空间分配一个引用,存放的是一个引用,null

[java] view plain copy

arr2 = new int[]{1,2,3}<span style="font-family: Arial, Helvetica, sans-serif">arr3 = new int[3]</span>

到这一步的时候jvm才开始在内存堆区域分配空间,并赋值,方式二直接赋值 1,2,3 方式三 默认初始化,基本类型是 0 布尔类型是 false 引用类型为null,

注:内存一旦分配不能改变,所有说数组长度固定