Java基礎易錯概念性問題

1.面向對象都有哪些特性以及你對這些特性的理解?

封裝,集成,多態

2.& 和 && 的區別
&&有短路效果,提高代碼效率

  1. 在 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關鍵字,而實例變量前則不加。
在程序運行時的區別:

實例變量屬於某個對象的屬性,必須創建了實例對象,其中的實例變量纔會被分配空間,才能使用這個實例變量。靜態變量不屬於某個實例對象,而是屬於類,所以也稱爲類變量,只要程序加載了類的字節碼,不用創建任何實例對象,靜態變量就會被分配空間,靜態變量就可以被使用了。總之,實例變量必須創建對象後纔可以通過這個對象來使用,靜態變量則可以直接使用類名來引用。

  1. ==和 equals hashCode 的區別?
    基本數據類型:
    ==比較的是內容
    引用數據類型:
    ==比的是地址值,equals默認比地址值,重寫按照規則比較,hashCode



  2. 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,所以是一樣的
image
最新2020整理收集的一些高頻面試題(都整理成文檔),有很多幹貨,包含mysql,netty,spring,線程,spring cloud、jvm、源碼、算法等詳細講解,也有詳細的學習規劃圖,面試題整理等,需要獲取這些內容的朋友請加Q君樣:909038429
/./*歡迎加入java交流Q君樣:909038429一起吹水聊天











發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章