Java程序員在找工作的時候都會遇到一件事,那就是進入公司之前要考試,考試,考試,重要的事情說三遍,今天小編就特意整合了一些公司的考題,來供各位Java程序員學習,希望對大家有所用處哦。動力節點預祝各位Java程序員面試成功哦.
1.問題:Java里的傳引用和傳值的區別是什么?
答案:傳引用是指傳遞的是地址而不是值本身,傳值則是傳遞值的一份拷貝。
2.問題:如果要重寫一個對象的equals方法,還要考慮什么?
答案:hash Code。
3.問題:Java的”一次編寫,處處運行”是如何實現的?
答案:Java程序會被編譯成字節碼組成的class文件,這些字節碼可以運行在任何平臺,因此Java是平臺獨立的。
4.問題:為什么oracle type4驅動被稱作瘦驅動?
答案:oracle提供了一個type 4 JDBC驅動,被稱為瘦驅動。這個驅動包含了一個oracle自己完全用Java實現的一個TCP/IP的Net8的實現,因此它是平臺獨立的,可以在運行時由瀏覽器下載,不依賴任何客戶端 的oracle實現。客戶端連接字符串用的是TCP/IP的地址端口,而不是數據庫名的tnsname。
5.問題:什么是Java API?
答案:Java API是大量軟件組件的集合,它們提供了大量有用的功能,比如GUI組件。
6.問題:Gregorian Calendar類是什么東西?
答案:Gregorian Calendar提供了西方傳統日歷的支持。
7.面向對象編程的三大特性是什么,請簡要闡述
答案:(1).繼承:
繼承是一種聯結類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼 承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承方法和實例變量,并且類可以修改或增 加新的方法使之更適合特殊的需要。
(2).封裝:
封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的界面。面向對象計算始于這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。
(3).多態性:
多態性是指允許不同類的對象對同一消息作出響應。多態性包括參數化多態性和包含多態性。多態性語言具有靈活、抽象、行為共享、代碼共享的優勢,很好的解決了應用程序函數同名問題。
8.說出Array List, Vector, Linked List的存儲性能和特性
答案:Array List和Vector都是使用數組方式存儲數據,此數組元素數大于實際存儲數據以便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數組元素移動等內存操作,所以索引數據快而插入數據慢,Vector由于使用了synchronized思路方法(線程安全) ,通常性能上較Array List差,而Linked List使用雙向鏈表實現存儲,按序號索引數據需要進行前向或后向遍歷,但是插入數據時只需要記錄本項前后項即可,所以插入速度較快
9.final, finally, finalize的區別
答案:final用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。
finally是異常處理語句結構的一部分,表示總是執行。
finalize是Object類的一個方法,在垃圾收集器執行的時候會調用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關閉文件等。
10.問題:Java的類型轉化是什么?
答案:從一個數據類型轉換成另一個數據類型叫做類型轉換。Java有兩種類型轉換的方式,一個是顯式的類型轉換,一個是隱式的。
更多Java知識,Java視頻,Java教程盡在動力節點,關注動力節點官方微信,拿一手Java考題,會隨時更新的哦。