最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

java高頻面試題(2023最新)

2023-07-19 15:22 作者:編程小宇e  | 我要投稿


一.java基礎(chǔ)

1.八大基礎(chǔ)類型

數(shù)字型: 字節(jié)類型(byte)、短整型short、整型int、長整型Long、單精度浮點數(shù)float、雙精度浮點數(shù)double

字符型: 字符類型char、

布爾型: 布爾類型boolean、


2.java三大特性

封裝: 使用private關(guān)鍵字,讓對象私有,防止無關(guān)的程序去使用。

繼承: 繼承某個類,使子類可以使用父類的屬性和方法。

多態(tài): 同一個行為,不同的子類具有不同的表現(xiàn)形式。


3.重載和重寫的區(qū)別

重載: 發(fā)生在同一類中,函數(shù)名必須一樣,參數(shù)類型、參數(shù)個數(shù)、參數(shù)順序、返回值、修飾符可以不一樣。

重寫: 發(fā)生在父子類中,函數(shù)名、參數(shù)、返回值必須一樣,訪問修飾符必須大于等于父類,異常要小于等于父類,父類方法是private不能重寫。


4.pubilc、protected、(dafault)不寫、private修飾符的作用范圍

pubilc: 同類、同包、子類、不同包都可以使用。

protected: 同類、同包、子類可以使用,不同包不能。

(dafault)不寫: 同類、同包可以使用,子類、不同包不能。

private: 只有同類可以。


5.==和equals的區(qū)別

==: 基礎(chǔ)類型比較的值,引用類型比較的是地址值。

equals: 沒有重寫比較地址值是否相等,重寫比較的內(nèi)容是否相對。比如String類重寫equals,源碼首先比較是否都是String對象,然后再向下比較。


6.hashcode()值相同,equals就一定為true

不一定,因為 "重地"和"通話"的hashcode值就相同,但是equals()就為false。

但是equals()為true,那么hashcode一定相同。


7.為什么重寫equals(),就要重寫hashcode()?

保證同一對象,如果不重寫hashcode,可能會出現(xiàn)equals比較一樣,但是hashcode不一樣的情況。


8.short s = 1;s = s + 1;(程序1)和 short s = 1; s += 1;(程序2)是否都能正常運行

程序1會編譯報錯,因為 s + 1的1是int類型,因為類型不兼容。強制轉(zhuǎn)換失敗。

程序2可以正常運行,因為java在復(fù)合賦值解釋是 E1 += E2,等價于 E1 = (T)(E1 + E2),T是E1的類型,因此s += 1等價于 s = (short)(s + 1),所以進行了強制類型的轉(zhuǎn)換,所以可以正常編譯。


9.說出下面程序的運行結(jié)果,及原因

因為Integer = a,相當(dāng)于自動裝箱(基礎(chǔ)類型轉(zhuǎn)為包裝類),因為Integer引入了IntegerCache來緩存一定的值,IntegerCache默認(rèn)是 -128~127,所以128超過了范圍,a和b不是相同對象,c和d是相同對象。

可以通過jvm啟動時,修改緩存的上限。


10.&和&&的區(qū)別

&&: 如果一邊為假,就不比較另一邊。具有短路行

&: 兩邊都為假,結(jié)果才為假,多用于位運算。


11.String、StringBuffer、StringBuilder的區(qū)別

String: 適用于少量字符串。創(chuàng)建之后不可更改,對String的修改會生成新的String對象。

StringBuilder: 適用于大量字符串,線程不安全,性能更快。單線程使用

StringBuffer: 適用于大量字符串,線程安全。多線程使用,用synchronized關(guān)鍵字修飾。


12.String rap = new String(“ctrl”);創(chuàng)建了幾個對象?

一個或兩個,如果常量池存在,那就在堆創(chuàng)建一個實例對象,否則常量池也需要創(chuàng)建一個。


13.什么是反射

在運行過程中,對于任何一個類都能獲取它的屬性和方法,任何一個對象都能調(diào)用其方法,動態(tài)獲取信息和動態(tài)調(diào)用,就是反射。


14.淺拷貝和深拷貝的區(qū)別

淺拷貝: 基礎(chǔ)數(shù)據(jù)類型復(fù)制值,引用類型復(fù)制引用地址,修改一個對象的值,另一個對象也隨之改變。

深拷貝: 基礎(chǔ)數(shù)據(jù)類型復(fù)制值,引用類型在新的內(nèi)存空間復(fù)制值,新老對象不共享內(nèi)存,修改一個值,不影響另一個。


深拷貝相對淺拷貝速度慢,開銷大。


15.構(gòu)造器能被重寫嗎

不能,可以被重載。


16.并發(fā)和并行

并發(fā): 一個處理器同時處理多個任務(wù)。(一個人同時吃兩個蘋果)

并行: 多個處理器同時處理多個任務(wù)。(兩個人同時吃兩個蘋果)


17.實例變量和類變量。

類變量是被static所修飾的,沒有被static修飾的叫實例變量也叫成員變量。同理也存在類對象和實例對象,類方法和實例方法。

18.說出下面程序的運行結(jié)果,及原因

原因:

①執(zhí)行順序是 父類靜態(tài)代碼塊(父類靜態(tài)變量) -> 子類靜態(tài)代碼塊(子類靜態(tài)變量) -> 父類非靜態(tài)代碼塊 -> 父類構(gòu)造方法 -> 子類非靜態(tài)代碼塊 -> 子類構(gòu)造方法

②靜態(tài)代碼塊(靜態(tài)變量)只執(zhí)行一次。


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

抽象類只能單繼承,接口可以實現(xiàn)多個。

抽象類有構(gòu)造方法,接口沒有構(gòu)造方法。

抽象類可以有實例變量,接口中沒有實例變量,有常量。

抽象類可以包含非抽象方法,接口在java7之前所有方法都是抽象的,java8之后可以包含非抽象方法。

抽象類中方法可以是任意修飾符,接口中java8之前都是public,java9支持private。

擴展:普通類是親爹,手把手教你怎么學(xué),抽象類(多個類具有相同的東西,拿出來放抽象類)是師傅,教你一部分秘籍,然后告訴你怎么學(xué)。接口(規(guī)范了某些行為)是干爹,只給你秘籍,怎么學(xué)全靠你。


20.Error和Exception有什么區(qū)別

Error: 程序無法處理,比較嚴(yán)重的問題,程序會立即崩潰,jvm停止運行。

Exception: 程序本身可以處理(向上拋出或者捕獲)。編譯時異常和運行時異常


21.NoClassDefFoundError和ClassNotFoundException區(qū)別

NoClassDefFoundError: 在打包時漏掉了某些類或者打包時存在,然后你把target里的類刪除,然后jvm運行時找不到報錯。

ClassNotFoundException: 在編譯的時候某些類找不到,然后報錯。


22.如果try{} 里有一個 return 語句,那么finally{} 里的代碼會不會被執(zhí)行,什么時候被執(zhí)行,在 return 前還是后?

會執(zhí)行,在return之前執(zhí)行,如果finally有return那么try的return就會失效。


java高頻面試題(2023最新)的評論 (共 條)

分享到微博請遵守國家法律
浮山县| 金昌市| 巨鹿县| 江门市| 新田县| 民县| 亳州市| 通江县| 罗山县| 濮阳县| 界首市| 辽阳县| 家居| 清河县| 虎林市| 尼勒克县| 水富县| 柘荣县| 兰州市| 金乡县| 凤城市| 无锡市| 宜章县| 济阳县| 合水县| 德江县| 含山县| 东阿县| 五华县| 彭水| 江永县| 湛江市| 中西区| 寿光市| 宝兴县| 西吉县| 衡阳市| 南郑县| 静海县| 洪泽县| 镇雄县|