基礎2

java基礎知識點–vm

1.基本類型,以及int 與 Integer的區別。

基本類型 對應的包裝類 字節
boolean Boolean -
byte Byte 1
char Character 2
short Short 2
int Integer 4
float Float 4
long Long 8
double Double 8

基本數據類型:沒有屬性和方法,所以無法對象化交互,通過包裝類就可以擁有屬性與方法,然後可以進行對象化交互。

自動和手動裝箱
自動和手動拆箱
基本數據類型
包裝類

2.線程的創建

  1. 創建一個Thread類,或者一個Thread子類的對象,重寫run方法
    Thread是位於java.lang包的。
  2. 創建一個實現Runnable接口的類的對象
    • 聲明實現Runnable接口的類
    • 在實現類內實現run方法
    • 創建實現類的對象
    • 通過實現類的對象創建線程類的對象
    • 調用start()方法啓動線程。
  3. 使用Callable和Future創建線程
    callable可以拿到返回值,call()方法 返回的是對象。
  4. 使用線程池例如用Executor框架

3.接口與抽象類的區別

抽象類是用來捕捉子類的通用特性的 。abstract定義抽象類(包含抽象方法的類是抽象類,抽象類中可以沒有抽象方法),抽象類不能直接實例化,只能被繼承,可以通過向上轉型完成對象實例。
接口是抽象方法的集合。如果一個類實現了某個接口,那麼它就繼承了這個接口的抽象方法。這就像契約模式,如果實現了這個接口,那麼就必須確保使用這些方法。接口只是一種形式,接口自身不能做任何事情。

  1. 默認方法實現:
  2. 實現
  3. 構造函數
  4. main方法
  5. 實現數量:類可以實現很多個接口;但是隻能繼承一個抽象類。
  6. 訪問修飾符
    在這裏插入圖片描述
    參考:http://www.importnew.com/12399.html

4.普通類和抽象類的區別

  1. 普通類不能包含抽象方法,抽象類可以包含抽象方法
  2. 抽象類不能直接實例化,普通類可以直接實例化

5.OSI的七層模型

  1. 物理層
    利用傳輸介質爲數據鏈路層提供物理連接,實現比特流的透明傳輸
  2. 數據鏈路層
    負責建立和管理節點間的鏈路
  3. 網絡層
    通過路由選擇算法,爲報文或者分組通過通信子網選擇最適當的路徑
  4. 傳輸層
    向用戶提供可靠的端到端的差錯和流量控制,保證報文的正確傳輸
  5. 會話層
    向兩個實體的表示層提供建立和使用連接的方法
  6. 表示層
    處理用戶信息的表示問題,如編碼、數據格式轉換和加密解密等
  7. 應用層
    直接向用戶提供服務,完成用戶希望在網絡上完成的各種工作

6.設計模式

  1. 單例模式:
  • 目的:使得類的一個對象成爲該類系統中的唯一實例
  • 定義:一個類有且只有一個實例,並且自行實例化向整個系統提供
  • 要點:某個類只能有一個實例 必須自行創建實例 必須自行向整個系統提供這個實例
  • 實現:只提供私有的構造方法 含有一個該類的靜態私有對象 提供一個靜態的公有方法用於創建、獲取靜態私有對象
  • 代碼實現方案:
    – 餓漢式:對象創建過程中實例化
    – 懶漢式:靜態公有方法中實例化
    代碼:
    1)某公司研發星球維護系統,請使用餓漢式單例模式的實現思想,設計編寫地球類。
public class Earth {
     //定義私有構造方法,並在構造方法中打印輸出“地球誕生”
	private Earth(){
	    System.out.println("地球誕生");
	}
	 //定義私有靜態類對象並完成實例化
	private static Earth er = new Earth();
		
	 //定義公有靜態方法返回類內的私有靜態對象
	public static Earth getEr(){
	    return er;
	}
}
public class Test {

    public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("第一個地球創建中。。。。");
		Earth er1 = Earth.getEr();
		System.out.println("第二個地球創建中。。。。");
		Earth er2 = Earth.getEr();
		System.out.println("第三個地球創建中。。。。");
		Earth er3 = Earth.getEr();
		System.out.println("問:三個地球是同一個麼?");
		System.out.println(er1);
		System.out.println(er2);
		System.out.println(er3);
	}
}

顯示效果:
在這裏插入圖片描述
2)請使用懶漢式單例模式的實現思想,設計編寫皇帝類。

public class Emperor {
    //定義私有構造方法
    private Emperor(){

    }
    //定義私有靜態類對象
    private static Emperor em = null;
    //定義公有靜態方法返回類內的私有靜態對象
    public static Emperor getEm(){
        if(em == null){
            em = new Emperor();
        }
        return em;
    }
}
public class Test2 {

    public static void main(String[] args) {
        System.out.println("創建1號皇帝對象");
        Emperor em1 = Emperor.getEm();
        System.out.println("創建2號皇帝對象");
        Emperor em2 = Emperor.getEm();
        System.out.println("創建3號皇帝對象");
        Emperor em3 = Emperor.getEm();
        System.out.println("三個皇帝對象依次是:");
        System.out.println(em1);
        System.out.println(em2);
        System.out.println(em3);
    }
}

在這裏插入圖片描述

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