acm選手的java速成筆記

java入門

JDK

  • JDK:java程序運行平臺(J2SE標準版,J2EE企業版)
    • 包括:
      • 開發工具
        • 編譯器java.exe
        • 解釋器javac.exe
      • JRE:java核心運行環境
        • JVM:java虛擬機
          • 字節碼指令:中間代碼
        • 類庫
        • 核心文件
      • 附加庫
      • 頭文件
      • 源代碼

運行過程

public class Hello {
    public stastic void main (String args[]) {
        System.out.println("Hello");
    }
}
  • 源文件
    • 除字符串一概英文字符
    • 大小寫敏感
    • public與文件名相同
  • 編譯
    • javac.exe進行編譯
    • .class字節碼文件
  • 運行
    • 一個java程序必須含有 public stastic void main (String args[])方法
    • java.exe進行解釋執行
  • 反編譯
    • javap.exe反編譯器
  • 註釋同c++

數據類型

整數

  • boolean
    • true
    • false
    • 進行邏輯運算時能夠看作0/1
  • int(4byte)
  • byte(1byte)
  • short(2byte)
  • long(8byte)
    • 0x3f3f3f3fL
    • 常量後L
  • 沒有unsigned

字符

  • Unicode表(非ASCII)
  • char(2byte)
    • char x = 'a'; / char x = 97;
  • 轉義同c++
    • 能夠十六進制轉義
      • \u0041 A, \u0061 a
  • 用強制類型轉換來得到序號
    • (int)'a'; // 97

浮點

  • float(4byte)
    • 必須常量後f/F
    • 8位有效數字
  • double(8byte)
    • 可省常量後d/D
    • 16位有效數字

類型轉換

  • 順序表:
    • byte | short | char | int | long | float | double
    • 由小到大轉換不損失精度

IO

  • Input
    • Scanner
      • Scanner reader = new Scanner(System.in);
      • int x = reader.nextint();
      • reader可自定義
  • Output
    • System.out.println()
      • 換行
    • System.out.print()
      • 不換行
    • System.out.println("Hel" +
      "lo")
      • 不支持字符串內換行
    • System.out.printf("%d", x);
      • 同c++

數組

  • 聲明
    • int方法
      • int [] a == int a[];
      • int [][] a == int a[][];
      • int [] a, b == int a[], b[];
      • int [] a, b[] == int a[], b[][];
      • 這種方式不容許在括號內定義元素個數
    • new方法
      • a = new int[4] == int a[4]
      • 本質上是malloc分配空間
      • a = new int[3][4] == int a[3][4] == int a[][] = new a[3][4]
      • 括號內容許變量
  • 使用同c++
  • length
    • a.length == 含有元素個數,同strlen(s)
  • 初始化同c++
  • 數組名都直接存放引用
    • 輸出char型數組的引用:System.out.println("" + a);

運算符

同c++java

控制語句

基本同c++c++

  • for(生命循環變量:數組名字)
    • int a[] = {1, 2, 3, 4};
      for(int i : a) Ststem.out.println(i);
  • hasNext(Byte/Int/Long……)判斷數據類型是否知足
while(reader.hasNextInt()) {
    int x = reader.NextInt(); 
}
相關文章
相關標籤/搜索