1. 程式人生 > 實用技巧 >HOOK SSDT(inline hook)

HOOK SSDT(inline hook)

一、變數

  1. 定義:記憶體中開闢的一塊空間,需要執行資料的型別
  2. 定義變數:
    • 語法格式:資料型別 變數名 = 變數值;【Java屬於強型別語言,變數型別必須與資料型別一致】
    • 定義變數的方式
      • 先宣告,在賦值【常用】==》 資料型別 變數值;變數值=值;
      • 宣告並賦值【常用】=》資料型別 變數名 = 值;
      • 多個同類型變數的宣告與賦值 資料型別 變數1,變數2 = 值2,變數3;

二、資料型別

  1. Java中任何一個值,都有其對應的型別的變數
  2. Java中的資料型別:基本資料型別、引用資料型別
    • 基本資料型別【整型、浮點型、字元型、布林型】:
      • 整型【byte(位元組型:1、-128-127)、short(短整型、2、-32768-32767)、int(整型、4)、long(長整型、8)】
      • 浮點型【float(單精度、4)、double(雙精度、8)】
      • 字元型【char(字元型、2、0-65535)】
      • 布林型【boolean(布林型、1)】
      • 引用資料型別【類(class)、介面(interface)、陣列(array)】

三、ASCII和Unicode

  1. SACII(美國標準資訊交換碼):定義了128個基本字元,為英文字元設定了統一併且唯一的二進位制編碼。
    • https://bkimg.cdn.bcebos.com/pic/e850352ac65c103880a07b53bc119313b17e8941?x-bce-process=image/watermark,image_d2F0ZXIvYmFpa2UxMTY=,g_7,xp_5,yp_5
  2. Unicode(萬國碼)在ASCII碼錶的而基礎上進行了擴充套件,包含了各國的基本字元,為每種語言設定了統一併且唯一的二進位制編碼。
    • https://bkimg.cdn.bcebos.com/pic/e824b899a9014c08bcd720b8057b02087bf4f43b?x-bce-process=image/watermark,image_d2F0ZXIvYmFpa2UxMTY=,g_7,xp_5,yp_5

四、轉義字元

轉義字元含義
\t 製表符tab
\n 換行newLine
\\ 斜線
\" 單個雙引號

五、資料型別轉換

  1. 自動轉換型別(向上轉型):範圍小的轉成範圍大的【不產生資料丟失】==》byte b = 110; short c = b;
  2. 強制型別轉換(向下轉型):範圍大的轉成範圍小的【有可能產生資料丟失】==》int i = 110; byte b = (byte)i;

六、運算子

  1. 算數運算子:加(+)、減(-)、乘(*)、除(/)、取模(%)、自增(++)、自減(--)
  2. 賦值運算子:直接賦值(=)、求和後賦值(+=)、求差後賦值(-=)、求積數(*=)、求商後賦值(/=)、求餘後賦值(%=)
  3. 關係運算符:大於(>)、小於(<)、大於等於(>=)、小於等於(<=)、等於(==)、不等於(!=)
  4. 邏輯運算子:&&(與)==》一假即假 、||(或)==》一真即真、!(非)==》真即假,假即真
  5. 三元運算子:? :(布林表示式?結果1:結果2)==》表示式為真獲得結果1,為假獲得結果2
  6. &、I和&&、II區別:&&與||稱為短路==》即只要遇到一個false即返回false,不在繼續判斷下一個

七、控制檯輸入(Scanner)

  1. Scanner:獲取使用者輸入的內容。
  2. 使用流程:匯入Scanner ==》建立Scanner物件 ==》提示輸入內容 ==》獲取對應型別的內容 ==》使用獲取到的內容

  3. 人機互動案例: 
import java.util.*;
class Demo15 {
	public static void main(String[] args) {

		// 2、建立Scanner的物件
		Scanner sc = new Scanner(System.in);

		// 3、提示使用者輸入name
		System.out.println("請輸入名字:");
		// 4、獲取使用者輸入的name
		String name = sc.nextLine();

		// 5、提示使用者輸入age
		System.out.println("請輸入年齡:");
		// 6、獲取使用者輸入的age
		int age = sc.nextInt();

		// 7、輸出使用者輸入的name和age
		System.out.println("我的名字是:" + name + ",今年:" + age);
	}
}