Java面試問題2017
參加Java面試時,Java程序員要充分展現(xiàn)自己,提前了解2017年的面試問題很有必要,以下是陽光網(wǎng)小編幫你們整理的2017Java面試問題,一起來學習啦。
2017Java面試問題(一)
1.Java反射機制的作用?
解答:Java反射機制的作用是:
1)在運行時判斷任意一個對象所屬的類。
2)在運行時構造任意一個類的對象。
3)在運行時判斷任意一個類所具有的成員變量和方法。
4)在運行時調用任意一個對象的方法
2.你是怎么理解java的泛型的?
解答: 在Java SE 1.5之前,沒有泛型的情況的下,通過對類型Object的引用來實現(xiàn)參數(shù)的“任意化”,“任意化”帶來的缺點是要做顯式的強制類型轉換,而這種轉換是要求開發(fā)者對實際參數(shù)類型可以預知的情況下進行的。對于強制類型轉換錯誤的情況,編譯器可能不提示錯誤,在運行的時候才出現(xiàn)異常,這是一個安全隱患。
泛型是Java SE 1.5的新特性,泛型的本質是參數(shù)化類型,也就是說所操作的數(shù)據(jù)類型被指定為一個參數(shù)。這種參數(shù)類型可以用在類、接口和方法的創(chuàng)建中,分別稱為泛型類、泛型接口、泛型方法。
泛型的好處是在編譯的時候檢查類型安全,并且所有的強制轉換都是自動和隱式的,提高代碼的重用率。
3.JAVA源文件中是否可以包括多個類,有什么限制
解答:一個java源文件中可以包含多個類,每個源文件中至多有一個public類,如果有的話,那么源文件的名字必須與之相同。如果源文件中沒有public類,則源文件用什么名字都可以,但最好還是具有特定的意義,免得自己都不記得里面寫的是什么了。
4.請解釋分布式事務管理?
解答:分布式事務是指事務的參與者、支持事務的`服務器、資源服務器以及事務管理器分別位于不同的分布式系統(tǒng)的不同節(jié)點之上。為了實現(xiàn)分布式事務,需要使用下面將介紹的兩階段提交協(xié)議。
階段一:開始向事務涉及到的全部資源發(fā)送提交前信息。此時,事務涉及到的資源還有最后一次機會來異常結束事務。如果任意一個資源決定異常結束事務,則整個事務取消,不會進行資源的更新。否則,事務將正常執(zhí)行,除非發(fā)生災難性的失敗。為了防止會發(fā)生災難性的失敗,所有資源的更新都會寫入到日志中。這些日志是永久性的,因此,這些日志會幸免遇難并且在失敗之后可以重新對所有資源進行更新。
階段二:只在階段一沒有異常結束的時候才會發(fā)生。此時,所有能被定位和單獨控制的資源管理器都將開始執(zhí)行真正的數(shù)據(jù)更新。 在分布式事務兩階段提交協(xié)議中,有一個主事務管理器負責充當分布式事務協(xié)調器的角色。事務協(xié)調器負責整個事務并使之與網(wǎng)絡中的其他事務管理器協(xié)同工作。 為了實現(xiàn)分布式事務,必須使用一種協(xié)議在分布式事務的各個參與者之間傳遞事務上下文信息,IIOP便是這種協(xié)議。這就要求不同開發(fā)商開發(fā)的事務參與者必須支持一種標準協(xié)議,才能實現(xiàn)分布式的事務。
2017Java面試問題(二)
1.請寫出JavaScript中常用的三種事件。
解答: onclick,onblur,onChange
2.請寫出5種常見到的runtime exception。
解答:
NullPointerException:當操作一個空引用時會出現(xiàn)此錯誤。
NumberFormatException:數(shù)據(jù)格式轉換出現(xiàn)問題時出現(xiàn)此異常。
ClassCastException:強制類型轉換類型不匹配時出現(xiàn)此異常。
ArrayIndexOutOfBoundsException:數(shù)組下標越界,當使用一個不存在的數(shù)組下標時出現(xiàn)此異常。
ArithmeticException:數(shù)學運行錯誤時出現(xiàn)此異常
3.數(shù)組有沒有l(wèi)ength()這個方法?String有沒有l(wèi)ength()這個方法?
解答:數(shù)組沒有l(wèi)ength()方法 它有l(wèi)ength屬性
String有l(wèi)ength()方法。
4.請寫出一個單例模式。
解答:單例模式(Singleton pattern):確保一個類只有一個實例,并提供一個全局的.訪問點
public class EagerSingleton { private static final EagerSingleton m_instance = new EagerSingleton(); /** * 私有的默認構造子 */ private EagerSingleton() { } /** * 靜態(tài)工廠方法 */ public static EagerSingleton getInstance() { return m_instance; } }
5.在java中,List是個接口,那實現(xiàn)List接口的類有哪些,有什么區(qū)別?
解答: ArrayList是使用數(shù)組方式存儲數(shù)據(jù),此數(shù)組元素數(shù)大于實際存儲的數(shù)據(jù)以便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數(shù)組元素移動等內(nèi)存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢,LinkedList使用雙向鏈表實現(xiàn)存儲,按序號索引數(shù)據(jù)需要進行前向或后向遍歷,但是插入數(shù)據(jù)時只需要記錄本項的前后項即可,所以插入速度較快。
6.char類型能否存儲一個中文字符?為什么
解答:可以。一個char是兩個字節(jié),而一個中文也是兩個字節(jié)。
7.Switch選擇語句能否作用在String【字符串】上,也就是能否這么寫:Switch(一個字符串變量)?
解答:不可以,只能處理int,byte,short,char,(其實是只能處理int,其它三種是可以promotion到int型)不能處理Sring 。
2017Java面試問題(三)
1.關鍵字final 分別修飾一個類,一個方法,一個變量,各起什么作用
解答:final修飾類是不能被繼承
fianl修飾方法不能在子類中被覆蓋
final修飾變量,稱為常量,初始化以后不能改變值。
2.啟動一個線程是用run()還是start()?
解答:start()。
3.是否可以繼承String類
解答:不可以。因為String類有final修飾。
4.Java異常處理中,try {}里有一個return語句,那么緊跟在這個try后的finally {}里的code會不會被執(zhí)行,什么時候被執(zhí)行,在return前還是后?
解答:會執(zhí)行,在return前執(zhí)行。
5.EJB包含哪3種bean
解答:session bean(會話bean), entity bean(實體bean), message bean(消息bean)
6.Class.forName(String className)這個方法的作用
解答:通過類的全名獲得該類的類對象
7.你認為在表上建立索引可以提高數(shù)據(jù)庫系統(tǒng)的效率嗎,為什么?
解答:不一定
建立太多的索引將會影響更新和插入的速度,因為它需要同樣更新每個索引文件。對于一個經(jīng)常需要更新和插入的表格,就沒有必要為一個很少使用的`where子句單獨建立索引了,對于比較小的表,排序的開銷不會很大,也沒有必要建立另外的索引。
【Java面試問題】相關文章:
java面試基礎問題04-03
java面試基本問題04-05
java面試問題及答案04-05
java面試問題及回答11-26
java面試會問什么問題04-05
java面試官常問的問題04-03
java面試常見題目04-03
java面試基礎題04-03
java面試自我介紹03-06