作為一名名 Java 初學者,最近在學習過程中整理了一些關于常用類、String 類以及日期時間處理的知識點。這些內容是 Java 基礎中的重點,也是日常編程練習中頻繁用到的工具,掌握它們能讓我們在寫代碼時更加得心應手。今天把這些筆記分享出來,希望能和大家一起交流進步。
一、Java 中的常用基礎類
Java 提供了許多內置的基礎類,它們就像工具箱里的工具,幫我們解決各種常見問題。
Object 類 —— 所有類的 "老祖宗"
Object 類是 Java 中所有類的直接或間接父類,不管我們有沒有顯式聲明,所有類都繼承了它的方法。其中最常用的有兩個:
equals()
:用于比較兩個對象是否相等。需要注意的是,默認的equals()
比較的是對象的內存地址,很多類(比如后面要講的 String)會重寫這個方法,改為比較內容是否相同。toString()
:返回對象的字符串表示。默認格式是 "類名 @哈希值",通常我們會在自定義類中重寫它,讓輸出的信息更有意義。比如:class Student {String name;int age;@Overridepublic String toString() {return "Student{name='" + name + "', age=" + age + "}";} }
包裝類 —— 基本類型的 "包裝器"
Java 的基本數據類型(如 int、double)不是對象,為了能在需要對象的場景(比如集合框架)中使用它們,Java 提供了對應的包裝類:
基本類型 包裝類 int Integer char Character double Double boolean Boolean 包裝類最常用的功能是類型轉換:
// 字符串轉整數
int num = Integer.parseInt("123");
// 整數轉字符串
String str = Integer.toString(123);
// 自動裝箱拆箱(Java 5+)
Integer a = 100; // 自動裝箱(int→Integer)
int b = a; // 自動拆箱(Integer→int)
二、String 類 —— 字符串處理利器
String 類用于處理文本數據,是 Java 中最常用的類之一,掌握它的用法能讓字符串處理變得簡單高效。
String 的重要特性
不可變性:字符串一旦創建,其內容就不能被修改。當我們執行拼接、替換等操作時,其實是創建了新的 String 對象。
String s = "hello"; s += " world"; // 這里創建了新的String對象,原"hello"并未改變
字符串常量池:為了節省內存,Java 會把字符串常量存放在常量池中。如果創建的字符串已經存在于常量池,就直接引用而不重復創建。
String s1 = "hello"; String s2 = "hello"; System.out.println(s1 == s2); // 輸出true,因為指向同一個常量池對象
必學的 String 常用方法
length()
:獲取字符串長度"hello".length(); // 返回5
substring(int start, int end)
:截取子串(包含 start,不包含 end)
"hello world".substring(0, 5); // 返回"hello"
?
equals(Object obj)
:比較字符串內容是否相等(注意與==
的區別)
"hello".equals("hello"); // 返回true
"hello" == "hello"; // 返回true(常量池機制)
new String("hello") == "hello"; // 返回false(new創建了新對象)
indexOf(String str)
:查找子串首次出現的位置,找不到返回 - 1?
"hello world".indexOf("world"); // 返回6
replace(CharSequence old, CharSequence new)
:替換字符串中的字符 / 子串?
"hello".replace('l', 'x'); // 返回"hexxo"
?
三、日期時間處理 —— 時間的 "記錄者"
在編程中,處理日期時間是很常見的需求,比如記錄日志時間、計算時間差等。Java 提供了兩套日期時間 API,我們都需要了解。
舊版 API(Date 和 Calendar)
這是 Java 早期的日期時間類,雖然部分方法已過時,但在老項目中仍能看到它們的身影:
Date 類:表示特定的時間點
Date now = new Date();
System.out.println(now); // 輸出當前時間,格式如:Fri Aug 01 16:30:45 CST 2025
Calendar 類:用于更靈活地操作日期時間?
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR); // 獲取當前年份
int month = cal.get(Calendar.MONTH) + 1; // 月份從0開始,需加1
int day = cal.get(Calendar.DAY_OF_MONTH); // 獲取日期
新版 API(Java 8+)
Java 8 引入了全新的日期時間 API(位于java.time
包下),解決了舊版 API 線程不安全、設計混亂等問題,推薦優先使用:
LocalDate:只包含日期(年、月、日)
LocalDate today = LocalDate.now();
int year = today.getYear(); // 獲取年份
Month month = today.getMonth(); // 獲取月份(Month枚舉類型)
int day = today.getDayOfMonth(); // 獲取日期
?LocalTime:只包含時間(時、分、秒)
LocalTime now = LocalTime.now();
int hour = now.getHour(); // 小時
int minute = now.getMinute(); // 分鐘
LocalDateTime:包含日期和時間(最常用)
LocalDateTime now = LocalDateTime.now(); // 獲取當前日期時間
日期時間格式化:使用DateTimeFormatter
?
LocalDateTime now = LocalDateTime.now();
// 定義格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 格式化
String formatted = now.format(formatter);
System.out.println(formatted); // 輸出如:2025-08-01 16:45:30
日期計算:輕松實現加減操作?
LocalDate tomorrow = LocalDate.now().plusDays(1); // 明天
LocalDate lastMonth = LocalDate.now().minusMonths(1); // 上個月
總結
以上就是我整理的關于 Java 常用類、String 類和日期時間處理的核心知識點。這些內容雖然基礎,但在實際編程中應用廣泛,尤其是 String 類和新版日期時間 API,建議多寫代碼練習鞏固。
作為一名學生,我深知學習編程需要不斷實踐和總結。如果筆記中有錯誤或不完善的地方,歡迎大家在評論區指正交流,讓我們一起在 Java 學習的道路上共同進步!
?
?
?
?
?
?
?
?
?
?
?
?
?