標籤:
Java基礎複習筆記系列之 數組
1、數組初步介紹?
Java中的數組是參考型別,不可以直接分配在棧上。不同於C(在Java中,除了基礎資料類型外,所有的類型都是參考型別。)
Java中的數組在申明時,不能指定其長度。不同於C
數組的小標可以是整型常量或整型運算式。
.length方法是顯示數組的長度;數組.length;String.length();一個是屬性,一個是方法。注意區分。
2、數組的記憶體分析?
Array a[];
a = new Integer(15);
/*這個a在棧中,在堆內new了15個基礎資料型別 (Elementary Data Type),a中存放的是地址。堆中存放的是15個初始化為null的值。
Array a[];
a = new Date[12];
/*同樣的a在棧中,在堆中new了12個引用,其中每一個引用指向了一個Date,在沒有指向之前,預設初始化為null。
3、數組的初始化:靜態初始化和動態初始化?
動態初始化,先分配空間,後賦值。int[] a = new int[];是不對的,要:int[] a = new int[23];一定要分配空間。
靜態初始化,在定義數組的時候,就為分配空間並賦值。
4、public static void main(String[] args)怎麼理解?
String[] args,終歸只是一個數組。我們可以將它列印出來。System.exit(-1);表示系統退出。-1表示非正常退出。0表示正常退出。
問題來了,輸入的都是字串類型。怎麼把字串類型轉換為我們常用的一些基礎資料型別 (Elementary Data Type)呢?將基礎類型的資料封裝成一個對象。(想清楚,對象是放在Heap上的。而基礎資料型別 (Elementary Data Type)基本上都在棧上)。封裝類有:Character,Byte,Boolean,Integer,Float,Double等。
系統錯誤,一般可以這樣來用:System.out.print("System Error");System.exit(-1);
5、排序的演算法居多無比,那麼排序怎麼排呢?
6、三目運算子?
return year > date.year ? 1
:year < date.year ? -1
:month > date.month ? 1
:month < date.month ? -1
:day > date.day ? 1
:day < date.day ? -1 : 0;
7、數組作為傳回值的理解?
返回的也是一個數組的引用,這個引用在棧空間。棧空間的這個應用指向了堆中的數組。返回數組,其實質就是返回了一個引用。
8、編程小練習:環形手牽手,數3退出,最後剩下的是誰?數3退
留在程式碼分析中。
9、
Java基礎複習筆記系列 四