Java面試

25J 中動態INCLUDE與靜態INCLUDE的區別?
動態INCLUDEj :include動作實現 它總是會檢查所含文件中的變化,適合用於包含動態頁面,並且可以帶參數。
靜態INCLUDEinclude僞碼實現,定不會檢查所含文件的變化,適用於包含靜態頁面
26、什麼時候用a ert a ertion(斷言)在軟件開發中是一種常用的調試方式,很多開發語言中都支持這種機制。在實現中,a ertion就是在程序中的一條語句,它對一個boolean表達式進行檢查,一個正確程序必須保證這個boolean表達式的值爲true;如果該值爲false,說明程序已經處於不正確的狀態下,系統將給出警告或退出。一般來說,a ertion用於保證程序最基本、關鍵的正確性。a ertion檢查通常在開發和測試時開啓。爲了提高性能,在軟件發佈後,a ertion檢查通常是關閉的。27GC是什麼? 爲什麼要有GC?
GC
是垃圾收集的意思(Gabage Collection,內存處理是編程人員容易出現問題的地方,忘記或者錯誤的內存回收會導致程序或系統的不穩定甚至崩潰,Java提供的GC功能可以自動監測對象是否超過作用域從而達到自動回收內存的目的,Java語言沒有提供釋放已分配內存的顯示操作方法。

28short s1 = 1; s1 = s1 + 1;有什麼錯? short s1 = 1; s1 += 1;有什麼錯?
short s1 = 1; s1 = s1 + 1;
s1+1運算結果是int型,需要強制轉換類型)
short s1 = 1; s1 += 1;
(可以正確編譯)
29Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)==12
Math.round(-11.5)==-11
round
方法返回與參數最接近的長整數,參數加1/2後求其floor.
30String s = new String("xyz");創建了幾個String Object?
兩個
31EJB包括(Se io ean,EntityBean)說出他們的生命週期,及如何管理事務的?
Se io ean
Statele Se ion Bean 的生命週期是由容器決定的,當客戶機發出請求要建立一個Bean的實例時,EJB容器不一定要創建一個新的Bean的實例供客戶機調用,而是隨便找一個現有的實例提供給客戶機。當客戶機第一次調用一個Stateful Se ion Bean 時,容器必須立即在服務器中創建一個新的Bean實例,並關聯到客戶機上,以後此客戶機調用Stateful Se ion Bean 的方法時容器會把調用分派到與此客戶機相關聯的Bean實例。
EntityBean
Entity Bea 能存活相對較長的時間,並且狀態是持續的。只要數據庫中的數據存在,Entity bea 就一直存活。而不是按照應用程序或者服務進程來說的。即使EJB容器崩潰了,Entity bea 也是存活的。Entity Bea 生命週期能夠被容器或者 Bea 自己管理。
EJB
通過以下技術管理實務:對象管理組織(OMG)的對象實務服務(OTS),Sun MicrosystemsTra action ServiceJTS)、Java Tra action APIJTA),開發組(X/Open)的XA接口。
32、應用服務器有那些?
BEA WebLogic Server
IBM We here A lication ServerOracle9i A lication ServerjBo Tomcat

33、給我一個你最常見到的runtime exception
ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, Ca otRedoException, Ca otUndoException, Class CastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException, IndexOutOfBoundsException, Mi ingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclassredThrowableException, UnmodifiableSetException, U u ortedOperationException
34、接口是否可繼承接口? 抽象類是否可實現(implements)接口? 抽象類是否可繼承實體類(concrete class )?
接口可以繼承接口。抽象類可以實現(implements)接口,抽象類是否可繼承實體類,但前提是實體類必須有明確的構造函數。
35List, Set, Map是否繼承自Collection接口?
ListSet是,Map不是
36、說出數據連接池的工作機制是什麼?
J2EE 服務器啓動時會建立一定數量的池連接,並一直維持不少於此數目的池連接。客戶端程序需要連接時,池驅動程序會返回一個未使用的池連接並將其表記爲忙。如果當前沒有空閒連接,池驅動程序就新建一定數量的連接,新建連接的數量有配置參數決定。當使用的池連接調用完成後,池驅動程序將此連接表記爲空閒,其他調用就可以使用這個連接。
37a tractmethod是否可同時是static,是否可同時是native,是否可同時是synchronized?
都不能
38、數組有沒有length()這個方法? String有沒有length()這個方法?
數組沒有length()這個方法,有length的屬性。String有有length()這個方法。
39Set裏的元素是不能重複的,那麼用什麼方法來區分重複與否呢? 是用==還是equals()? 它們有何區別?
Set裏的元素是不能重複的,那麼用iterator()方法來區分重複與否。equals()是判讀兩個Set是否相等。
equals()
==方法決定引用值是否指向同一對象equals()在類中被覆蓋,爲的是當兩個分離的對象的內容和類型相配的話,返回真值。

40、構造器Co tructor是否可被override?
構造器Co tructor不能被繼承,因此不能重寫Overriding,但可以被重載Overloading
41、是否可以繼承String?
String類是final類故不可以繼承。
42swtich是否能作用在byte上,是否能作用在long上,是否能作用在String?
switch
expr1)中,expr1是一個整數表達式。因此傳遞給 switch case 語句的參數應該是 int short char 或者 bytelong,string 都不能作用於swtich

43try {}裏有一個return語句,那麼緊跟在這個try後的finally {}裏的code會不會被執行,什麼時候被執行,在return前還是後?
會執行,在return前執行。
44、編程題: 用最有效率的方法算出2乘以8等於幾?
2 < lt; 3
45、兩個對象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對不對?
不對,有相同的hash code
46、當一個對象被當作參數傳遞到一個方法後,此方法可改變這個對象的屬性,並可返回變化後的結果,那麼這裏到底是值傳遞還是引用傳遞?
是值傳遞。Java 編程語言只有值傳遞參數。當一個對
象實例作爲一個參數被傳遞到方法中時,參數的值就是對該對象的引用。對象的內容可以在被調用的方法中改變,但對象的引用是永遠不會改變的。
47、當一個線程進入一個對象的一個synchronized方法後,其它線程是否可進入此對象的其它方法?
不能,一個對象的一個synchronized方法只能由一個線程訪問。
48、編程題: 寫一個Singleton出來
Singleton
模式主要作用是保證在Java應用程序中,一個類Class 只有一個實例存在。
一般Singleton模式通常有幾種種形式:
第一種形式: 定義一個類,它的構造函數爲**的,它有一個static**的該類變量,在類初始化時實例話,通過一個publicgetI tance方法獲取對它的引用,繼而調用其中的方法。
public class Singleton {** Singleton(){} //
在自己內部定義自己一個實例,是不是很奇怪? //注意這是** 只供內部調用 ** static Singleton i tance = new Singleton(); //這裏提供了一個供外部訪問本class 的靜態方法,可以直接訪問 public static Singleton getI tance() { return i tance; } }  
第二種形式:
public class Singleton { ** static Singleton i tance = null; public static synchronized Singleton getI tance() { //
這個方法比上面有所改進,不用每次都進行生成對象,只是第一次 //使用時生成實例,提高了效率! if (i tance==null) i tancenew Singleton();return i tance; } }  
其他形式:
定義一個類,它的構造函數爲**的,所有方法爲static的。
一般認爲第一種形式要更加安全些
49Java的接口和C++的虛類的相同和不同處。
由於Java不支持多繼承,而有可能某個類或對象要使用分別在幾個類或對象裏面的方法或屬性,現有的單繼承機制就不能滿足要求。與繼承相比,接口有更高的靈活性,因爲接口中沒有任何實現代碼。當一個類實現了接口以後,該類要實現接口裏面所有的方法和屬性,並且接口裏面的屬性在默認狀態下面都是public static,所有方法默認情況下是public.一個類可以實現多個接口。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章