1.面向?qū)ο笈饰ā⒚嫦蜻^程
- 面向?qū)ο?br>
復(fù)用渴丸、維護(hù)、拓展|| 類實例化開銷大
- 面向過程
性能->單片機(jī)戒幔、嵌入式 性能優(yōu)先考慮
2.java特點
- 相較于C C++簡單易學(xué)
- OOP
- security
- 多線程
- 平臺無關(guān)
3.
jdk->java開發(fā)工具箱
jre->java運行環(huán)境 注:一般人只需要下jre->來運行Java程序土童,而開發(fā)人員需要jdk編譯調(diào)試程序
jvm->java虛擬機(jī) 獨立于OS實現(xiàn)一次編寫到處運行-->字節(jié)碼轉(zhuǎn)機(jī)器代碼 垃圾回收 內(nèi)存管理等
4.構(gòu)造器不能重寫 只能重載
5.重寫和重載
重載->方法名相同,參數(shù)列表不同(類型献汗、個數(shù)王污、順序楚午、返回值、訪問修飾符)
重寫->方法名司浪、參數(shù)列表相同(訪問修飾符大于父類把沼、private修飾的方法不能重寫)
6.封裝、繼承饮睬、多態(tài)
1.封裝->屬性私有化,對外提供訪問屬性的方法
2.繼承->用以存在的類作為基礎(chǔ)建立新的類的過程 extends
3.多態(tài)->一個引用變量到底會指向哪個類的實例對象割去,該引用變量發(fā)出的方法調(diào)用到底是哪個類中實現(xiàn)的方法昼丑,
必須在由程序運行期間才能決定。
-
多態(tài)存在的三個必要條件
1菩帝、要有繼承;
2宜雀、要有重寫握础;
3、父類引用指向子類對象禀综。 - 多態(tài)好處:可擴(kuò)充性、靈活性孤澎、接口性依鸥、簡化性
7.用組合不用繼承的理由
繼承:is-a 例如:水果是蘋果香蕉的一般化
組合:has-a
比如你繼承一個父類悼沈,包含好多屬性和方法你根本不回去用它姐扮,這就會使子類無限膨脹,并且同事在調(diào)用某些方法時
會出現(xiàn)各種錯誤衣吠。而組合卻可以比繼承靈活得多,可以在運行期才決定某個對象惊搏,不會產(chǎn)生歧義和調(diào)用錯誤等狀況忧换。
8.string stringbuild stringbuffer
1.String不可變private final char value[],所以String對象是不可變的
2.Stringbuffer加了同步鎖線程安全,stringbuild不安全
3.少量數(shù)據(jù)string 單線程大量數(shù)據(jù)stringbuild 多線程大量數(shù)據(jù)stringbuffer
9.自動裝箱、拆箱
1.將基本類型用它們對應(yīng)的引用類型包裝起來(包裝類:Double Integer Bool...)亚茬;
2.包裝類轉(zhuǎn)基本類型
10.在一個靜態(tài)方法內(nèi)調(diào)用一個非靜態(tài)成員為什么是非法的
靜態(tài)方法可以不通過對象進(jìn)行調(diào)用,因此在靜態(tài)方法里碗暗,不能調(diào)用其他非靜態(tài)變量梢夯,也不可以訪問非靜態(tài)變量成員。
11.默認(rèn)構(gòu)造函數(shù)的作用
創(chuàng)建一個"子類"的對象實例的時候,必先調(diào)用父類的無參數(shù)的構(gòu)造函數(shù)(默認(rèn)構(gòu)造函數(shù)),假如(父類有帶參數(shù)的構(gòu)造
函數(shù)),那么系統(tǒng)將(不會給它創(chuàng)建無參數(shù)的構(gòu)造函數(shù)),這時,子類在實例化的時候,因為"找不到父類的默認(rèn)構(gòu)造函數(shù)",編譯器將會報錯,但如果在子類的構(gòu)造函數(shù)
中'指定用父類的帶參數(shù)的構(gòu)造函數(shù)'的時候,或者在父類中加一個無參數(shù)的構(gòu)造函數(shù),就不會報錯颂砸。
解決方案 1. super(args...) 2.Constructor(){}
12.接口和抽象類的區(qū)別是什么
1.interface所有方法在接口中不能有實現(xiàn),抽象類可以有非抽象的方法
2.一個類可以實現(xiàn)多個接口沾凄,但最多只能實現(xiàn)一個抽象類
3.一個類實現(xiàn)接口的話要實現(xiàn)接口的"所有方法",而抽象類不一定
4.接口不能用 new 實例化撒蟀,但可以聲明,但是必須引用一個實現(xiàn)該接口的對象 從設(shè)計層面來說手负,抽象
是對類的抽象姑尺,是一種模板設(shè)計,接口是行為的抽象切蟋,是一種行為的規(guī)范。
抽象類:使用了關(guān)鍵詞abstract聲明的類叫作“抽象類”喘鸟。如果一個類里包含了一個或多個抽象方法,類就必須指定成abstract(抽象)什黑。“抽象方法”,屬于一種不完整的方法拣凹,只含有一個聲明恨豁,沒有方法主體。
13.創(chuàng)建對象的幾種方式
1.new橘蜜,實例化后定死了。
2.反射:Class類和Constructor類
Class: Object ob = Object.class.newInstance()
Constructor: Constructor<T> construct = T.class.getConstructor();
T t = constructor.newInstance();
3.clone:
A a = new A(); A aa = (A)a.clone();
4.反序列化...
純個人總結(jié)捧请,接受指正棒搜,歡迎探討,轉(zhuǎn)載請說明出處力麸,謝謝??
未完待續(xù)...