大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 全面的Java面試題集及參考答案

全面的Java面試題集及參考答案

更新時(shí)間:2019-08-22 14:07:34 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2722次

  今天要談的主題是關(guān)于求職.求職是在每個(gè)技術(shù)人員的生涯中都要經(jīng)歷多次,對(duì)于我們大部分人而言,在進(jìn)入自己心儀的公司之前少不了準(zhǔn)備工作,有一份全面細(xì)致面試題將幫助我們減少許多麻煩.在跳槽季來(lái)臨之前,特地做這個(gè)系列的文章,一方面幫助自己鞏固下基礎(chǔ),另一方面也希望幫助想要換工作的朋友.


Java常見面試題匯總.jpg


  相關(guān)概念


  面向?qū)ο蟮娜齻€(gè)特征


  封裝,繼承,多態(tài).這個(gè)應(yīng)該是人人皆知.有時(shí)候也會(huì)加上抽象.


  多態(tài)的好處


  允許不同類對(duì)象對(duì)同一消息做出響應(yīng),即同一消息可以根據(jù)發(fā)送對(duì)象的不同而采用多種不同的行為方式(發(fā)送消息就是函數(shù)調(diào)用).主要有以下優(yōu)點(diǎn):


  可替換性:多態(tài)對(duì)已存在代碼具有可替換性.


  可擴(kuò)充性:增加新的子類不影響已經(jīng)存在的類結(jié)構(gòu).


  接口性:多態(tài)是超類通過(guò)方法簽名,向子類提供一個(gè)公共接口,由子類來(lái)完善或者重寫它來(lái)實(shí)現(xiàn)的.


  靈活性.


  簡(jiǎn)化性.


  代碼中如何實(shí)現(xiàn)多態(tài)


  實(shí)現(xiàn)多態(tài)主要有以下三種方式:


  1.接口實(shí)現(xiàn)


  2.繼承父類重寫方法


  3.同一類中進(jìn)行方法重載


  虛擬機(jī)是如何實(shí)現(xiàn)多態(tài)的


  動(dòng)態(tài)綁定技術(shù)(dynamicbinding),執(zhí)行期間判斷所引用對(duì)象的實(shí)際類型,根據(jù)實(shí)際類型調(diào)用對(duì)應(yīng)的方法.


  接口的意義


  接口的意義用三個(gè)詞就可以概括:規(guī)范,擴(kuò)展,回調(diào).


  抽象類的意義


  抽象類的意義可以用三句話來(lái)概括:


  為其他子類提供一個(gè)公共的類型


  封裝子類中重復(fù)定義的內(nèi)容


  定義抽象方法,子類雖然有不同的實(shí)現(xiàn),但是定義時(shí)一致的


  接口和抽象類的區(qū)別


  比較抽象類接口默認(rèn)方法抽象類可以有默認(rèn)的方法實(shí)現(xiàn)java8之前,接口中不存在方法的實(shí)現(xiàn).實(shí)現(xiàn)方式子類使用extends關(guān)鍵字來(lái)繼承抽象類.如果子類不是抽象類,子類需要提供抽象類中所聲明方法的實(shí)現(xiàn).子類使用implements來(lái)實(shí)現(xiàn)接口,需要提供接口中所有聲明的實(shí)現(xiàn).構(gòu)造器抽象類中可以有構(gòu)造器,接口中不能和正常類區(qū)別抽象類不能被實(shí)例化接口則是完全不同的類型訪問(wèn)修飾符抽象方法可以有public,protected和default等修飾接口默認(rèn)是public,不能使用其他修飾符多繼承一個(gè)子類只能存在一個(gè)父類一個(gè)子類可以存在多個(gè)接口添加新方法想抽象類中添加新方法,可以提供默認(rèn)的實(shí)現(xiàn),因此可以不修改子類現(xiàn)有的代碼如果往接口中添加新方法,則子類中需要實(shí)現(xiàn)該方法.


  父類的靜態(tài)方法能否被子類重寫


  不能.重寫只適用于實(shí)例方法,不能用于靜態(tài)方法,而子類當(dāng)中含有和父類相同簽名的靜態(tài)方法,我們一般稱之為隱藏.


  什么是不可變對(duì)象


  不可變對(duì)象指對(duì)象一旦被創(chuàng)建,狀態(tài)就不能再改變。任何修改都會(huì)創(chuàng)建一個(gè)新的對(duì)象,如String、Integer及其它包裝類。


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


  靜態(tài)變量存儲(chǔ)在方法區(qū),屬于類所有.實(shí)例變量存儲(chǔ)在堆當(dāng)中,其引用存在當(dāng)前線程棧.


  能否創(chuàng)建一個(gè)包含可變對(duì)象的不可變對(duì)象?


  當(dāng)然可以創(chuàng)建一個(gè)包含可變對(duì)象的不可變對(duì)象的,你只需要謹(jǐn)慎一點(diǎn),不要共享可變對(duì)象的引用就可以了,如果需要變化時(shí),就返回原對(duì)象的一個(gè)拷貝。最常見的例子就是對(duì)象中包含一個(gè)日期對(duì)象的引用.


  java創(chuàng)建對(duì)象的幾種方式


  采用new


  通過(guò)反射


  采用clone


  通過(guò)序列化機(jī)制


  前2者都需要顯式地調(diào)用構(gòu)造方法.造成耦合性最高的恰好是第一種,因此你發(fā)現(xiàn)無(wú)論什么框架,只要涉及到解耦必先減少new的使用.


  switch中能否使用string做參數(shù)


  在idk1.7之前,switch只能支持byte,short,char,int或者其對(duì)應(yīng)的封裝類以及Enum類型。從idk1.7之后switch開始支持String.


  switch能否作用在byte,long上?


  可以用在byte上,但是不能用在long上.


  Strings1=”ab”,Strings2=”a”+”b”,Strings3=”a”,Strings4=”b”,s5=s3+s4請(qǐng)問(wèn)s5==s2返回什么?


  返回false.在編譯過(guò)程中,編譯器會(huì)將s2直接優(yōu)化為”ab”,會(huì)將其放置在常量池當(dāng)中,s5則是被創(chuàng)建在堆區(qū),相當(dāng)于s5=newString(“ab”);


  你對(duì)String對(duì)象的intern()熟悉么?


  intern()方法會(huì)首先從常量池中查找是否存在該常量值,如果常量池中不存在則現(xiàn)在常量池中創(chuàng)建,如果已經(jīng)存在則直接返回.


  比如


  Strings1=”aa”;


  Strings2=s1.intern();


  System.out.print(s1==s2);//返回true


  Object中有哪些公共方法?


  equals()


  clone()


  getClass()


  notify(),notifyAll(),wait()


  toString


  java當(dāng)中的四種引用


  強(qiáng)引用,軟引用,弱引用,虛引用.不同的引用類型主要體現(xiàn)在GC上:


  強(qiáng)引用:如果一個(gè)對(duì)象具有強(qiáng)引用,它就不會(huì)被垃圾回收器回收。即使當(dāng)前內(nèi)存空間不足,JVM也不會(huì)回收它,而是拋出OutOfMemoryError錯(cuò)誤,使程序異常終止。如果想中斷強(qiáng)引用和某個(gè)對(duì)象之間的關(guān)聯(lián),可以顯式地將引用賦值為null,這樣一來(lái)的話,JVM在合適的時(shí)間就會(huì)回收該對(duì)象


  軟引用:在使用軟引用時(shí),如果內(nèi)存的空間足夠,軟引用就能繼續(xù)被使用,而不會(huì)被垃圾回收器回收,只有在內(nèi)存不足時(shí),軟引用才會(huì)被垃圾回收器回收。


  弱引用:具有弱引用的對(duì)象擁有的生命周期更短暫。因?yàn)楫?dāng)JVM進(jìn)行垃圾回收,一旦發(fā)現(xiàn)弱引用對(duì)象,無(wú)論當(dāng)前內(nèi)存空間是否充足,都會(huì)將弱引用回收。不過(guò)由于垃圾回收器是一個(gè)優(yōu)先級(jí)較低的線程,所以并不一定能迅速發(fā)現(xiàn)弱引用對(duì)象


  虛引用:顧名思義,就是形同虛設(shè),如果一個(gè)對(duì)象僅持有虛引用,那么它相當(dāng)于沒有引用,在任何時(shí)候都可能被垃圾回收器回收。


  為什么要有不同的引用類型


  不像C語(yǔ)言,我們可以控制內(nèi)存的申請(qǐng)和釋放,在Java中有時(shí)候我們需要適當(dāng)?shù)目刂茖?duì)象被回收的時(shí)機(jī),因此就誕生了不同的引用類型,可以說(shuō)不同的引用類型實(shí)則是對(duì)GC回收時(shí)機(jī)不可控的妥協(xié).有以下幾個(gè)使用場(chǎng)景可以充分的說(shuō)明:


  利用軟引用和弱引用解決OOM問(wèn)題:用一個(gè)HashMap來(lái)保存圖片的路徑和相應(yīng)圖片對(duì)象關(guān)聯(lián)的軟引用之間的映射關(guān)系,在內(nèi)存不足時(shí),JVM會(huì)自動(dòng)回收這些緩存圖片對(duì)象所占用的空間,從而有效地避免了OOM的問(wèn)題.


  通過(guò)軟引用實(shí)現(xiàn)Java對(duì)象的高速緩存:比如我們創(chuàng)建了一Person的類,如果每次需要查詢一個(gè)人的信息,哪怕是幾秒中之前剛剛查詢過(guò)的,都要重新構(gòu)建一個(gè)實(shí)例,這將引起大量Person對(duì)象的消耗,并且由于這些對(duì)象的生命周期相對(duì)較短,會(huì)引起多次GC影響性能。此時(shí),通過(guò)軟引用和HashMap的結(jié)合可以構(gòu)建高速緩存,提供性能.


  java中==和eqauls()的區(qū)別,equals()和`hashcode的區(qū)別


  ==是運(yùn)算符,用于比較兩個(gè)變量是否相等,而equals是Object類的方法,用于比較兩個(gè)對(duì)象是否相等.默認(rèn)Object類的equals方法是比較兩個(gè)對(duì)象的地址,此時(shí)和==的結(jié)果一樣.換句話說(shuō):基本類型比較用==,比較的是他們的值.默認(rèn)下,對(duì)象用==比較時(shí),比較的是內(nèi)存地址,如果需要比較對(duì)象內(nèi)容,需要重寫equal方法


  equals()和hashcode()的聯(lián)系


  hashCode()是Object類的一個(gè)方法,返回一個(gè)哈希值.如果兩個(gè)對(duì)象根據(jù)equal()方法比較相等,那么調(diào)用這兩個(gè)對(duì)象中任意一個(gè)對(duì)象的hashCode()方法必須產(chǎn)生相同的哈希值.


  如果兩個(gè)對(duì)象根據(jù)eqaul()方法比較不相等,那么產(chǎn)生的哈希值不一定相等(碰撞的情況下還是會(huì)相等的.)


  a.hashCode()有什么用?與a.equals(b)有什么關(guān)系


  hashCode()方法是相應(yīng)對(duì)象整型的hash值。它常用于基于hash的集合類,如Hashtable、HashMap、LinkedHashMap等等。它與equals()方法關(guān)系特別緊密。根據(jù)Java規(guī)范,使用equal()方法來(lái)判斷兩個(gè)相等的對(duì)象,必須具有相同的hashcode。


  將對(duì)象放入到集合中時(shí),首先判斷要放入對(duì)象的hashcode是否已經(jīng)在集合中存在,不存在則直接放入集合.如果hashcode相等,然后通過(guò)equal()方法判斷要放入對(duì)象與集合中的任意對(duì)象是否相等:如果equal()判斷不相等,直接將該元素放入集合中,否則不放入.


  有沒有可能兩個(gè)不相等的對(duì)象有相同的hashcode


  有可能,兩個(gè)不相等的對(duì)象可能會(huì)有相同的hashcode值,這就是為什么在hashmap中會(huì)有沖突。如果兩個(gè)對(duì)象相等,必須有相同的hashcode值,反之不成立.


提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-10-10 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 欧美色另类 | 成在线人免费视频一区二区三区 | 午夜一级毛片不卡 | 亚洲人成亚洲精品 | 91中文字幕 | 青青久久国产 | 精品久久久久久免费影院 | 国内国产精品天干天干 | 国产高清不卡一区二区 | 五月天丁香婷婷综合久久 | 99热这里只有免费国产精品 | 日韩欧美网站 | 亚洲欧美日韩一级特黄在线 | 精品久久在线观看 | 久久国产自偷自免费一区100 | 国产精品久久久久久久久久久威 | 色婷婷综合网 | 亚洲欧美成人在线 | 欧美精品一区二区三区在线 | 欧美xxx午夜免费视频 | 天天操天天透 | 欧美激情亚洲精品日韩1区2区 | 国产欧美亚洲另类第一页 | 午夜骚 | 日韩在线观看一区 | 欧美国产大片 | 日本一区二区精品 | 四虎影视1515hh四虎免费 | 第一福利视频 | 精品久久中文久久久 | 国产人伦视频在线观看 | 男人的天堂久久香蕉国产 | 欧美日本在线 | 婷婷的久久五月综合先锋影音 | 夜色资源在线观看免费 | 成人午夜私人影院入口 | 爱久久www.35669| 免费观看成人久久网免费观看 | 成人国产在线不卡视频 | a在线观看 | 欧美a级毛片 |