1.Java數組:聲明有倆種方式---"int[] a;"---"int a[];",在實際開發中Java常用第一種,表示一個int類型的數組a。如果創建了一個非基本類型的數組則稱此數組爲引用數組,在數組中需要注意以下幾個方面:
{
int[] a={1,2,3,4,5};//第一種初始化方式,只能緊隨定義的數組之後
//------------------------------------
int[] b=new int[5];//第二種初始化方式,可以在定義後的任意位置進行操作
for(int i=0;i<5;i++){
b[i]=i+1;
}
//------------------------------------
Random rand=new Random(30);
int[] c=new int[rand.nextInt(20)];//爲數組c申請20以內的隨機數的內存空間
//------------------------------------
c=b;//及將b引用指向的數組也讓c指向,此時c和b中數組的數字實際爲同一份
}
2.可變參數的使用:Java中的可變參數是依靠Java的一個特徵,即所有的對象都繼承Object類,所以只要參數類型爲Object就可以接收任意類型的參數,可變參數有倆種書寫方式,如下:
class Test{
public void f(Object[] o){}//方法一
public void d(Object... s){}//方法二,注意這裏必須是"..."結構
}
在書寫爲第二中方式後,實際經過編譯器編譯後的結果仍爲第一種的數組格式,當然參數列表中的Object可以換成任意類型,可以是基本類型也可以是引用類型,只是此時只能傳遞指定類型的任意個數的參數,效果如下:
class Test{
public static void f(Object... o){
System.out.println("Object--");
for(Object ob:o){
System.out.print(" "+ob);
}
}
public static void d(int... i){
System.out.println("int--");
for(int in:i){
System.out.print(" "+in);
}
}
public static void main(String[] args)
{
f(1,2,3,4,5);
f("abc","java","j2ee");
d(1,2,3);
}
}
out:
Object--
1 2 3 4 5
Object--
abc java j2ee
int--
1 2 3
對於在重載方法中使用可變參數,由於編譯器較難識別,如若處理不當往往會報錯【CompileTimeError】,所以可以儘量選擇不用,但是如果要用,最好在參數列表中都添加其他非可變參數來區分:class Test{
public static void f(Object... o){ }
public static void f(int... i){ }
public static void main(String[] args)
{
f(1,2,3,4,5);
f("abc","java","j2ee");
}
}
//以上代碼會報錯,因爲不能確定該調用哪個重載方法,此時產生歧義性
//------------------------------------
//通過添加非可變參數進行重載方法的區別
class Test{
public static void f(int i,Object... o){
System.out.println("first");
}
public static void f(String st,int... i){
System.out.println("second");
}
public static void main(String[] args)
{
f(5,1,2,3,4,5);
f(4,"abc","java","j2ee");
f("java",1,2,3);
}
}
out:
first
first
second
3.Java中的枚舉-enum:首先,要清楚枚舉類型並不是Java所特有的,C和C++中都有枚舉類型。其次,枚舉類型其實不算一種新的數據類型,其與其他的普通類的區別是在編譯時會產生一些其他的行爲。還要知道的是,枚舉類型的實例是常量,因此其命名一般採用全大寫字母表示(如果有多個單詞需用下劃線’_‘隔開)。
public enum EnumTest{
//創建枚舉類型
JAVA,J2EE,JAVASE,ANDROID
}
public class TestEnum{
public static void main(String[] args)
{
EnumTest e=EnumTest.JAVA;
System.out.print(e);
}
}
out:
JAVA
Java中在創建枚舉引用時會自動添加一些方法,如下:
- toString()——方便像上邊例子一樣顯示枚舉實例的名字。
- ordinal()——可通過此方法查看枚舉常量聲明的順序。
- static values()——用來按照枚舉常量的聲明順序產生由這些常量構成的數組。
public class TestEnum{
public static void main(String[] args)
{
for(EnumTest e=EnumTest.values())
{
System.out.println(e+"——"+e.ordinal);
}
}
}
out:
JAVA——0
J2EE——1
JAVASE——2
ANDROID——3
此外,enum最常使用場景爲與switch的結合:
{
//EnumTest en;
switch(en){
case JAVA:
case J2EE:
...
}
}
到此爲之,根據閱讀《Java編程思想》的順序(第四版p1-p108),Java中的一些易被忽視或者易被遺忘的重點、關鍵點就全部總結完成,由於Java語言博大精深,這些知識點還是比較淺的,接下來隨着對此書的學習會更加深入的整理總結Java內容,希望我的記錄可以對我和讀者們有一些幫助。