Java 考試常用的觀念、類別與方法

 基本資料型別 Primitive Types


參考資料型別 Reference Types

  • 基本資料型別以外的都是參考資料型別
  • 參考資料型別可提供相關屬性或方法
    • 就像遙控器,有提供按鈕,可操控音量或轉台
  • 例如:
    • 字串(String)

基本資料型別之外包類別

  • 每個基本資料型別都有一個外包類別 ( wrapper classes)
  • 將基本資料型別 物件化、提供多樣方法
  • 因為 static 靜態方法,可直接呼叫方法,不需初始化物件,例如:new Integer()
    • 字串轉數字:int number = Integer.parseInt("6");


  • 基本型別與外包類別

記憶體

  • Global全域: 存放宣告為 static 的類別變數,在java執行期間一值被維護的資料。
  • Stack堆疊: 存放基本型別(Primitive type)資料,可預測的記憶體配置方式。
  • Heap堆積: 存放參考型別(Reference type)資料,動態配置記憶體。

泛型

  • Stack<Integer> stack = new Stack<Integer> ();
  • <E> 
  • <參考資料類別>
  • <>裡面必須放參考資料類別,第一個字母是大寫

泛化

  • 清楚的跟 Stack 說,我們要收集 Integer 型別的資料
  • 泛化過資料型別是安全的,只有 Integer 型別的資料可以被存放到 Stack 裡面
  • 如果有非Integer 型別的資料,則會出現錯誤


無泛化

  • 任何型態的資料都可以加入Stack中
  • 但讀取時需要轉型才能使用
  • 若有多種形態同時存入Stack中,讀取資料時,會遇到轉型的問題

常用技巧

取得使用者輸入

  •  Scanner scanner = new Scanner(System.in);
    • Scanner為簡易的IO工具
    • System.in 使用者可自行輸入資料(可自行輸入測試資料)
  • 取得使用者輸入的數字或字串
    • scanner.nextInt():取得使用者輸入的整數
    • scanner.nextFloat():取得使用者輸入的浮點數
    • scanner.next():取得使用者輸入的字串,                              遇到空白字元、空白鍵、Tab鍵即截止
    • scanner.nextLine():取得使用者輸入的一行字串,                                    包含空白字元、空白鍵、Tab鍵
    • 判斷是否還有輸入的資料
      • scanner.hasNext ():
      • scanner.hasNextInt ():

輸出

  • 輸出文字後,換行
    • System.out.println(“test”)
  • 輸出文字後,不換行
    • System.out.print(“test”)
    • System.out.print(“test/n”) = System.out.println(“test”)

格式化輸出

  • System.out.printf(“文字與格式”, 變數1, 變數2, …)
  • System.out.println("最大公因數:"+max+",最小公倍數:"+min);
  • System.out.printf("最大公因數:%d,最小公倍數:%d", max, min);
  • %d 整數類型
  • %n 換行符號
  • https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html

字串

  • String inputText = "a,b,c,d,e,f,g,h";
  • 取得字串長度
    • inputText.length();
  • 字串分割
    • String[] inputArray = input.split(",");
  • 取得字串中的字元
    • inputText.charAt(0);
  • 轉英文大/小寫
    • inputText.toUpperCase(); //小寫
    • inputText.toLowerCase(); //大寫
  • 字元轉字串
    • String.valueOf(‘6’)
  • 比對兩個字串是否相等
    • 比較兩個物件是否為相同類型,再比較其內容值是否相同
    • a.equals(c); 
    • 注意與 == 不同, == 比對的是 參考位置


  • 字串轉數字 Integer.parseInt() 
    • 進制轉換




字元

  • char letter = 'A‘; //char 為基本資料型別,使用單引號賦予值
    • 工具類別: Character
  • char 與 int  互相轉換
    • 隱含式轉換:小轉大,無風險,會自動轉型
      • char a = 65;
      • int b = a;
    • 強制式轉換:大轉小,有風險,不自動轉型
      • int c = 66;
      • char d  = (char)c; 


  • 判斷字元是否為英文
    • Character.isLetter(letter))  
    • (letter >= 65 && letter <=90) || (letter >=97 && letter <=122)
  • 字元轉字串
    • Character.toString(letter)
  • 字元轉大小寫
    • Character.toUpperCase(letter); // 轉大寫
    • Character.toLowerCase(letter); // 轉小寫

數字

  • int number = 10;
  • 工具類別: Integer
  • 數字轉文字
    • Integer.toString(number)
    • 數字轉進制文字
  • Integer.toString(number, 14)
  • 文字轉數字
    • Integer.parseInt(“10”);

排序

  • Arrays.sort() 陣列
    • https://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html
    • ascending order 由小到大排序


  • Collections.sort() 集合
    • https://docs.oracle.com/javase/7/docs/api/java/util/Collections.html
    • ascending order 由小到大排序
    • Collections.min(arrayList) //1
    • Collections.max(arrayList) //3
  • 使用foreach印出資料
    • for ( 元素資料型別 變數名稱  : 集合) { }

數學計算

  • Math 工具包
    • 絕對值
      • Math.abs()
      • https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html


    • 最大值
      • Math.max(3, 2) //3
    • 最小值
      • Math.min(1, 2) //1
    • 次方 power
      • Math.pow(2, 3) // 2的3次方 = 8
    • 開根號 square root
      • Math.sqrt(9) = 3

留言

這個網誌中的熱門文章

CPE 一顆星選集題目說明與解答 - Java 筆記與心得分享

Visual Studio 自動排版格式化程式碼

1. Vito's family (CPE10406, UVA10041) - CPE一顆星解答與說明