java程序員筆試文檔(部分)

今天看了一個java程序員的筆試文檔,感覺很不錯,挺有收穫,也覺得自己根底還很差……加油加油!
寫下其中比較感興趣的幾部分:
1.用最有效率的方法算出[color=red]2乘以8等於幾[/color]?
想了會沒答案,原來是用[color=red]2<<3[/color]移位算法!10左移3位編程10000就是16
其實是很基礎的東西,怎麼沒想到呢 多練習吧

2.Math.round(11.5)等於?
Math.round(-11.5)等於多少?
Math.round(11.5)==12 Math.round(-11.5)==-11 round方法返回與參數最接近的長整數.

3.Java中的異常處理機制的簡單原理和應用。
當JAVA程序違反了JAVA的語義規則時,JAVA虛擬機就會將發生的錯誤表示爲一個異常。違反語義規則包括2種情況。一種是JAVA類庫內置的語義檢查。例如數組下標越界,會引發IndexOutOfBoundsException;訪問null的對象時會引發NullPointerException。另一種情況就是JAVA允許程序員擴展這種語義檢查,程序員可以創建自己的異常,並自由選擇在何時用throw關鍵字引發異常。所有的異常都是java.lang.Thowable的子類

4.JSP中動態INCLUDE與靜態INCLUDE的區別?動態INCLUDE用jsp:include動作實現 <jsp:include page="included.jsp" flush="true" />它總是會檢查所含文件中的變化,適合用於包含動態頁面,並且可以帶參數。靜態INCLUDE用include僞碼實現,定不會檢查所含文件的變化,適用於包含靜態頁面<%@ include file="included.htm" %>

5.final, finally, finalize的區別。 final 用於聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。finally是異常處理語句結構的一部分,表示總是執行。finalize是Object類的一個方法,在垃圾收集器執行的時候會調用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關閉文件等

6.抽象:抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。
抽象並不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象,
二是數據抽象。

繼承:繼承是一種聯結類的層次模型,並且允許和鼓勵類的重用, 它提供了一種明確表述共性的方法。對象的一個新類可以從現有的類中派生, 這個過程稱爲類繼承。新類繼承了原始類的特性,新類稱爲原始類的派生類(子類),而原始類稱爲新類的基類(父類)。派生類可以從它的基類那裏繼承方法和實例變量,並且類可以修改或增加新的方法使之更適合特殊的需要。

封裝:封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的界面。面向對象計算始於這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。

多態性:多態性是指允許不同類的對象對同一消息作出響應。多態性包括參數化多態性和包含多態性。多態性語言具有靈活、抽象、行爲共享、代碼共享的優勢,26. 很好的解決了應用程序函數同名問題

7.char型變量中能不能存貯一箇中文漢字?爲什麼?
能夠定義成爲一箇中文的,因爲java中以unicode編碼,一個char佔16個字節,所以放一箇中文是沒問題的
[color=red]PS[/color]:記得以前C語言和C++中都不行 必須用雙字節 java用的字節多點?查查看

8.碰到一個java題目,要求1000!(1000*999*998...*2*1)的值。

參考答案
BigDecimal big = new BigDecimal(1);
for(int i=1; i<1001; i++) {
big = big.multiply(new BigDecimal(i));
}
big.setScale(100);
System.out.println(big);

還以爲要像c++那樣用數組來實現 沒想到這麼大的數也封裝好了類來解決 方便呀
不過還是最好看看底層實現好!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章