Java——数组

【数组】
 
 
注:C/C++中数组可以存储在栈中,但是Java中不可以(因为Java中是引用)。
 
【一维数组】
 
声明: type var[]; 或者 type[] var;
Java语言生成数组时不能指定其长度(数组中元素的个数),例如int a[4]是非法的
(--因为Java中数据分配在堆中,是动态分配的;C语言可以)。
 
数组对象的创建:
数组名 = new 数组元素的类型[数组元素的个数]
 
【内存分配】
 
 
注:这表示在内存中new出5个对象,每个对象的初始化值为0(默认值)。
       new int[5]与int[] arr不同:前者合法,后者非法。
 
 
【元素为引用数据类型的数组】
 
注意:元素为引用数据类型的数组中的每一个元素都需要实例化。
 
注:<1>days数据类型为数组,Date[]作为一个类。
       <2>days = new Date[3];表示引用类型的数据,即days(栈中)指向堆中的一个区域Date[3]。
       <3>days[i] = new Date(2004,4,i++);表示一个引用,days[1]指向堆中的另外一个区域Date(2004,4,1)。
 
 
 
【数组初始化】
 
动态初始化:数组定义与数组元素分配空间和赋值的操作分开进行。
                  (一定要记住数组要先分配好空间再使用,不一定非要赋值)
 
注:<1>int a[];----数组定义(栈)
       <2>a=new int[3];----分配空间(堆)
       <3>a[0]=3;----赋值操作(堆)
      
静态初始化:在定义数组的同时就为数组元素分配空间并赋值。
 
 
 
【数组元素的默认初始化】
 
数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐式初始化。
 
注:<1>a[3]是int类型,int类型默认初始值为0.
       <2>days[2]是引用类型,引用类型默认初始值为NULL。
 
【数组元素的引用】
 
注:数组的length是一个属性,不是一个方法(因此不要写成a.length())。
 
【String[] args】
  在Java的main函数中输入以下的语句:
  for(int i=0;i<args.length;i++){
          System.out.println(args[i]);
  }
  编译运行后无任何显示。
  输入命令行参数:java test.java 11 22 33 aa bb cc
  输出结果为:11 22 33 aa bb cc
 
【基础类型的包装类】
 
  一般基础类型数据加载在栈中,如果需要存储在堆中,则需要包装为对象。
 例如:byte-->Byte,int-->Integer,char-->Character......
 这样就可以实现数据之间的转换,因为基础类型的数据已经转换为Class对象,在API中就有一系列对应的方法。
 例如: static double = Double(String s);----传入的参数为String类型,返回的double类型。
posted @ 2015-03-20 21:45  程序员姜戈  阅读(214)  评论(0编辑  收藏  举报