搜尋
首頁JavaJava入門java經典面試題集錦(二)

java經典面試題集錦(二)

Jul 07, 2020 pm 04:19 PM
java面試題

java經典面試題集錦(二)

一、int與Integer的差異

#(相關教學建議:java面試題

1、Integer是int的包裝類,int則是java的一種基本資料型別 

2、Integer變數必須實例化後才能使用,而int變數則不需要 

3 、Integer實際上是物件的引用,當new一個Integer時,實際上是產生一個指標指向此物件;而int則是直接儲存資料值 

4、Integer的預設值是null,int的默認值是0

二、什麼是for each循環,它可以循環那些資料型別?

增強版的for循環,寫法更簡潔,更加不容易出錯(因為不用擔心數組越界),底層也是使用了迭代器獲取的,只不過獲取迭代器由jvm完成,不需要我們取得迭代器而已,所以在使用foreach循環變數元素的過程中不準使用集合物件對集合的元素個數進行修改。

寫入法:

for(String it : set){
    System.out.println("集合的元素:" + it);
}

缺點:

在對陣列索引進行運算或集合進行增刪操作時,可能會報錯。

(推薦學習:java入門程式

三、重載與重寫有什麼不同?

1、方法重載

是讓類別以統一的方式處理不同類型資料的手段。多個同名函數同時存在,具有不同的參數數量/型別。重載Overloading是一個類別中多態性的一種表現。

Java的方法重載,就是在類別中可以創建多個方法,它們具有相同的名字,但具有不同的參數和不同的定義。

在呼叫方法時透過傳遞給它們的不同參數個數和參數類型來決定具體使用哪個方法, 這就是多態性。

重載的時候,方法名稱要一樣,但是參數型別和個數不一樣,回傳值型別可以相同也可以不相同。無法以返回值類型作為重載函數的區分標準。

2、方法重寫

參數清單必須完全與被重寫的方法相同,否則不能稱之為重寫而是重載。

傳回的類型必須一直與被重寫的方法的回傳類型相同,否則不能稱其為重寫而是重載。

存取修飾符的限制一定大於被重寫方法的存取修飾符(public>protected>default>private)

重寫方法一定不能拋出新的檢查異常或比被重寫方法申明更廣泛的檢查型異常。例如:父類別的一個方法申明了一個檢查異常IOException,在重寫這個方法是就不能拋出Exception,只能拋出IOException的子類異常,可以拋出非檢查異常。

注意:建構器不能被繼承,因此不能被重寫,但可以被重載。

四、介面與抽象類別的差別?

1、抽象類別和介面都不能直接實例化,如果要實例化,抽象類別變數必須指向實作所有抽象方法的子類對象,介面變數必須指向實作所有介面方法的類對象。

2、抽象類別要被子類別繼承,介面要被類別實作。

3、介面只能做方法申明,抽象類別中可以做方法申明,也可以做方法實作

4、介面裡定義的變數只能是公共的靜態的常數,抽象類別中的變數是普通變數。

5、抽象類別裡的抽象方法必須全部被子類別所實現,如果子類別不能全部實作父類別抽象方法,那麼該子類別只能是抽象類別。同樣,一個實作介面的時候,如不能全部實作介面方法,那麼該類別也只能為抽象類別。

6、抽象方法只能申明,不能實現,介面是設計的結果,抽象類別是重構的結果

7、抽象類別裡可以沒有抽象方法

#8、如果一個類別裡有抽象方法,那麼這個類別只能是抽象類別

9、抽象方法要被實現,所以不能是靜態的,也不能是私有的。

10、接口可繼承接口,並可多繼承接口,但類別只能單根繼承。

不允許類別多重繼承的主要原因是,如果A同時繼承B和C,而b和c同時有一個D方法,A如何決定該繼承那一個呢?

但介面不存在這樣的問題,介面全都是抽象方法繼承誰都無所謂,所以介面可以繼承多個介面。

(影片教學推薦:java影片教學

五、final, finally, finalize 的差異

##final: java中的關鍵字,修飾符。

A)、如果一個類別被宣告為final,就表示它不能再衍生出新的子類,不能再被當作父類別繼承。因此,一個類別不能同時被宣告為abstract抽象類別的和final的類別。

B)、如果將變數或方法宣告為final,可以保證它們在使用中不會被改變。

(1)被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。

(2)被声明final的方法只能使用,不能重载。

finally:java的一种异常处理机制。

finally是对Java异常处理模型的最佳补充。finally结构使代码总会执行,而不管无异常发生。使用finally可以维护对象的内部状态,并可以清理非内存资源。特别是在关闭数据库连接这方面,如果程序员把数据库连接的close()方法放到finally中,就会大大降低程序出错的几率。

finalize,它是一个方法,属于java.lang.Object类,它的定义如下:

protected void finalize()throws Throwable{}

众所周知,finalize()方法是GC(garbagecollector运行机制的一部分,在此我们只说说finalize()方法的作用是什么呢?

finalize()方法是在GC清理它所从属的对象时被调用的,如果执行它的过程中抛出了无法捕获的异常(uncaughtexception,GC将终止对改对象的清理,并且该异常会被忽略;直到下一次GC开始清理这个对象时,它的finalize()会被再次调用。

以上是java經典面試題集錦(二)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:csdn。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器