java基礎(chǔ)(持續(xù)更新中)
資料收集于互聯(lián)網(wǎng)(如有不妥,請告之)、個人心得。
1.默認的浮點類型是雙精度(double),要想要一個float必須在浮點數(shù)后面加F或者f。如:float pi = 3.14;是錯誤的
2.浮點型轉(zhuǎn)化為整型時,不進行四舍五入,直接截斷小數(shù)點后面的數(shù).Java的類型檢查很嚴格,從低精度轉(zhuǎn)換到高精度是無須顯式轉(zhuǎn)換的,double d = 123;。但是反過來,進行窄化轉(zhuǎn)換,由高精度向低精度,或者一種類型到另一種類型,則必須使用強制類型轉(zhuǎn)化。
3.在數(shù)組聲明中包含數(shù)組長度永遠是不合法的!如:int[5] arr; 。因為,聲明的時候并沒有實例化任何對象,只有在實例化數(shù)組對象時,JVM才分配空間,這時才與長度有關(guān)。
4.對象類型的數(shù)組雖然被默認初始化了,但是并沒有調(diào)用其構(gòu)造函數(shù)。也就是說:Car[] myCar = new Car[10];只創(chuàng)建了一個myCar數(shù)組對象!并沒有創(chuàng)建Car對象的任何實例!這與單純的new一個對象不同!單個的new對象時,就會調(diào)用相應(yīng)的構(gòu)造函數(shù)。
5.數(shù)組有l(wèi)ength屬性,字符串有l(wèi)ength()方法
6.String中的每個字符都是一個16位的Unicode字符,用Unicode很容易表達豐富的國際化字符集,比如很好的中文支持。char中可以保存一個中文漢字,應(yīng)為char也是一個16位的Unicode字符度為0。
8.String對象是不變的!可以變化的是String對象的引用。
9.String的不變性的機制顯然會在String常量內(nèi)有大量的冗余。如:"1" + "2" + "3" +......+ "n" 產(chǎn)生了n+(n+1)個String對象!因此Java為了更有效地使用內(nèi)存,JVM留出一塊特殊的內(nèi)存區(qū)域,被稱為“String常量池”。對 String多么照顧啊!當編譯器遇見String常量的時候,它檢查該池內(nèi)是否已經(jīng)存在相同的String常量。如果找到,就把新常量的引用指向現(xiàn)有的 String,不創(chuàng)建任何新的String常量對象。
10.java中的對象是在堆中被創(chuàng)建的(new),但常量類的String有點特別!像“haha”這樣的字符串根據(jù)第9條是存放在String常量池的,而String s=new String("haha");確實在堆中被創(chuàng)建的。
11.throw和throws關(guān)鍵字。throw用在方法體中拋出異常,后面是一個具體的異常對象。throws用在方法參數(shù)列表括號的后面,用來聲明此方法會拋出的異常種類,后面跟著一個異常類。
12.要把相應(yīng)的System.out和System.err信息輸入到文件中。代碼:
13.為一個接口提供缺省實現(xiàn),便于子類有選擇從這個缺省實現(xiàn)進行擴展.而不必對原有接口所有方法進行實現(xiàn),哪怕是空實現(xiàn).
interface 窗口{
public void 關(guān)閉();
public void 移動();
public ovid 最大化();
}
//-----------------------------------------
Frame implements 窗口{//不用適配器
public void 關(guān)閉(){
System.out.println("關(guān)閉窗口");
}
public void 移動()[
}
public ovid 最大化(){
}
}
//運用適配器-------------------------------
public abstract Frame implements 窗口{
public void 關(guān)閉(){
}
public void 移動(){
}
public ovid 最大化(){
}
}
public CloseFrame extends Frame{
public void 關(guān)閉(){
System.out.println("關(guān)閉窗口");
}
}
1.默認的浮點類型是雙精度(double),要想要一個float必須在浮點數(shù)后面加F或者f。如:float pi = 3.14;是錯誤的
2.浮點型轉(zhuǎn)化為整型時,不進行四舍五入,直接截斷小數(shù)點后面的數(shù).Java的類型檢查很嚴格,從低精度轉(zhuǎn)換到高精度是無須顯式轉(zhuǎn)換的,double d = 123;。但是反過來,進行窄化轉(zhuǎn)換,由高精度向低精度,或者一種類型到另一種類型,則必須使用強制類型轉(zhuǎn)化。
3.在數(shù)組聲明中包含數(shù)組長度永遠是不合法的!如:int[5] arr; 。因為,聲明的時候并沒有實例化任何對象,只有在實例化數(shù)組對象時,JVM才分配空間,這時才與長度有關(guān)。
4.對象類型的數(shù)組雖然被默認初始化了,但是并沒有調(diào)用其構(gòu)造函數(shù)。也就是說:Car[] myCar = new Car[10];只創(chuàng)建了一個myCar數(shù)組對象!并沒有創(chuàng)建Car對象的任何實例!這與單純的new一個對象不同!單個的new對象時,就會調(diào)用相應(yīng)的構(gòu)造函數(shù)。
5.數(shù)組有l(wèi)ength屬性,字符串有l(wèi)ength()方法
6.String中的每個字符都是一個16位的Unicode字符,用Unicode很容易表達豐富的國際化字符集,比如很好的中文支持。char中可以保存一個中文漢字,應(yīng)為char也是一個16位的Unicode字符度為0。
8.String對象是不變的!可以變化的是String對象的引用。
9.String的不變性的機制顯然會在String常量內(nèi)有大量的冗余。如:"1" + "2" + "3" +......+ "n" 產(chǎn)生了n+(n+1)個String對象!因此Java為了更有效地使用內(nèi)存,JVM留出一塊特殊的內(nèi)存區(qū)域,被稱為“String常量池”。對 String多么照顧啊!當編譯器遇見String常量的時候,它檢查該池內(nèi)是否已經(jīng)存在相同的String常量。如果找到,就把新常量的引用指向現(xiàn)有的 String,不創(chuàng)建任何新的String常量對象。
10.java中的對象是在堆中被創(chuàng)建的(new),但常量類的String有點特別!像“haha”這樣的字符串根據(jù)第9條是存放在String常量池的,而String s=new String("haha");確實在堆中被創(chuàng)建的。
11.throw和throws關(guān)鍵字。throw用在方法體中拋出異常,后面是一個具體的異常對象。throws用在方法參數(shù)列表括號的后面,用來聲明此方法會拋出的異常種類,后面跟著一個異常類。
12.要把相應(yīng)的System.out和System.err信息輸入到文件中。代碼:
try {
System.out.println("沒上");
System.setOut(new PrintStream(new FileOutputStream(new File( "c:/test.txt "))));
System.out.println( "haha ");
System.out.println("error");
} catch (Exception e) {
e.printStackTrace();
}
err的吧setOut改為setErr就可以了。System.out.println("沒上");
System.setOut(new PrintStream(new FileOutputStream(new File( "c:/test.txt "))));
System.out.println( "haha ");
System.out.println("error");
} catch (Exception e) {
e.printStackTrace();
}
13.為一個接口提供缺省實現(xiàn),便于子類有選擇從這個缺省實現(xiàn)進行擴展.而不必對原有接口所有方法進行實現(xiàn),哪怕是空實現(xiàn).
interface 窗口{
public void 關(guān)閉();
public void 移動();
public ovid 最大化();
}
//-----------------------------------------
Frame implements 窗口{//不用適配器
public void 關(guān)閉(){
System.out.println("關(guān)閉窗口");
}
public void 移動()[
}
public ovid 最大化(){
}
}
//運用適配器-------------------------------
public abstract Frame implements 窗口{
public void 關(guān)閉(){
}
public void 移動(){
}
public ovid 最大化(){
}
}
public CloseFrame extends Frame{
public void 關(guān)閉(){
System.out.println("關(guān)閉窗口");
}
}
posted on 2007-11-04 22:03 月芽兒 閱讀(302) 評論(0) 編輯 收藏 所屬分類: J2EE學(xué)習(xí)摘錄