Java常用類
一、Object類
jdk版本用的是jdk11
簡介
類層次結構最頂層的基類,所有類都直接或間接的繼承自object類,所以,所有類都是一個Object(對象)
構造方法
| 方法名稱 | 說明 |
|---|---|
| Object() | 構造一個對象,所有子類對象初始化時都會優先調用該方法 |
成員方法
| 方法名稱 | 說明 |
|---|---|
| int hashCode() | 返回對象的哈希碼值,該方法通過對象的地址值進行計算,不同對象的返回值一般不同 |
| Class<?> getClass() | 返回調用此方法對象的運行時類對象(調用者的字節碼文件對象) |
| String toString() | 返回此方法的字符串表示 |
| boolean equals() | 返回其他某個對象是否于此對象“相等”。默認情況下比較兩個對象的引用,建議重寫 |
public class Test {
public static void main(String[] args) {
//非靜態方法的調用方式:通過 .對象名的形式調用
//創建Object類型的對象
Object obj1 = new Object();
Object obj2 = new Object();
//測試Object類中的成員方法
// int hashCode() 返回對象的哈希碼值,該方法通過對象的地址值進行計算,不同對象的返回值一般不同
int code1 = obj1.hashCode();
int code2 = obj2.hashCode();
//不同對象的哈希碼值不同
System.out.println(code1); //356573597
System.out.println(code2); //1735600054
System.out.println("-----------------");
// Class<?> getClass() 返回調用此方法對象的運行時類對象(調用者的字節碼文件對象)
Class<?> aClass = obj1.getClass();
Class<?> bClass = obj2.getClass();
//一個類可以創建多個對象,但只有一個字節碼文件對象
System.out.println(aClass); //class java.lang.Object
System.out.println(bClass); //class java.lang.Object
System.out.println("-------------------");
// String toString() 返回此方法的字符串表示
String s1 = obj1.toString();
String s2 = obj2.toString();
//默認打印的是地址值,不同對象的地址值不同
System.out.println(s1); //java.lang.Object@1540e19d
System.out.println(s2); //java.lang.Object@677327b6
System.out.println("-------------------");
// boolean equals() 返回其他某個對象是否于此對象“相等”。默認情況下比較兩個對象的引用,建議重寫
boolean b1 = obj1.equals(obj2);
//比較兩個對象是否相等,默認比較的是地址值
System.out.println(b1); //false
}
}
二、Scanner類
簡介
掃描器。能夠解析字符串(String)和基本數據類型的數據
構造方法
| 方法名稱 | 說明 |
|---|---|
| Scanner(InputStream) | 構造一個掃描器對象,從指定輸入流中獲取數據參數Stytem.in,對應鍵盤錄入 |
成員方法
| 方法名稱 | 說明 |
|---|---|
| hasNextXxx() | 判斷是否還有下一個輸入項,其中Xxx可能是任意基本數據類型,返回結果為布爾類型 |
| nextXxx() | 獲取下一個輸入項,其中Xxx可能是任意基本數據類型,返回對應類型的數據 |
| String nextLine() | 獲取下一行數據。以換行符作為分隔符。 |
| String next() | 獲取下一個輸入項,以空白字符作為分隔符空白字符:空格、tab、回車等 |
public class Test {
public static void main(String[] args) {
//創建Scanner類型的對象
//System.in:標準的輸入流,默認指向鍵盤(鍵盤錄入)
Scanner scanner = new Scanner(System.in);
// scannerInt(scanner);
System.out.println("請輸入一個字符串:");
// 結束標記是:換行符
// String s = scanner.nextLine();
// System.out.println(s);
// 結束標記是:空白字符(空格、tab、換行符)
String s2 = scanner.next();
System.out.println(s2);
}
private static void scannerInt(Scanner scanner) {
//接收整數
System.out.println("請輸入一個整數:");
//為了防止用戶輸入其他類型的數據導致程序異常,可以加入一個判斷
if (scanner.hasNextInt()){ //如果用戶輸入的不是整數類型,程序不執行
int i = scanner.nextInt(); //只能接收int類型的整數
System.out.println("錄入的整數為:" + i);
}
}
}
三、String類
簡介
字符串,每一個字符串對象都是常量
判斷方法
構造方法
| 方法名稱 | 說明 |
|---|---|
| String(byte[]) | 構造一個String對象,將指定字節數組中的數據轉化成字符串 |
| String(char[]) | 構造一個String對象,將指定字符數組中的數據轉化成字符串 |
成員方法
| 方法名稱 | 說明 |
|---|---|
| boolean equals(String) | 判斷當前字符串與給定字符串是否相同,區分大小寫 |
| boolean equalsIgnoreCase(String) | 判斷當前字符串與給定字符串是否相同,不區分大小寫 |
| boolean startsWith(String) | 判斷是否以給定字符串開頭 |
| boolean isEmpty() | 判斷字符串是否為空 |
public class Test {
public static void main(String[] args) {
//將指定的字節數組轉成字符串
byte[] bytes = {97,98,99};
String s1 = new String(bytes);
System.out.println("s1 :" + s1);
//將指定的字符數組轉成字符串
char[] chars = {'h','e','l','l','o'};
String s2 = new String(chars);
System.out.println("s2:" + s2);
String str1 = "abc";
String str2 = "ABC";
String str3 = "";
// boolean equals(String) | 判斷當前字符串與給定字符串是否相同,區分大小寫
boolean b1 = str1.equals(str2);
System.out.println(b1);//flase
// boolean equalsIgnoreCase(String) | 判斷當前字符串與給定字符串是否相同,不區分大小寫
boolean b2 = str1.equalsIgnoreCase(str2);
System.out.println(b2);//true
// boolean startsWith(String) | 判斷是否以給定字符串開頭
boolean b3 = str1.startsWith("a");
System.out.println(b3);//false
// boolean isEmpty() | 判斷字符串是否為空
boolean b4 = str1.isEmpty();
boolean b5 = str3.isEmpty();
System.out.println(b4);//false
System.out.println(b5);//true
}
}
獲取方法
| 方法名稱 | 說明 |
|---|---|
| int length() | 獲取當前字符串的長度 |
| char charAt(int index) | 獲取指定索引位置的字符 |
| int indexOf(String) | 獲取指定字符第一次出現的索引 |
| int lastIndexOf(String) | 獲取指定字符最后一次出現的索引 |
| String substring(int) | 獲取指定索引位置之后的字符串 |
| String substring(int,int) | 獲取從索引start位置(含)起至索引end位置(不含)的字符串 |
public class Demo01 {
public static void main(String[] args) {
String s = "Hello World";
// int length() | 獲取當前字符串的長度
int length = s.length();
System.out.println("length:" + length);//11
// char charAt(int index) | 獲取指定索引位置的字符
char charAt = s.charAt(4);
//索引是從0開始
System.out.println("charAt: " + charAt);//0
// int indexOf(String) | 獲取指定字符第一次出現的索引
int indexOf = s.indexOf("o");
System.out.println("indexOf:" + indexOf);//4
// int lastIndexOf(String) | 獲取指定字符最后一次出現的索引
int lastIndexOf = s.lastIndexOf("o");
System.out.println("lastIndexOf:"+lastIndexOf);//7
// String substring(int) | 獲取指定索引位置之后的字符串
String substring = s.substring(6);//包含
System.out.println("substring:" + substring);//World
// String substring(int,int) | 獲取從索引start位置(含)起至索引end位置(不含)的字符串
String substring1 = s.substring(2, 4);
System.out.println("substring1:"+substring1);//ll
}
}
轉換方法
| 方法名稱 | 說明 |
|---|---|
| byte[] getBytes() | 將字符串轉換成字節數組 |
| char[] toCharArray() | 將字符串轉換成字符數組 |
| static String valueOf() | 將指定類型數據轉換成字符串 |
| String replace(old,new) | 將指定字符(串)替換成新的字符(串) |
| String[] split(String) | 切割字符串,返回切割后的字符串數據,原字符串不變 |
| String trim() | 去掉字符串兩端的空白字符 |
public class Demo02 {
public static void main(String[] args) {
//定義一個字符串
String s1 = "abc";
// byte[] getBytes() | 將字符串轉換成字節數組
byte[] bytes = s1.getBytes(); //97,98,99
for (int i = 0; i < bytes.length; i++) {
System.out.println(bytes[i]);
}
// char[] toCharArray() | 將字符串轉換成字符數組
char[] chars = s1.toCharArray();
for (int i = 0; i < chars.length; i++) {
System.out.println(chars[i]);
}
System.out.println("--------------");
// static String valueOf() | 將指定類型數據轉換成字符串
String s = String.valueOf(123);
System.out.println(s + 4); //1234,是字符串拼接形式
// String replace(old,new) | 將指定字符(串)替換成新的字符(串)
String str = "abc abc abc";
//將b替換為d
String replace = str.replace("b", "d");
System.out.println(replace);
// String[] split(String) | 切割字符串,返回切割后的字符串數據,原字符串不變
String[] str2 = str.split(" ");
for (int i = 0; i < str2.length; i++) {
System.out.println(str2[i]);
}
// String trim() | 去掉字符串兩端的空白字符
String str3 = " a b c ";
String trim = str3.trim();
System.out.println(trim);
}
}
四、StringBuilder和StringBuffer類
簡介
可變字符序列,用于構造字符串對象,內部使用自動擴容的數組操作字符串數據。StringBuilder和StringBuffer使用相同的API(用法是一樣的)。StringBuilder效率比StringBuffer快,所以使用StringBuilder要多一點
構造方法
| 方法名稱 | 說明 |
|---|---|
| StringBuilder | 構造一個空的StringBuilder |
| StringBuilder(String) | 構造一個StringBuilder容器,并添加指定字符串 |
成員方法
| 方法名稱 | 說明 |
|---|---|
| StringBuilder append() | 將任意數據添加到StringBuilder容器中,返回自身 |
| String toString() | 將當前StringBuilder容器轉成字符串 |
public class Deno03 {
public static void main(String[] args) {
// StringBuilder | 構造一個空的StringBuilder
StringBuilder sb = new StringBuilder();
// StringBuilder append() | 將任意數據添加到StringBuilder容器中,返回自身
StringBuilder sb2 = sb.append("abc");
//StringBuilder是一個容器,添加的數據會返回到容器內
System.out.println("sb:" + sb); //abc
System.out.println("sb2:" + sb2); //abc
// StringBuilder(String) | 構造一個StringBuilder容器,并添加指定字符串
StringBuilder sb3 = new StringBuilder("abc");
//將string類型的“abc”轉換成StringBuilder類型的對象
System.out.println(sb3);
StringBuilder sb4 = new StringBuilder();
sb4.append("hello,");
sb4.append("World");
System.out.println(sb4);
// String toString() | 將當前StringBuilder容器轉成字符串
String s = sb4.toString();
System.out.println(s);
}
}
五、Date和Clendar類
簡介
日期和日歷類,用于操作日期相關信息
構造方法
| 方法名稱 | 說明 |
|---|---|
| Date() | 構造一個日期對象,當前系統時間,精確到毫秒 |
| Data(long) | 構造一個日期對象,時間為自“1970年1月1日00:00:00 GMT”起,至指定參數的毫秒數 |
成員方法
| 方法名稱 | 說明 |
|---|---|
| long getTime() | 將日期對象轉換成對應時間的毫秒值 |
| static Calendar getInstance() | 根據當前系統時區和語言環境獲取日歷對象 |
| int get(int field) | 返回給定日歷字段的值 |
| void set(int field,int value) | 將給定的日歷字段設置為指定的值 |
public class Demo01 {
public static void main(String[] args) {
//Date()構造一個日期對象
//采用當前操作系統默認時間
Date date1 = new Date();
System.out.println(date1);
//long getTime() | 將日期對象轉換成對應時間的毫秒值
long time = date1.getTime();
//1624373595686
System.out.println("time:" + time);
//Data(long)構造一個日期對象,時間為自“1970年1月1日00:00:00 GMT”起,至指定參數的毫秒數
//毫秒值參數因為是long類型的所以要加L
// Date date2 = new Date(1624373595686L);
//可以直接把日期參數毫秒值傳入Date對象
Date date2 = new Date(time);
System.out.println(date2);
}
}
public class Demo02 {
public static void main(String[] args) {
//static Calendar getInstance() | 根據當前系統時區和語言環境獲取日歷對象
Calendar c = Calendar.getInstance();
System.out.println(c);
//int get(int field) | 返回給定日歷字段的值
//獲取年月日的信息
int year = c.get(Calendar.YEAR);
//java中月份是從零開始的
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DATE);
System.out.println(year + "年" + (month+1) + "月" + day + "日");
//void set(int field,int value) | 將給定的日歷字段設置為指定的值
//設置年月日信息
c.set(2077,6,15);
//獲取年月日信息
int year2 = c.get(Calendar.YEAR);
int month2 = c.get(Calendar.MONTH);
int day2 = c.get(Calendar.DATE);
System.out.println(year2 + "年" + (month2 + 1) + "月" + day2 + "日");
}
}
浙公網安備 33010602011771號