1.面向對象都有哪些特性以及你對這些特性的理解?
封裝,集成,多態
2.& 和 && 的區別
&&有短路效果,提高代碼效率
- 在 Java 中,如何跳出當前的多重嵌套循環
標號跳出指定循環,retuet結束min方法,countinue後面的將不在執行
4.兩個對象值相同 (x.equals(y) == true) ,但卻可有不同的hashCode,這句話對不對?
內容相等hash值一定相等,hash值相等對象不一定相等,例如:通話,重地
5.是否可以繼承String
String被final修飾,不可以被繼承 final修飾的變量會成常量不能被修改,修飾變量不可以修地址值,可以改值,方法不能重寫,類不能繼承
6.當一個對象被當作參數傳遞到一個方法後,此方法可改變這個對象的屬性,並可返回變化後的結果,那麼這裏到底是值傳遞還是引用傳遞?
引用數據,修改成員變量;基本數據,修改的是局部變量
7.重載(overload)和重寫(override)的區別?重載的方法能否根據返回類型進行區分?
同一類中,方法名相同,參數不同,個數不同,類型不同,順序不同,沒有返回值重載
重寫:繼承或者實現,父類方法滿足不了子類要求,體系中子類出現和父類出現了一樣的方法聲明(方法名,參數列表,返回值類型)
重載:同一類中,方法名相同,參數列表不同,與返回值無關
8.char 型變量中能不能存儲一箇中文漢字,爲什麼?
可以,有且僅有一個字符,char佔兩個字節,一個漢字也是
9.抽象類(abstract class)和接口(interface)有什麼異同?
相同:
都可以寫抽象方法,.不能實例化類不能多實現,.,抽象類被繼承,接口被實現,都要重寫抽象方法
不同:
抽象類:
是一個類,使用關鍵字 abstract
抽象類裏面可以寫非抽象方法
只能單繼承或者多層繼承
接口:
用interface修飾
練出了抽象還有默認方法
可以多實現
10.抽 象 的 (abstract) 方 法 是 否 可 同 時 是 靜 態 的 (static), 是 否 可 同 時 是 本 地 方 法(native)
不可以,會衝突;
11.闡述靜態變量和實例變量的區別
在語法定義上的區別:
靜態變量前要加static關鍵字,而實例變量前則不加。
在程序運行時的區別:
實例變量屬於某個對象的屬性,必須創建了實例對象,其中的實例變量纔會被分配空間,才能使用這個實例變量。靜態變量不屬於某個實例對象,而是屬於類,所以也稱爲類變量,只要程序加載了類的字節碼,不用創建任何實例對象,靜態變量就會被分配空間,靜態變量就可以被使用了。總之,實例變量必須創建對象後纔可以通過這個對象來使用,靜態變量則可以直接使用類名來引用。
- ==和 equals hashCode 的區別?
基本數據類型:
==比較的是內容
引用數據類型:
==比的是地址值,equals默認比地址值,重寫按照規則比較,hashCode - break 和 continue 的區別?
跳出本循環,跳過後面的代碼,繼續循環
14.String s = "Hello";s = s + " world!";這兩行代碼執行後,原始的 String 對象中的內容到底變了沒有?
字符串不可變,它們的值在創建後不能被更改
通過構造方法創建
通過 new 創建的字符串對象,每一次 new 都會申請一個內存空間,雖然內容相同,但是地址值不同
直接賦值方式創建
以雙引號方式給出的字符串,只要字符序列相同(順序和大小寫),無論在程序代碼中出現幾次,JVM 都只會建立一個 String 對象,並在字符串池中維護
15.Java 中實現多態的機制是什麼?
父類對象指向子類引用
16.Java 中異常分爲哪些種類
編譯,運行
17.error 和 exception 的區別?
錯誤虛擬機
異常可以捕獲處理
18,throw 和 throws 的區別
拋出
聲明
19,final、finally 的區別?
final:最終的 不可被改變,類不可有子類,變量變常量,引用類型不可以改變地址
finally:出不出錯都運行,用於關閉流,關閉資源
20,Math.round(11.5)等於多少?Math.round(- 11.5) 又等於多少?
12,正數四捨五入
-11負數四捨五入向上
21,數組有沒有 length() 方法?String 有沒有 length() 方法
數組有length屬性沒有方法
string有方法
集合有size方法
22,String 、 StringBuilder 、 StringBuffer 的區別?
String:內容是不可變的
StringBuilder:內容可變,線程不安全
StringBuffer:內容可變,線程安全
23,什麼情況下用“+”運算符進行字符串連接比調用 StringBuffer/StringBuilder對象的 append 方法連接字符串性能更好?
在java中無論使用何種方法進行字符串拼接,底層都是StringBuilder,所以是一樣的
最新2020整理收集的一些高頻面試題(都整理成文檔),有很多幹貨,包含mysql,netty,spring,線程,spring cloud、jvm、源碼、算法等詳細講解,也有詳細的學習規劃圖,面試題整理等,需要獲取這些內容的朋友請加Q君樣:909038429
/./*歡迎加入java交流Q君樣:909038429一起吹水聊天