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