一、面向物件(封裝、繼承、多型)
1.封裝:set、get方法、可以定義命名某些規則,
2.繼承:抽取公共部分屬性和方法作為父類,
3.多型:繼承、重寫、父型別別子類物件,呼叫子類重寫父類的方法,易于擴展維護,
二、jdk、jre、jvm的區別
1.jdk :java開發工具,
2.jre:java開發運行環境,
3.jvm:java虛擬機,
4.jdk包含jre、開發工具(java、javac、jconslo),
5.jre包含jdk、lib類別庫,
6.我們寫的.java檔案通過javac編譯成.class檔案,再通過jvm根據lib類別庫生產機器碼,
三、雙=和equals的區別
1.:雙=如果比較基本型別比較的是堆疊里放的變數值,如果比較的是參考型別比較的是堆疊里放的堆的地址值,
2.equals:如果沒有重寫的話和==沒有區別,重寫后的equals比較的是變數值,object,string都被重寫了,
四、final的理解
1.final可以修飾類、方法、變數,都是不可以改變的,
2.為什么區域內部類和匿名內部類必須使用final修飾的區域變數?原因是外部類和內部類級別是一樣的,編譯后會生成兩個.calss檔案,而在編譯的時候內部類可以復制外部類的區域變數成為內部類的區域變數,為了保證復制一致性使用final來修飾外部類的區域變數,
五、string、stringbuild、stringbuffer的區別
1.string:由于string是被final修飾的,所以每次操作都會創建一個新的物件,
2.stringbuild:執行緒不安全的,效率比較高,
3.stringbuffer:執行緒安全的,可以在多執行緒共享變數的情況下使用,
使用優先級:stringbulid>stringbuffer>string
六、重寫和多載的區別
1.多載:多載是在同一個類中發生的,多載只和引數串列有關,方法要相同,
2.重寫:重寫是發生在父子類中的,方法名相同,引數串列相同,回傳值小于等于父類,訪問修飾大于等于父類,如果父類的訪問修飾符是private則不能子類則不你能重寫該方法,
七、介面和抽象類的區別
1.一個類只能單繼承一個抽象類,一個類可以實作多個介面,
2.抽象類里邊可以有實作了的方法,但介面里邊全是未實作的方法,
3.抽象類的成員變數可以任意型別,在介面中的成員變數只能是public static final型別的,
4.他倆的設計目標不一樣:介面是規范類的行為,抽象類是抽取公共部分作為公共類,為了代碼復用設計的,抽象類功能比較強大,但是設計難度比較大,介面可以多實作設計難度比較小,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/300215.html
標籤:其他
上一篇:破案了....
下一篇:選擇代碼覆寫工具的 10 個標準
