中文国产日韩欧美视频,午夜精品999,色综合天天综合网国产成人网,色综合视频一区二区观看,国产高清在线精品,伊人色播,色综合久久天天综合观看

Java面試寶典版

學(xué)人智庫(kù) 時(shí)間:2018-01-13 我要投稿
【www.szmdbiao.com - 學(xué)人智庫(kù)】

項(xiàng)目介紹

在進(jìn)行技術(shù)面試前,提醒大家,必須要準(zhǔn)備好項(xiàng)目介紹,即需要準(zhǔn)備好你的簡(jiǎn)歷中列的所有項(xiàng)目的項(xiàng)目介紹!

面試時(shí)關(guān)于項(xiàng)目,面試官常見(jiàn)的問(wèn)題及回答(以銀行柜臺(tái)系統(tǒng)為例):

你給我簡(jiǎn)要介紹一下銀行柜臺(tái)系統(tǒng)?

1、簡(jiǎn)易銀行柜臺(tái)系統(tǒng)是模擬銀行柜臺(tái)的基本功能而做的一個(gè)系統(tǒng)。

2、系統(tǒng)分前臺(tái)和后臺(tái)部分,前臺(tái)部分是銀行柜臺(tái)人員操作的,包括:注冊(cè)登錄模塊、開(kāi)銷戶模塊、帳號(hào)管理模塊、存取錢轉(zhuǎn)賬模塊、柜臺(tái)人員信息管理;后臺(tái)部分是銀行管理者操作的,包括查看日志模塊、管理柜臺(tái)人員信息模塊;

3、我主要負(fù)責(zé)的是前臺(tái)的全部功能;

你詳細(xì)介紹一下你負(fù)責(zé)的模塊的功能?

1、我負(fù)責(zé)的注冊(cè)登錄模塊和柜臺(tái)人員信息模塊實(shí)際上是管理柜臺(tái)人員信息的,內(nèi)容比較簡(jiǎn)單;

2、開(kāi)銷戶模塊、帳號(hào)管理模塊、存取錢轉(zhuǎn)賬模塊是為銀行儲(chǔ)戶服務(wù)的模塊。其中開(kāi)銷戶就是為儲(chǔ)戶開(kāi)戶、銷戶的功能,賬戶管理模塊就是幫儲(chǔ)戶凍結(jié)帳號(hào)、修改密碼等功能,存取錢轉(zhuǎn)賬模塊就是為儲(chǔ)戶存錢、取錢,幫儲(chǔ)戶轉(zhuǎn)賬的功能;

這個(gè)項(xiàng)目幾個(gè)人做的?用了多長(zhǎng)時(shí)間?

1、 這個(gè)項(xiàng)目比較小,由2個(gè)人合作完成的,我負(fù)責(zé)的是前臺(tái)部分;

2、 項(xiàng)目大概用了4天左右的時(shí)間;

這個(gè)項(xiàng)目使用了什么技術(shù)?

1、 這個(gè)項(xiàng)目使用Struts2、Hibernate3和MySQL

你在做這個(gè)項(xiàng)目的時(shí)候,遇到了什么困難,怎么解決的?

1、 比如在Hiberante的使用,關(guān)于表之間關(guān)聯(lián)關(guān)系的配置,我開(kāi)始操作的時(shí)候不太熟悉,后來(lái)通過(guò)查文檔、和其他同學(xué)溝通的方式,這個(gè)問(wèn)題也得到了解決;

備注:如果你在這里提到了表之間關(guān)聯(lián)關(guān)系的配置,那么這個(gè)問(wèn)題面試官非常有可能接下去就問(wèn)這個(gè)技術(shù)問(wèn)題,所以務(wù)必認(rèn)真準(zhǔn)備這個(gè)技術(shù)問(wèn)題。

前言

這套面試題主要目的是幫助那些還沒(méi)有java軟件開(kāi)發(fā)實(shí)際工作經(jīng)驗(yàn),而正在努力尋找java軟件開(kāi)發(fā)工作的學(xué)生在筆試/面試時(shí)更好地贏得好的結(jié)果。由于這套試題涉及的范圍很泛,很廣,很雜,大家不可能一天兩天就看完和學(xué)完這套面試寶典,即使你已經(jīng)學(xué)過(guò)了有關(guān)的技術(shù),那么至少也需要半個(gè)月的時(shí)間才能消化和掌握這套面試寶典,所以,大家應(yīng)該早作準(zhǔn)備,從拿到這套面試寶典之日起,就要堅(jiān)持在每天閑暇之余學(xué)習(xí)其中幾道題目,日積月累,等到出去面試時(shí),一切都水到渠成,面試時(shí)就自然會(huì)游刃有余了。

答題時(shí),先答是什么,再答有什么作用,要注意什么(這條可以沒(méi)有)

比如說(shuō)面試官問(wèn):給我介紹一下ORM?

較好回答:

1、 ORM就是Object Relational Mapping,就是對(duì)象關(guān)系映射;

2、 作用:我們?cè)趯懗绦虻臅r(shí)候,用的是面向?qū)ο蟮姆椒,但是在關(guān)系型數(shù)據(jù)庫(kù)里,存的是一條條的記錄;為了用純面向?qū)ο蟮乃枷虢鉀Q問(wèn)題,所以需要將程序中的對(duì)象和數(shù)據(jù)庫(kù)中的記錄建立起映射關(guān)系,ORM就是將對(duì)象和數(shù)據(jù)庫(kù)中的記錄建立起映射的技術(shù);

答案要層次分明,條理清晰,從這些表面的東西也可以看出一個(gè)人的習(xí)慣、辦事風(fēng)格、條理等。

答題不局限于什么格式和形式,就是要將自己的掌握的技術(shù)內(nèi)容展現(xiàn)出來(lái),比如可以采用舉例的說(shuō)法:

需要特別注意的是,因?yàn)槊嬖嚬俦旧硭綄哟尾积R,不要因?yàn)槿思翌}目問(wèn)的模棱兩可(或者題目問(wèn)的不準(zhǔn)確),你就心里膽怯和沒(méi)底氣了,不敢回答了。你要大膽地提出對(duì)方題目中你不清楚的地方,希望對(duì)方能重新明確的提出問(wèn)題?

例如,你可以問(wèn):您提的問(wèn)題,我剛才沒(méi)有完全聽(tīng)明白,能不能再說(shuō)一遍。

一. Java基礎(chǔ)部分

1、 請(qǐng)說(shuō)一下break和continue的區(qū)別?

1、這兩個(gè)語(yǔ)句都可以用于跳出循環(huán)的;

2、break是中止循環(huán),執(zhí)行循環(huán)體以后的語(yǔ)句,而continue是跳出本次循環(huán),執(zhí)行下一次循環(huán);

2、 switch 中用于判斷的表達(dá)式,可以用哪些數(shù)據(jù)類型?

1、可以是char、byte、short、int,不可以是long、String等其他類型;

2、從JDK1.7開(kāi)始,支持String類型;

3、 char型變量中能不能存貯一個(gè)中文漢字?為什么?

Java里采用了Unicode編碼格式,Unicode編碼中一個(gè)char型占用2個(gè)字節(jié),而一個(gè)漢字也是占用2個(gè)字節(jié),所以可以存儲(chǔ)中文漢字。

備注:C語(yǔ)言里,char占用1個(gè)字節(jié),不用存漢字。

4、 靜態(tài)變量和實(shí)例變量的區(qū)別?

在語(yǔ)法定義上的區(qū)別:靜態(tài)變量前要加static關(guān)鍵字,而實(shí)例變量前則不加。

在程序運(yùn)行時(shí)的區(qū)別:實(shí)例變量屬于某個(gè)對(duì)象的屬性,必須創(chuàng)建了實(shí)例對(duì)象,其中的實(shí)例變量才會(huì)被分配空間,才能使用這個(gè)實(shí)例變量。靜態(tài)變量不屬于某個(gè)實(shí)例對(duì)象,而是屬于類,所以也稱為類變量,不用創(chuàng)建任何實(shí)例對(duì)象,靜態(tài)變量就會(huì)被分配空間,靜態(tài)變量就可以被使用了。總之,實(shí)例變量必須創(chuàng)建對(duì)象后才可以通過(guò)這個(gè)對(duì)象來(lái)使用,靜態(tài)變量則可以直接使用類名來(lái)引用。

5、 是否可以從一個(gè)static方法內(nèi)部發(fā)出對(duì)非static方法的調(diào)用?

不可以。因?yàn)榉莝tatic方法是要與對(duì)象關(guān)聯(lián)在一起的,必須創(chuàng)建一個(gè)對(duì)象后,才可以在該對(duì)象上進(jìn)行方法調(diào)用,而static方法調(diào)用時(shí)不需要?jiǎng)?chuàng)建對(duì)象,可以直接調(diào)用。也就是說(shuō),當(dāng)一個(gè)static方法被調(diào)用時(shí),可能還沒(méi)有創(chuàng)建任何實(shí)例對(duì)象,如果從一個(gè)static方法中發(fā)出對(duì)非static方法的調(diào)用,那個(gè)非static方法是關(guān)聯(lián)到哪個(gè)對(duì)象上的呢?這個(gè)邏輯無(wú)法成立,所以,一個(gè)static方法內(nèi)部發(fā)出對(duì)非static方法的調(diào)用。

6、 Integer與int的區(qū)別

1、int是基本數(shù)據(jù)類型,Integer是包裝類;

2、int的默認(rèn)值是0,Interger的默認(rèn)值是null;

7、 Overload和Override的區(qū)別。參數(shù)列表相同,返回值不同的方法,是否是重載方法?

Overload是重載的意思,Override是覆蓋的意思,也就是重寫。

重載是指在一個(gè)類里,方法名相同,參數(shù)不同;

重寫是指子類繼承父類,子類里重新編寫了父類中的同名(同參數(shù))方法,也就是覆蓋了父類的方法;

不是!因?yàn)橹剌d必須要求參數(shù)列表不同!

8、 接口是否可繼承接口? 抽象類是否可實(shí)現(xiàn)(implements)接口? 抽象類是否可繼承具體類(concrete class)?

接口可以繼承接口。抽象類可以實(shí)現(xiàn)(implements)接口,抽象類是否可繼承具體類。

備注:只要明白了接口和抽象類的本質(zhì)和作用,這些問(wèn)題都很好回答。

只有記住抽象類與普通類的唯一區(qū)別就是不能創(chuàng)建實(shí)例對(duì)象和允許有abstract方法。

9、 面向?qū)ο笥心娜筇匦?

1、面向?qū)ο笥腥筇匦,分別是:封裝、繼承和多態(tài)。

2、封裝:面向?qū)ο蟮姆庋b就是把描述一個(gè)對(duì)象的屬性和行為的代碼封裝在一個(gè)類中,有些屬性是不希望公開(kāi)的,或者說(shuō)被其他對(duì)象訪問(wèn)的,所以我們使用private修飾該屬性,使其隱藏起來(lái);類中提供了方法(用public修飾),常用的是get、set方法,可以操作這些被隱藏的屬性,其他類可以通過(guò)調(diào)用這些方法,改變隱藏屬性的值!

下面的回答是更高要求,不需要學(xué)生必須掌握:

封裝是保證軟件部件具有優(yōu)良的模塊性的基礎(chǔ),封裝的目標(biāo)就是要實(shí)現(xiàn)軟件部件的“高內(nèi)聚、低耦合”,防止程序相互依賴性而帶來(lái)的變動(dòng)影響。在面向?qū)ο蟮木幊陶Z(yǔ)言中,對(duì)象是封裝的最基本單位,面向?qū)ο蟮姆庋b比傳統(tǒng)語(yǔ)言的封裝更為清晰、更為有力。

3、繼承:在定義和實(shí)現(xiàn)一個(gè)類的時(shí)候,可以在一個(gè)已經(jīng)存在的類的基礎(chǔ)之上來(lái)進(jìn)行,使用extends關(guān)鍵字實(shí)現(xiàn)繼承;子類中可以加入若干新的內(nèi)容,或修改原來(lái)的方法使之更適合特殊的需要,這就是繼承。繼承是子類自動(dòng)共享父類數(shù)據(jù)和方法的機(jī)制,這是類之間的一種關(guān)系,提高了軟件的可重用性和可擴(kuò)展性。

4、多態(tài):多態(tài)就是在聲明時(shí)使用父類,在實(shí)現(xiàn)或調(diào)用時(shí)使用具體的子類;即不修改程序代碼就可以改變程序運(yùn)行時(shí)所綁定的具體代碼,讓程序可以選擇多個(gè)運(yùn)行狀態(tài),這就是多態(tài)性,多態(tài)增強(qiáng)了軟件的靈活性和擴(kuò)展性。這里可以舉個(gè)例子,比如聲明時(shí)使用的是動(dòng)物類,調(diào)用時(shí)傳遞的是一個(gè)貓類(動(dòng)物類的子類)的對(duì)象,具體執(zhí)行父類里動(dòng)物——吃的方法時(shí),實(shí)際執(zhí)行的是貓——吃的方法。

10、 abstract class和interface有什么區(qū)別?

1、抽象類里面可以用普通方法,而接口中的方法全部都是抽象的;

2、在應(yīng)用范圍上來(lái)說(shuō),接口往往在程序設(shè)計(jì)的時(shí)候,用來(lái)定義程序模塊的功能,方便各模塊協(xié)同工作;抽象類是對(duì)相似類進(jìn)行抽象,形成一個(gè)抽象的父類可供重用!

11、 String是最基本的數(shù)據(jù)類型嗎?

1、String是個(gè)類,不是基本數(shù)據(jù)類型;

2、基本數(shù)據(jù)類型包括byte、int、char、long、float、double、boolean和short。

12、 String 和StringBuffer的區(qū)別

1、String是個(gè)不可變長(zhǎng)度的字符串,而StringBuffer是個(gè)可變長(zhǎng)度的字符串;

2、在對(duì)String類進(jìn)行操作的時(shí)候(例如增加字符),實(shí)際上是在內(nèi)存中產(chǎn)生了一個(gè)新的String對(duì)象; 而StringBuffer是給原對(duì)象增加字符,不是新創(chuàng)建一個(gè)對(duì)象;

13、 數(shù)組有沒(méi)有l(wèi)ength()這個(gè)方法? String有沒(méi)有l(wèi)ength()這個(gè)方法?

數(shù)組沒(méi)有l(wèi)ength()這個(gè)方法,有l(wèi)ength的屬性。String有l(wèi)ength()這個(gè)方法。

14、 final, finally, finalize的區(qū)別。

final 用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。

finally是異常處理語(yǔ)句結(jié)構(gòu)的一部分,表示總是執(zhí)行。

finalize是Object類的一個(gè)方法,在垃圾收集器執(zhí)行的時(shí)候會(huì)調(diào)用被回收對(duì)象的此方法,可以覆蓋此方法提供垃圾收集時(shí)的其他資源回收,例如關(guān)閉文件等。JVM不保證此方法總被調(diào)用

15、 請(qǐng)說(shuō)一下你常用的幾種異常?

比如:

1、 空指針異常;

2、 數(shù)組下標(biāo)越界;

3、 類型轉(zhuǎn)換異常;

4、 算數(shù)異常,例如除數(shù)為零;

5、 IO異常,比如說(shuō)找不到文件;

6、 找不到類異常;

7、 sql異常,例如sql語(yǔ)句不能正常運(yùn)行;

8、 …

16、 線程的基本概念?線程的基本狀

[Java面試寶典2013版]