java数组

1、数组初始化

 

 静态初始化数组

1) String str1[]  = new String [] {, , }

2) String str1[]  =  {, , }

动态初始化数组

1) String str1[]  = new String [10]

 

注意:

1)不要同时使用静态初始化和动态初始化。也就是说,不要再进行数组初始化的时候规定数组的长度,也为每个数组元素分配初始值。

2)java数组是静态的,一旦为数组初始化完成,数组元素的内存空间分配即结束,只能改变数组元素的值,而不能改变数组的长度。

 

与java不同的是script语言可以动态改变数组的长度的

 

2、数组一定要进行初始化吗??

int [] nums = new int[] {2,3,5};

int prices[];

让prices数组只想nums所引用的数组

prices = nums;

*********

常常说使用java数组之前必须进行初始化,可是现在prices变量却无需初始化,这是不是自相矛盾吗?

其实不矛盾,使我们吧数组变量和数组对象给搞混了,数组变量只是一个引用变量, 通常存放在栈内存中;而数组对象是保存在堆内存中的连续内存空间。对数组执行初始化,其实并不是对数组变量执行初始化,而是要对数组对象执行初始化--也就是为该数组对象分配一块连续的内存空间,这块连续内存空间的长度就是数组的长度。

 ******

3、对象数组

代码:

public class Person

{

  public int age;

  public double height;

  public void info(){

      System.out.pirntln("age ="+age+"height = "+height)

   }

 

public class ReferenceArrayTest{

 public static void main(String[] args){

   //定义一个students数组变量,其类型是Person[]

  Person[]  students;

   //执行动态初始化

  students = new Person[2]

 //创建一个Person实例,并将这个Person实例付给zhang变量

Person zhang = new Person();

zhang.age = 15;

zhang.height =24;

 //创建一个Person实例,并将这个Person实例付给lee变量

Person lee= new Person();

lee.age = 15;

lee.height =24;

//将zhang变量的值赋值给第一个数组元素

students[0] = zhang;

//将lee变量的值赋值给第二个数组元素

students[1] = lee; 

//下面两行代码的结果完全一样,因为lee和students[1] 指向同一个Person实例

       lee.info();

        students[1].info();

}

}

你可能感兴趣的:(java数组)