欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

面試大廠(chǎng)90%會(huì)被問(wèn)到的Java面試題(附答案)

  發(fā)布時(shí)間:2020-06-15 16:55:38   作者:佚名   我要評(píng)論
這篇文章主要介紹了面試大廠(chǎng)90%會(huì)被問(wèn)到的Java面試題(附答案),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

面向?qū)ο蟮娜齻€(gè)特征
封裝,繼承,多態(tài)

多態(tài)的好處,代碼中如何實(shí)現(xiàn)多態(tài),虛擬機(jī)中如何實(shí)現(xiàn)多態(tài)
允許不同類(lèi)對(duì)象對(duì)同一消息作出相應(yīng),好處如下:

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

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

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

靈活性

簡(jiǎn)化性

代碼中:接口實(shí)現(xiàn),繼承父類(lèi)重寫(xiě)方法,同一類(lèi)中方法重載

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

接口的意義,抽象類(lèi)的意義
接口:規(guī)范,拓展,回調(diào)

抽象類(lèi):為其他子類(lèi)提供一個(gè)公共的類(lèi)型;封裝子類(lèi)中重復(fù)定義個(gè)內(nèi)容;定義抽象方法,子類(lèi)雖然有不同的實(shí)現(xiàn),但是定義時(shí)是一致的

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

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

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

能否創(chuàng)建一個(gè)包含可變對(duì)象的不可變對(duì)象
可以,需要注意不要共享可變對(duì)象的引用,如果需要變化時(shí),就返回原對(duì)象的一個(gè)拷貝。舉例:日期對(duì)象。

Java創(chuàng)建對(duì)象的幾種方式
new,反射,clone(),通過(guò)序列化機(jī)制

Switch能否使用String做參數(shù),能否作用在byte,long上
Java7以前不能使用String做參數(shù),可以使用byte,short,char,int及封裝類(lèi)和枚舉,Java7之后可以使用String,一直不能用long

說(shuō)說(shuō)string的intern()方法
intern()方法會(huì)先從常量池中查詢(xún)是否存在該常量值,如果不存在則創(chuàng)建,否則直接放回

Object有哪些公用方法
euqals(),toString(),clone(),wait(),notify(),nofifyAll(),getClass()

Java中的四種引用
強(qiáng)引用,軟引用,弱引用,虛引用。不同的引用類(lèi)型主要體現(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)的話(huà),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í)較低的線(xiàn)程,所以并不一定能迅速發(fā)現(xiàn)弱引用對(duì)象。
       虛引用:顧名思義,就是形同虛設(shè),如果一個(gè)對(duì)象僅持有虛引用,那么它相當(dāng)于沒(méi)有引用,在任何時(shí)候都可能被垃圾回收器回收。

WeakReference與SoftReference的區(qū)別
雖然 WeakReference 與 SoftReference 都有利于提高 GC 和 內(nèi)存的效率,但是 WeakReference ,一旦失去最后一個(gè)強(qiáng)引用,就會(huì)被 GC 回收,而軟引用雖然不能阻止被回收,但是可以延遲到 JVM 內(nèi)存不足的時(shí)候。

為什么要有不同的引用類(lèi)型
不像C語(yǔ)言,我們可以控制內(nèi)存的申請(qǐng)和釋放,在Java中有時(shí)候我們需要適當(dāng)?shù)目刂茖?duì)象被回收的時(shí)機(jī),因此就誕生了不同的引用類(lèi)型,可以說(shuō)不同的引用類(lèi)型實(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的類(lèi),如果每次需要查詢(xún)一個(gè)人的信息,哪怕是幾秒中之前剛剛查詢(xún)過(guò)的,都要重新構(gòu)建一個(gè)實(shí)例,這將引起大量Person對(duì)象的消耗,并且由于這些對(duì)象的生命周期相對(duì)較短,會(huì)引起多次GC影響性能。此時(shí),通過(guò)軟引用和 HashMap 的結(jié)合可以構(gòu)建高速緩存,提供性能。

Java中==和equals()的區(qū)別,equals()和hashcode()的區(qū)別及聯(lián)系
==是運(yùn)算符,比較兩個(gè)變量是否相等,而equals是Object類(lèi)的方法,用來(lái)比較兩個(gè)對(duì)象是否相等。

默認(rèn)equals方法比較兩個(gè)對(duì)象的地址,此時(shí)結(jié)果相同,如果要比較內(nèi)容,則要重寫(xiě)equals方法

hashcode()是Object類(lèi)的一個(gè)方法,返回一個(gè)hash值,如果equals()相同則hashcode()相同,反之不然。

有沒(méi)有可能兩個(gè)不相等的對(duì)象有相同的hashcode
有可能,兩個(gè)不相等的對(duì)象可能有相同的hashcode值,只就是hashmap中會(huì)有沖突,如果對(duì)象相等,則hashcode相等,反之不然

可以在hashcode中使用隨機(jī)數(shù)字嗎
不可以,hashcode必須是相同的值

a==b與a.equals(b)有什么區(qū)別
如果a和b都是對(duì)象,a==b比較的是引用,只有當(dāng)a和b指向堆中同一個(gè)對(duì)象才會(huì)返回true,而a.equals(b)進(jìn)行邏輯比較,通常呀哦重寫(xiě)該方法提供邏輯性一個(gè)的比。

3*0.1==0.3返回值是什么
false,因?yàn)橛行└↑c(diǎn)數(shù)不能精確的表示出來(lái)

a=a+b與a+=b有什么區(qū)別嗎
+= 操作符會(huì)隱式轉(zhuǎn)換,例如下題

short s1 = 1;s1 = s1 +1;該代碼是否有錯(cuò)誤,如果有錯(cuò)誤怎么修改
有錯(cuò)誤,s1 = (short)(s1+1);

short s1 = 1;s1+= 1是否有錯(cuò)誤,如果有錯(cuò)誤怎么修改
+=操作符會(huì)自動(dòng)對(duì)右邊的表達(dá)式結(jié)果強(qiáng)轉(zhuǎn)匹配左邊的數(shù)據(jù)類(lèi)型,所以沒(méi)錯(cuò)

&與&&的區(qū)別
前者是位操作,后者是邏輯運(yùn)算符

一個(gè)Java內(nèi)部可以有類(lèi)?(非內(nèi)部類(lèi))
一個(gè)Java內(nèi)部只能有一個(gè)public的類(lèi),可以有多個(gè)default的類(lèi)

如何正確的退出多層嵌套循環(huán)
使用標(biāo)號(hào)和break;

內(nèi)部類(lèi)的作用
內(nèi)部類(lèi)提供了更好的封裝,除了該外圍類(lèi),其他類(lèi)都不能訪(fǎng)問(wèn)

final,finally,finalize的不同之處
fianl是一個(gè)修飾符,可以修飾類(lèi),方法,變量的。finally是一個(gè)關(guān)鍵字,捕獲異常是與try連用的,一定會(huì)執(zhí)行。finalize是在對(duì)象被回收之前調(diào)用的方法,給對(duì)象自己最后一個(gè)復(fù)活的機(jī)會(huì),但是什么時(shí)候調(diào)用finalize沒(méi)有保證

clone()是哪個(gè)類(lèi)的方法
java.lang.Cloneable的一個(gè)標(biāo)示性接口,不包含任何方法,clone方法在object中定義,clone()方法是一個(gè)本地方法,是由c或c++實(shí)現(xiàn)的

深拷貝和淺拷貝的區(qū)別是什么
淺拷貝:僅僅復(fù)制所考慮的對(duì)象,而不復(fù)制它引用的對(duì)象

深拷貝:所有的對(duì)象都復(fù)制

static有哪些用法
靜態(tài)變量和靜態(tài)方法,被類(lèi)實(shí)例所共享。

靜態(tài)塊,初始化操作。

修飾內(nèi)部類(lèi),為靜態(tài)內(nèi)部類(lèi)

導(dǎo)包,指定導(dǎo)入某個(gè)類(lèi)中的靜態(tài)資源,并且不需要使用類(lèi)名

final有哪些用法
被final修飾的方法不能被繼承,修飾的方法不能被重寫(xiě),修飾的變量不能被改變。被final修飾的方法,JVM會(huì)嘗試將其內(nèi)關(guān)聯(lián),以提高運(yùn)行效率,被修飾的變量會(huì)在編譯階段存在常量池中。

編譯器對(duì)final域要遵守兩個(gè)重排規(guī)則:

1,在構(gòu)造器內(nèi)對(duì)一個(gè)final域的寫(xiě)入,與隨后把這個(gè)構(gòu)造對(duì)象的引用賦值給一個(gè)引用變量,這兩個(gè)操作之間不能重排序

2,初次讀一個(gè)包含final域?qū)ο蟮囊?,與隨后初次讀這個(gè)final域,這兩個(gè)操作之間不能重排序

到此這篇關(guān)于面試大廠(chǎng)90%會(huì)被問(wèn)到的Java面試題(附答案)的文章就介紹到這了,更多相關(guān)Java面試題內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

相關(guān)文章

  • 三年經(jīng)驗(yàn)網(wǎng)易、滴滴、點(diǎn)我Java崗面試經(jīng)驗(yàn)匯總

    這篇文章主要介紹了三年經(jīng)驗(yàn)網(wǎng)易、滴滴、點(diǎn)我Java崗面試經(jīng)驗(yàn)匯總,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-12
  • java基礎(chǔ)面試題整理小結(jié)

    本文是小編給大家收藏整理的關(guān)于java基礎(chǔ)面試題小結(jié),在面試中經(jīng)常會(huì)被問(wèn)題,今天小編特此整理把內(nèi)容分享到腳本之家平臺(tái),需要的朋友參考下吧
    2020-05-19
  • 史上最全阿里Java面試題目大匯總(強(qiáng)烈建議收藏)

    這篇文章主要介紹了史上最全阿里Java面試題目大匯總,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-08
  • 最全Java面試208題,涵蓋大廠(chǎng)必考范圍

    這篇文章主要介紹了最全Java面試208題,涵蓋大廠(chǎng)必考范圍,熟悉本文中列出的知識(shí)點(diǎn)會(huì)大大增加通過(guò)前兩輪技術(shù)面試的幾率,感興趣的可以了解一下
    2020-05-07
  • 2020年最新版Java面試題大全

    這篇文章主要介紹了2020年最新版Java面試題大全,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-16
  • 100+經(jīng)典Java面試題及答案解析

    這篇文章主要介紹了100+經(jīng)典Java面試題及答案解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)
    2020-04-09
  • 面試百度、阿里、騰訊,這134道Java面試題你會(huì)多少

    這篇文章主要介紹了面試百度、阿里、騰訊,這134道Java面試題你會(huì)多少,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-26
  • 85道Java微服務(wù)面試題整理,助力2020面試

    這篇文章主要介紹了85道Java微服務(wù)面試題整理,助力2020面試 ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-13
  • 最新115道華為、京東、滴滴、美團(tuán)精選Java面試題整理

    這篇文章主要介紹了最新115道華為、京東、滴滴、美團(tuán)精選Java面試題整理,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-04
  • 2萬(wàn)字Java并發(fā)編程面試題整理(含答案,建議收藏)

    這篇文章主要介紹了2萬(wàn)字Java并發(fā)編程面試題整理(含答案,建議收藏),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-13

最新評(píng)論