- java應(yīng)屆生面試題和答案 推薦度:
- 相關(guān)推薦
2017java面試題和答案
Java技術(shù)員想要在面試中給面試官留下好印象,那么做好準(zhǔn)備很重要,你對(duì)2017年的Java面試題有了解了嗎?以下是陽(yáng)光網(wǎng)小編幫你們整理的2017java面試題和答案,一起來(lái)學(xué)習(xí)啦。
2017java面試題和答案(一)
1.Java反射機(jī)制的作用?
解答:Java反射機(jī)制的作用是:
1)在運(yùn)行時(shí)判斷任意一個(gè)對(duì)象所屬的類。
2)在運(yùn)行時(shí)構(gòu)造任意一個(gè)類的對(duì)象。
3)在運(yùn)行時(shí)判斷任意一個(gè)類所具有的成員變量和方法。
4)在運(yùn)行時(shí)調(diào)用任意一個(gè)對(duì)象的方法
2.你是怎么理解java的泛型的?
解答: 在Java SE 1.5之前,沒有泛型的情況的下,通過(guò)對(duì)類型Object的引用來(lái)實(shí)現(xiàn)參數(shù)的“任意化”,“任意化”帶來(lái)的缺點(diǎn)是要做顯式的強(qiáng)制類型轉(zhuǎn)換,而這種轉(zhuǎn)換是要求開發(fā)者對(duì)實(shí)際參數(shù)類型可以預(yù)知的情況下進(jìn)行的。對(duì)于強(qiáng)制類型轉(zhuǎn)換錯(cuò)誤的情況,編譯器可能不提示錯(cuò)誤,在運(yùn)行的時(shí)候才出現(xiàn)異常,這是一個(gè)安全隱患。
泛型是Java SE 1.5的新特性,泛型的本質(zhì)是參數(shù)化類型,也就是說(shuō)所操作的數(shù)據(jù)類型被指定為一個(gè)參數(shù)。這種參數(shù)類型可以用在類、接口和方法的創(chuàng)建中,分別稱為泛型類、泛型接口、泛型方法。
泛型的好處是在編譯的時(shí)候檢查類型安全,并且所有的強(qiáng)制轉(zhuǎn)換都是自動(dòng)和隱式的,提高代碼的重用率。
3.JAVA源文件中是否可以包括多個(gè)類,有什么限制
解答:一個(gè)java源文件中可以包含多個(gè)類,每個(gè)源文件中至多有一個(gè)public類,如果有的話,那么源文件的名字必須與之相同。如果源文件中沒有public類,則源文件用什么名字都可以,但最好還是具有特定的意義,免得自己都不記得里面寫的是什么了。
4.請(qǐng)解釋分布式事務(wù)管理?
解答:分布式事務(wù)是指事務(wù)的.參與者、支持事務(wù)的服務(wù)器、資源服務(wù)器以及事務(wù)管理器分別位于不同的分布式系統(tǒng)的不同節(jié)點(diǎn)之上。為了實(shí)現(xiàn)分布式事務(wù),需要使用下面將介紹的兩階段提交協(xié)議。
階段一:開始向事務(wù)涉及到的全部資源發(fā)送提交前信息。此時(shí),事務(wù)涉及到的資源還有最后一次機(jī)會(huì)來(lái)異常結(jié)束事務(wù)。如果任意一個(gè)資源決定異常結(jié)束事務(wù),則整個(gè)事務(wù)取消,不會(huì)進(jìn)行資源的更新。否則,事務(wù)將正常執(zhí)行,除非發(fā)生災(zāi)難性的失敗。為了防止會(huì)發(fā)生災(zāi)難性的失敗,所有資源的更新都會(huì)寫入到日志中。這些日志是永久性的,因此,這些日志會(huì)幸免遇難并且在失敗之后可以重新對(duì)所有資源進(jìn)行更新。
階段二:只在階段一沒有異常結(jié)束的時(shí)候才會(huì)發(fā)生。此時(shí),所有能被定位和單獨(dú)控制的資源管理器都將開始執(zhí)行真正的數(shù)據(jù)更新。 在分布式事務(wù)兩階段提交協(xié)議中,有一個(gè)主事務(wù)管理器負(fù)責(zé)充當(dāng)分布式事務(wù)協(xié)調(diào)器的角色。事務(wù)協(xié)調(diào)器負(fù)責(zé)整個(gè)事務(wù)并使之與網(wǎng)絡(luò)中的其他事務(wù)管理器協(xié)同工作。 為了實(shí)現(xiàn)分布式事務(wù),必須使用一種協(xié)議在分布式事務(wù)的各個(gè)參與者之間傳遞事務(wù)上下文信息,IIOP便是這種協(xié)議。這就要求不同開發(fā)商開發(fā)的事務(wù)參與者必須支持一種標(biāo)準(zhǔn)協(xié)議,才能實(shí)現(xiàn)分布式的事務(wù)。
2017java面試題和答案(二)
1.請(qǐng)用正則表達(dá)式匹配出QQ號(hào)(假設(shè)QQ號(hào)碼為5—10位);
解答: ^ \d{5,10}$
2. String, StringBuffer StringBuilder的區(qū)別。
解答:String的長(zhǎng)度是不可變的; StringBuffer的長(zhǎng)度是可變的,如果你對(duì)字符串中的內(nèi)容經(jīng)常進(jìn)行操作,特別是內(nèi)容要修改時(shí),那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法;線程安全;
StringBuilder是從 JDK 5 開始,為StringBuffer該類補(bǔ)充了一個(gè)單個(gè)線程使用的'等價(jià)類;通常應(yīng)該優(yōu)先使用 StringBuilder 類,因?yàn)樗С炙邢嗤牟僮,但由于它不?zhí)行同步,所以速度更快。
3.請(qǐng)寫出5種常見到的runtime exception。
解答:
NullPointerException:當(dāng)操作一個(gè)空引用時(shí)會(huì)出現(xiàn)此錯(cuò)誤。
NumberFormatException:數(shù)據(jù)格式轉(zhuǎn)換出現(xiàn)問(wèn)題時(shí)出現(xiàn)此異常。
ClassCastException:強(qiáng)制類型轉(zhuǎn)換類型不匹配時(shí)出現(xiàn)此異常。
ArrayIndexOutOfBoundsException:數(shù)組下標(biāo)越界,當(dāng)使用一個(gè)不存在的數(shù)組下標(biāo)時(shí)出現(xiàn)此異常。
ArithmeticException:數(shù)學(xué)運(yùn)行錯(cuò)誤時(shí)出現(xiàn)此異常
4.數(shù)組有沒有l(wèi)ength()這個(gè)方法?String有沒有l(wèi)ength()這個(gè)方法?
解答:數(shù)組沒有l(wèi)ength()方法 它有l(wèi)ength屬性
String有l(wèi)ength()方法。
5.請(qǐng)寫出一個(gè)單例模式。
解答:?jiǎn)卫J?Singleton pattern):確保一個(gè)類只有一個(gè)實(shí)例,并提供一個(gè)全局的訪問(wèn)點(diǎn)public class EagerSingleton { private static final EagerSingleton m_instance = new EagerSingleton(); /** * 私有的默認(rèn)構(gòu)造子 */ private EagerSingleton() { } /** * 靜態(tài)工廠方法 */ public static EagerSingleton getInstance() { return m_instance; } }
6.在java中,List是個(gè)接口,那實(shí)現(xiàn)List接口的類有哪些,有什么區(qū)別?
解答: ArrayList是使用數(shù)組方式存儲(chǔ)數(shù)據(jù),此數(shù)組元素?cái)?shù)大于實(shí)際存儲(chǔ)的數(shù)據(jù)以便增加和插入元素,它們都允許直接按序號(hào)索引元素,但是插入元素要涉及數(shù)組元素移動(dòng)等內(nèi)存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢,LinkedList使用雙向鏈表實(shí)現(xiàn)存儲(chǔ),按序號(hào)索引數(shù)據(jù)需要進(jìn)行前向或后向遍歷,但是插入數(shù)據(jù)時(shí)只需要記錄本項(xiàng)的前后項(xiàng)即可,所以插入速度較快。
2017java面試題和答案(三)
1.請(qǐng)寫出JavaScript中常用的三種事件。
解答: onclick,onblur,onChange
2.JavaScript如何定義數(shù)組。
解答: var arrTest=new Array();
3.JavaScript能否操作cookie和session?
解答:JavaScript可以操作cookie,但是不能操作session
4.char類型能否存儲(chǔ)一個(gè)中文字符?為什么
解答:可以。一個(gè)char是兩個(gè)字節(jié),而一個(gè)中文也是兩個(gè)字節(jié)。
5.Switch選擇語(yǔ)句能否作用在String【字符串】上,也就是能否這么寫:Switch(一個(gè)字符串變量)?
解答:不可以,只能處理int,byte,short,char,(其實(shí)是只能處理int,其它三種是可以promotion到int型)不能處理Sring 。
6.關(guān)鍵字final 分別修飾一個(gè)類,一個(gè)方法,一個(gè)變量,各起什么作用
解答:final修飾類是不能被繼承
fianl修飾方法不能在子類中被覆蓋
final修飾變量,稱為常量,初始化以后不能改變值。
7.啟動(dòng)一個(gè)線程是用run()還是start()?
解答:start()。
8.是否可以繼承String類
解答:不可以。因?yàn)镾tring類有final修飾。
【java面試題和答案】相關(guān)文章:
java應(yīng)屆生面試題和答案04-04
java基礎(chǔ)面試題及答案04-05
高級(jí)java面試題及答案04-04
java面試題目及答案04-05
華為java面試題及答案04-06
java高級(jí)面試題及答案04-06
java常見面試題及答案04-03
java開發(fā)面試題及答案04-04