`
cfeers
  • 浏览: 136115 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java的基本语法(二)

    博客分类:
  • java
阅读更多

自学java语法时的一些笔记,

 

数组 :是个引用类型,在内存里肯定是一个小快内存的指向大的内存
一维数组的声明方式: type var[];或 type[] var;

例如: int a1[];   int[] a2;
 double b[];
 Person[] p1; //Person 对象的引用
 String s1[]; //String 对象的引用
Java语言中声明数组时不能指定其长度:
例如:int a[5];  //非法!

java 使用 new 来创建数组对象 格式为:
数组名 = new 数组元素类型 [数组元素的个数]
例如: s =new int[5];
----------------------------------------------------------
数组的初始化(1)
动态初始化:数组定义与为数组元素分配空间和赋值的操作分开进行,例如:
int a[];  //栈空间
a = new int[3];   //分配空间
a[0] = 3; a[1] = 9; a[2] = 8;  //赋值
Date days[];
days = new Date[3];
days[0] = new Date(1, 4, 2009);
days[1] = new Date(2, 4, 2009);
days[2] = new Date(3, 4, 2009);

数组的初始化(2)
静态初始化:在定义数组的同事就为书序元素分配空间并赋值,例如:
int a[] = {3, 9, 8};
Date days[] ={
 new Date(1,4,2009);
 new Date(2,4,2009);
 new Date(3,4,2009);
};

数组元素的默认初始化
数组是引用类型。它的元素相当于类的成员变量,因此数组分配空间后
,每个元素也被按照成员变量的规则被隐式初始化,如:
public class Test{
   publc static void main(String[] args){
 int a[] = new int[5];
 Date[] days = new Date[3];
 System.out.println(a[3]);
 System.out.println(days[2]);
   }
}

calss Date{
   int year; int month; int day;
   Date(int y, int m, int d){
 year = y; month = m ; day = d;
   }
}

数组元素的引用
定义并用运算符new 为之分配空间之后,才可以引用数组中的每个元素,数组元素的引用方式为:
arrayName[index]
    index 为数组元素下标,可以是整型常量或整形表达式,如:a[3] b[i]  c[6*i]
    数组元素下标从0开始,长度为n的数组的合法下标取值范围为 0~n-1
【每一个数组都有一个属性length 指明它的长度】,例如
     a.length的值就是数组a的长度(元素个数)

======================================================================
二维数组:Java中多维数组的声明和初始化应按从高维到低维的顺序进行,如:
 int a[][] = new int[3][];   //高维
 a[0] = new int[2];   //低维
 a[1] = new int[4];
 a[2] = new int[3];
 
 int t1[][] = new int[][4]; //非法,因为先初始化了低维 
 

二维数组的声明方式:
1.静态初始化:
   int intA[][] = {{1,2},{2,3},{3,4,5}};
   int intB[3][2] = {{1,2},{2,3},{4,5}}; //非法

2.动态初始化:
   int a[][] = new int[3][5];
   int b[][] = new int[3][];
   b[0] = new int[2];
   b[1] = new int[3];
   b[2] = new int[5];

 

数组的拷贝
System.arraycopy(要拷贝的数组名,起始位置,拷贝对象数字名,起始位置,数组名的长度);
例如:
String[] s = {"Mircosoft","IBM","Sun","Oracle","Apple"}; //长度为5
String[] sBak = new String[6];    //长度为6
System.arraycopy(s,0,sBak,0,s.length);
for(int i=0; i<sBak.length; i++){
 System.out.print(sBak[i]+" "); 

打印出来结果为:Mircosoft  IBM  Sun  Oracle  Apple null

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics