1. 程式人生 > 其它 >Java基礎學習筆記

Java基礎學習筆記

Java基礎思維導圖

左鍵在“新標籤頁開啟圖片”可檢視高清大圖

一、Java入門

  1. 特性與優勢

    高可用 高併發 高效能
    面向物件、多執行緒、簡單性(去掉了記憶體分配、指標)、跨平臺(可移植性)、高效能、分散式、動態性、多執行緒、安全性、健壯性

  2. Java三大版本
    JavaME JavaSE JavaEE
    JDK JER JVM
    JDK 開發需要使用
    JER 執行需要使用
    JVM 虛擬機器

  3. 資料型別
    byte short int long double float char boolean
    數字預設值:0 0.0
    布林預設值:false

    引用型別預設值:null

    0b 二進位制
    0x 十進位制
    0 八進位制

  4. idea 生成JavaDoc文件
    生成文件 javadoc -encoding UTF-8 -charset UTF-8 Demo05.java

  5. 變數作用域
    類變數 static
    例項變數
    區域性變數

  6. 基本運算子

    + - * / %
    三元運算子
    ++a 先運算後賦值
    a++ 先賦值後運算
    位運算
    A:0011 1100
    B:0000 1101
    A&B (與) 兩者都是1,則得1
    A|B (或) 兩者都是0,則得0
    A^B (異或) 兩者相同得0,否則是1
    ~B (取反)
    <<(左移) * 2 2<<3 = 16
    >>(右移) / 2

二、結構

順序結構
迴圈結構
while、DoWhile、for、增強for迴圈
條件結構
if、switch
流程控制
break、continue

三、方法

過載、命令列傳參、可變引數
遞迴,就是自己呼叫自己,遞迴可算出積乘。遞迴層次不宜算得太多。
邊界條件、前階段、返回階段
引用傳遞、值傳遞

四、陣列

定義動態陣列
型別[] 變數名 = new 型別[]

靜態陣列
型別[] 變數名 = {1 , 2, 3}

物件陣列
物件[] 變數名 = {物件, 物件}

多維陣列
型別[][] 變數名 = {{}, {}, {}}

堆疊
堆:存放new的物件和陣列,可以被所有執行緒共享,不會存放別的物件引用

棧:存放基礎變數型別 引用物件的變數

氣泡排序
有多少值,迴圈多少次,每一次迴圈求出最大值或最小值,置於當前迴圈的索引,後續迴圈會越來越少,越來越快。

稀疏陣列
記錄原始陣列的座標與值

五、面向物件(OOP)

本質:以類的方式寫程式碼,以物件的方式封裝資料
構造器:有參構造、無參構造
呼叫父類的構造器,必須在子類構造器的第一行
super與this不能同時呼叫構造器
三大特性:封裝、繼承、多型
多型:同一個事物具有多種形態

物件的方法與屬性會儲存在方法區,例項化的物件名會儲存在棧,物件內容儲存在堆

程式設計:高內聚、低耦合
封裝:屬性私有,get/set
繼承:子類無參不能呼叫父類有參,除非在構造器中用super(有參)
重寫:子類重寫父類的方法,子類和父類的方法一致,方法體不同

多型:
多型是方法的多型,屬性沒有多型
存在條件:繼承關係,方法需要重寫,父類引用指向子類物件
不能重寫的方法:static、final、private
instanceof:判斷兩個類是否有父子級關係
子類可轉父類可能會丟失一些方法,父類轉子類不會
父轉子:Student student = (Student)person;
子轉父:Person person = student;

程式碼塊:靜態程式碼塊、匿名程式碼塊
靜態匯入包:import static java.lang.Math.random;
最終類 final 不可被繼承
抽象類 abstract
1、抽象類中的方法在繼承類必須被實現,抽象類無法實現抽象方法。
2、抽象方法只能存在抽象類中
3、抽象類不能通過new例項化
4、抽象類可以寫普通方法
個人理解,抽象的存在是為了規範類,使類具有約束性,並能體現面向物件的思維

介面 implements
普通類只有具體的實現,抽象類有實現和規範,介面只有規範
介面的本質是契約,介面中的方法預設public abstract
一個類可以實現多個介面
介面命名:UserService,實現類命名:UserServiceImpl
可利用介面實現多繼承
介面定義的變數都是靜態的常量
介面不能被例項化,沒有構造方法

內部類,可以使用外部類的屬性與方法
靜態內部類,無法使用外部類的屬性與方法,除非是靜態的
區域性內部類,存在於方法的類
匿名內部類,例項後,未儲存例項化的物件,例項化介面,需要直接實現
一個檔案中,只能有一個public的外部類

六、異常

異常關鍵字:try、catch、finally、throw、throws
異常,分為虛擬機器異常Error、人為異常Exception
try至catch是要監聽的程式碼塊,catch中是出現異常的處理,finally無論是否出現異常,都會執行
可寫多個catch,根據異常權重排序(從小到大)
主動丟擲異常 throw new ArithmeticException()
方法丟擲異常 throws ArithmeticException()
可以自定義異常,繼承Exception