Java常用類Object,Scanner和Random筆記
Java類概述
- 根類:
java.lang.Object
是Java中所有類的根類或父類。- 所有Java類預設繼承自
Object
類,除非顯式地繼承其他類。
成員方法
-
toString():
- 用途: 返回物件的字串表示形式。
- 預設行為: 預設情況下,
toString()
方法返回物件的類名和雜湊碼(記憶體地址值)。 - 重寫建議: 為了提供更有意義的資訊,通常需要重寫此方法。
-
equals():
- 用途: 用於比較兩個物件是否相等。
- 預設行為: 預設比較的是物件的引用(記憶體地址值)。
- 重寫建議: 如果需要根據物件的內容來判斷相等性,應該重寫此方法。
-
clone():
- 用途: 建立並返回物件的一個副本。
- 預設行為: 預設實現是淺複製,即只複製物件的引用,不復制引用的物件。
- 使用限制: 要使用
clone()
方法,類必須實現Cloneable
介面,否則會丟擲CloneNotSupportedException
。
-
finalize():
- 用途: 在垃圾回收器清除物件之前,由垃圾回收器呼叫,以執行任何必要的清理。
- 注意:
finalize()
方法不保證一定會被呼叫,因此不推薦使用。
Scanner類
-
概述:
Scanner
類位於java.util
包中,用於獲取使用者的輸入。- 可以解析基本型別和字串。
-
獲取輸入內容:
nextLine()
: 讀取一行輸入,包括空白字元,直到遇到回車。nextInt()
,nextDouble()
,nextFloat()
等: 分別用於讀取整數、雙精度浮點數、單精度浮點數等。
Random類
-
概述:
Random
類位於java.util
包中,用於生成偽隨機數。- 可以生成各種型別的隨機數,如整數、布林值、浮點數等。
-
生成隨機數:
nextInt()
: 生成一個隨機整數。nextDouble()
: 生成一個[0.0, 1.0)範圍內的隨機雙精度浮點數。nextBoolean()
: 生成一個隨機布林值。
示例程式碼
import java.util.Scanner;
import java.util.Random;
public class CommonClassesExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Random random = new Random();
System.out.println("Enter your name:");
String name = scanner.nextLine();
System.out.println("Hello, " + name);
int randomInt = random.nextInt(100); // 生成0到99之間的隨機整數
double randomDouble = random.nextDouble(); // 生成一個隨機雙精度浮點數
boolean randomBoolean = random.nextBoolean(); // 生成一個隨機布林值
System.out.println("Random integer: " + randomInt);
System.out.println("Random double: " + randomDouble);
System.out.println("Random boolean: " + randomBoolean);
scanner.close(); // 關閉scanner物件
}
}
總結
Object
類是Java所有類的根類,提供了基本的成員方法。toString()
,equals()
,clone()
, 和finalize()
是Object
類中的重要方法,它們在自定義類中通常需要被重寫或特別處理。Scanner
類用於獲取使用者輸入,支援多種資料型別的解析。Random
類用於生成隨機數,適用於需要隨機性的場景。
Java常用類String筆記
類定義
- String類:
-String
是Java中用於表示文字序列的不可變類。
- 它是Java標準庫中的一個核心類,用於處理字串資料。
構造方法
-
String():
- 建立一個空的字串例項。 -
String(byte[] bytes):
- 使用指定的位元組陣列建立一個新的字串。 -
String(byte[] bytes, int offset, int length):
- 使用指定的位元組陣列的一部分建立一個新的字串。 -
String(char[] value):
- 使用字元陣列建立一個新的字串。 -
String(char[] value, int offset, int count):
- 使用字元陣列的一部分建立一個新的字串。 -
String(String original):
- 建立一個新的字串,內容與原始字串相同。
成員方法
-
equals(Object obj):
- 比較兩個字串的內容是否相等。 -
equalsIgnoreCase(String str):
- 比較兩個字串的內容是否相等,忽略大小寫差異。 -
contains(String str):
- 判斷一個字串是否包含另一個字串。 -
startsWith(String str):
- 判斷一個字串是否以另一個字串開始。 -
endsWith(String str):
- 判斷一個字串是否以另一個字串結束。 -
isEmpty():
- 判斷字串是否為空。 -
length():
- 返回字串的長度。 -
charAt(int index):
- 返回字串中指定索引位置的字元。 -
indexOf(int ch):
- 返回指定字元在字串中第一次出現的索引位置。 -
indexOf(String str):
- 返回指定字串在當前字串中第一次出現的索引位置。 -
indexOf(String str, int fromIndex):
- 返回指定字串在當前字串中從指定索引開始第一次出現的索引位置。 -
substring(int start):
- 返回一個新的字串,它是當前字串的一個子字串。 -
substring(int start, int end):
- 返回一個新的字串,它是當前字串從指定開始索引到結束索引的一個子字串。
轉換方法和其他功能
- String類提供了許多其他有用的方法,例如:
-trim()
:去除字串兩端的空白字元。
-replace(char oldChar, char newChar)
:替換字串中所有出現的指定字元。
-toLowerCase()
:將字串轉換為小寫。
-toUpperCase()
:將字串轉換為大寫。
-concat(String str)
:將指定字串連線到此字串的結尾。
-split(String regex)
:根據指定的正規表示式分割字串。
示例程式碼
public class StringExample {
public static void main(String[] args) {
String str = "Hello, World!";
// 使用構造方法
String strFromBytes = new String("Hello".getBytes());
// 使用成員方法
boolean startsWithHello = str.startsWith("Hello");
boolean endsWithExclamation = str.endsWith("!");
String upperStr = str.toUpperCase();
// 使用轉換方法
String trimmedStr = str.trim();
System.out.println("Original: " + str);
System.out.println("Starts with 'Hello': " + startsWithHello);
System.out.println("Ends with '!': " + endsWithExclamation);
System.out.println("Uppercase: " + upperStr);
System.out.println("Trimmed: " + trimmedStr);
}
}
總結
String
類是Java中用於處理文字資料的核心類,它提供了豐富的構造方法和成員方法。- 字串在Java中是不可變的,這意味著一旦建立,其內容不能被改變。
String
類的方法支援各種字串操作,包括比較、查詢、替換、擷取和轉換等。- 瞭解
String
類的使用對於編寫有效的Java程式至關重要。
Java常用類StringBuffer筆記
StringBuffer 概述
- 可變字元序列:
-StringBuffer
是一個可變的字元序列,它提供了一個與String
類似的物件,但可以修改其內容。
- 它是執行緒安全的,適用於多執行緒環境下的字串操作。
構造方法
-
StringBuffer():
- 建立一個預設大小的空StringBuffer
物件。 -
StringBuffer(int capacity):
- 建立一個具有指定容量的空StringBuffer
物件。 -
StringBuffer(String str):
- 建立一個StringBuffer
物件,並將其初始化為包含指定字串的值。
成員方法
-
append(String str):
- 將指定的字串追加到此序列。 -
insert(int offset, String str):
- 在指定位置插入字串。 -
deleteCharAt(int index):
- 刪除指定位置的字元。 -
delete(int start, int end):
- 刪除從指定開始位置到結束位置的字元。 -
replace(int start, int end, String str):
- 替換從指定開始位置到結束位置的字元序列。 -
reverse():
- 將此字元序列用其反轉形式取代。
擷取功能
-
substring(int start):
- 返回一個新的StringBuffer
,它包含此序列中從指定位置開始到末尾的字元。 -
substring(int start, int end):
- 返回一個新的StringBuffer
,它包含此序列中從指定開始位置到指定結束位置的字元。
示例程式碼
public class StringBufferExample {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("Hello");
// 追加字串
sb.append(" World");
// 插入字串
sb.insert(5, "Java ");
// 刪除字元
sb.deleteCharAt(5);
// 替換字元序列
sb.replace(5, 11, "Java");
// 反轉字串
sb.reverse();
// 擷取字串
String sub = sb.substring(0, 5);
System.out.println(sb); // 輸出: Java
System.out.println(sub); // 輸出: Java
}
}
總結
StringBuffer
是一個可變的字元序列,適用於需要頻繁修改字串內容的場景。- 它提供了多種構造方法來建立具有不同初始容量和內容的
StringBuffer
物件。 StringBuffer
類包含一系列方法來追加、插入、刪除、替換和反轉字串序列。- 由於
StringBuffer
是執行緒安全的,它特別適合在多執行緒環境中使用。
陣列和Java包裝類筆記
類定義
- 包裝類:
- Java提供了包裝類(Wrapper classes)來將基本資料型別封裝為物件。
- 這些類位於java.lang
包中,每個基本資料型別都有一個對應的包裝類。
種類
-
byte:
-Byte
類包裝了基本型別byte
。 -
short:
-Short
類包裝了基本型別short
。 -
int:
-Integer
類包裝了基本型別int
。 -
long:
-Long
類包裝了基本型別long
。 -
float:
-Float
類包裝了基本型別float
。 -
double:
-Double
類包裝了基本型別double
。 -
boolean:
-Boolean
類包裝了基本型別boolean
。 -
char:
-Character
類包裝了基本型別char
。
陣列
-
toString(int[] a):
- 將陣列轉換為字串表示形式。 -
sort(int[] a):
- 對陣列進行升序排序。 -
binarySearch(int[] a, int key):
- 使用二分搜尋演算法查詢指定值key
在陣列a
中的索引位置。
示例程式碼
import java.util.Arrays;
public class WrapperAndArrayExample {
public static void main(String[] args) {
int[] numbers = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3};
// 將陣列轉換為字串
String numbersStr = Arrays.toString(numbers);
System.out.println("Array as String: " + numbersStr);
// 對陣列進行排序
Arrays.sort(numbers);
System.out.println("Sorted Array: " + Arrays.toString(numbers));
// 使用二分搜尋查詢元素
int searchKey = 5;
int index = Arrays.binarySearch(numbers, searchKey);
System.out.println("Index of " + searchKey + ": " + index);
}
}
總結
- Java的包裝類允許基本資料型別被當作物件處理,提供了許多有用的方法和功能。
Arrays
類提供了靜態方法來運算元組,包括轉換為字串、排序和搜尋。toString
方法將陣列轉換為易於閱讀的字串形式。sort
方法可以對陣列進行排序,而binarySearch
方法則可以高效地在已排序陣列中查詢元素。
Java Date日期類和格式化筆記 - 第五部分
System 類
-
gc():
- 請求虛擬機器進行垃圾回收。 -
exit(int status):
- 終止當前執行的Java虛擬機器,status
參數列示退出狀態。 -
currentTimeMillis():
- 返回當前時間的毫秒數,從1970年1月1日00:00:00 UTC開始計算。
Date 類
-
構造方法:
- Date(): 建立一個Date
物件,表示當前日期和時間。
- Date(long date): 建立一個Date
物件,表示自1970年1月1日00:00:00 UTC以來指定毫秒數的時間點。 -
成員方法:
- getTime(): 返回此Date
物件表示的時間距離1970年1月1日00:00:00 UTC的毫秒數。
- setTime(long time): 設定此Date
物件表示的時間為自1970年1月1日00:00:00 UTC以來指定毫秒數的時間點。
SimpleDateFormat 類
-
構造方法:
- SimpleDateFormat(): 使用預設模式建立SimpleDateFormat
物件。
- SimpleDateFormat(String pattern): 使用指定的模式建立SimpleDateFormat
物件。 -
成員方法:
- format(Date date): 將Date
物件格式化為字串。
- parse(String source): 將字串解析為Date
物件。 -
常見的格式:
- yyyy-MM-dd HH:mm:ss: 標準的日期和時間格式。
- yyyy年MM月dd日 HH時mm分ss秒: 中文格式的日期和時間。
示例程式碼
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateExample {
public static void main(String[] args) {
// 獲取當前時間
Date now = new Date();
System.out.println("Current time: " + now);
// 獲取當前時間的毫秒數
long currentTimeMillis = System.currentTimeMillis();
System.out.println("Current time in milliseconds: " + currentTimeMillis);
// 使用SimpleDateFormat格式化日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = sdf.format(now);
System.out.println("Formatted date: " + formattedDate);
// 解析日期字串
try {
String dateString = "2023-01-01 12:00:00";
Date parsedDate = sdf.parse(dateString);
System.out.println("Parsed date: " + parsedDate);
} catch (Exception e) {
e.printStackTrace();
}
}
}
總結
System
類提供了與系統相關的方法,如垃圾回收、程式退出和獲取當前時間。Date
類用於表示日期和時間,提供了獲取和設定時間的方法。SimpleDateFormat
類用於日期和時間的格式化和解析,支援自定義日期時間格式。- 瞭解這些類和方法對於處理日期和時間資料非常重要。