Java API學習筆記

一.類

1. String 類

不可變性String對象創建后不可修改,每次操作返回新對象

String str = "Hello";
str.length();           
str.charAt(0);         
str.substring(1, 4);    
str.indexOf("l");      
str.equals("hello");    
str.toUpperCase();  
String.join("-", "a", "b", "c"); 

2. StringBuilder & StringBuffer

可變字符串:適合頻繁修改字符串的場景

區別: ?
?StringBuilder(非線程安全,性能高) ?
?StringBuffer(線程安全,性能低)

StringBuilder sb = new StringBuilder("Java");sb.append(" API"); ? ? ?sb.insert(0, "Learn "); ?sb.reverse(); ? ? ? ? 

3. Wrapper 類

基本類型 → 對象:Integer、Double、Boolean等
自動裝箱/拆箱:

 Integer num = 10; ?int value = num; ?

常用方法:

? Integer.parseInt("123"); Double.valueOf("3.14"); 

二、集合框架(java.util)

1. 核心接口

List:有序可重復,如ArrayList、LinkedList
Set:無序唯一,如HashSet、TreeSet
Map:鍵值對,如HashMap、TreeMap。

2. List示例
?

import java.util.ArrayList;
import java.util.List;
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.get(0); ? ? ? ? ?
list.size(); ? ? ? ? 
list.remove(0); ? ? ? ?

3. Map示例

import java.util.HashMap;
import java.util.Map;
Map<String, Integer> map = new HashMap<>();
map.put("one", 1);
map.put("two", 2);
map.get("one"); ? ? ? ?
map.containsKey("two"); 
for (Map.Entry<String, Integer> entry : map.entrySet()) {System.out.println(entry.getKey() + ": " + entry.getValue());
}

4. 泛型

類型安全:指定集合存儲的元素類型

List<Integer> numbers = new ArrayList<>();numbers.add(10);

三、日期時間處理(java.time)

1. LocalDate/LocalTime/LocalDateTime

? import java.time.LocalDate;import java.time.LocalDateTime;LocalDate today = LocalDate.now();LocalDate birthday = LocalDate.of(2000, 1, 1);LocalDateTime now = LocalDateTime.now();

2. 格式化與解析

import java.time.format.DateTimeFormatter;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate date = LocalDate.parse("2025-05-18", formatter);
String formattedDate = date.format(formatter);

四、異常處理

1. 異常分類

受檢異常(Checked Exception):必須顯式處理,如IOException
非受檢異常(Unchecked Exception):繼承自RuntimeException,如NullPointerException

2. 捕獲與拋出

try {int result = 10 / 0; 
} catch (ArithmeticException e) {System.out.println("除數不能為0");
} finally {
}
class MyException extends Exception {public MyException(String message) {super(message);}
}

五、多線程

1. 創建線程

繼承Thread類:

 class MyThread extends Thread {public void run() {System.out.println("線程執行");}}MyThread thread = new MyThread();thread.start();

實現Runnable接口:

class MyRunnable implements Runnable {public void run() {System.out.println("任務執行");}}Thread thread = new Thread(new MyRunnable());thread.start();

2. 線程池

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
ExecutorService executor = Executors.newFixedThreadPool(5);
executor.submit(() -> {System.out.println("線程池任務");
});
executor.shutdown();

六、IO流

1. 文件讀寫

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
try (FileReader reader = new FileReader("test.txt")) {int data;while ((data = reader.read()) != -1) {System.out.print((char) data);}
} catch (IOException e) {e.printStackTrace();
}
try (FileWriter writer = new FileWriter("output.txt")) {writer.write("Hello, Java!");
} catch (IOException e) {e.printStackTrace();
}

2. NIO

import java.nio.file.Files;
import java.nio.file.Paths;
List<String> lines = Files.readAllLines(Paths.get("test.txt"));

七、反射

動態獲取類信息:

 Class<?> clazz = Class.forName("java.util.ArrayList");System.out.println(clazz.getName()); // "java.util.ArrayList"Object obj = clazz.getDeclaredConstructor().newInstance();

八、網絡編程

1. TCP示例

服務器端:

 try (ServerSocket serverSocket = new ServerSocket(8080)) {Socket socket = serverSocket.accept();} catch (IOException e) {e.printStackTrace();}

客戶端:

try (Socket socket = new Socket("localhost", 8080)) {// 發送/接收數據} catch (IOException e) {e.printStackTrace();}

九、Lambda表達式

簡化匿名類:
?

new Thread(new Runnable() {public void run() {System.out.println("傳統線程");}}).start();new Thread(() -> System.out.println("Lambda線程")).start();

集合遍歷:
?

 List<String> list = List.of("a", "b", "c");list.forEach(item -> System.out.println(item));

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/83582.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/83582.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/83582.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

醫療信息系統安全防護體系的深度構建與理論實踐融合

一、醫療數據訪問系統的安全挑戰與理論基礎 1.1 系統架構安全需求分析 在醫療信息系統中&#xff0c;基于身份標識的信息查詢功能通常采用分層架構設計&#xff0c;包括表現層、應用層和數據層。根據ISO/IEC 27001信息安全管理體系要求&#xff0c;此類系統需滿足數據保密性…

5.18本日總結

一、英語 復習list3list28 二、數學 學習14講部分內容&#xff0c;1000題13講部分 三、408 學習計網5.3剩余內容 四、總結 計網TCP內容比較重要&#xff0c;連接過程等要時常復習&#xff1b;高數學到二重積分對定積分的計算相關方法有所遺忘&#xff0c;需要加強鞏固。…

MATLAB2025新功能

截至2023年9月&#xff0c;MATLAB官方尚未公布2025版本的具體更新內容。根據歷史更新規律和技術發展趨勢&#xff0c;未來版本可能會在以下方面進行優化&#xff1a; AI與深度學習增強 可能新增自動化模型壓縮工具強化生成式AI模型支持改進的ONNX格式轉換接口 性能提升 矩陣運…

算法題(149):矩陣消除游戲

審題&#xff1a; 本題需要我們找到消除矩陣行與列后可以獲得的最大權值 思路&#xff1a; 方法一&#xff1a;貪心二進制枚舉 這里的矩陣消除時&#xff0c;行與列的消除會互相影響&#xff0c;所以如果我們先統計所有行和列的總和&#xff0c;然后選擇消除最大的那一行/列&am…

Uniapp、Flutter 和 React Native 全面對比

文章目錄 前言Uni-app、Flutter 和 React Native 跨平臺框架對比報告1. 性能對比2. 跨平臺能力3. 學習曲線4. 社區生態與第三方庫5. 原生能力擴展6. UI 渲染能力7. 企業支持與典型使用場景8. 開發效率與工具鏈 前言 將對 Uniapp、Flutter 和 React Native 進行全面對比&#x…

JAVA SE 多線程(上)

文章目錄 &#x1f4d5;1. Thread類及常見方法??1.1 創建線程??1.2 Thread 的常見構造方法??1.3 Thread 的幾個常見屬性??1.4 啟動一個線程---start()??1.5 中斷一個線程---interrupt()??1.6 等待一個線程---join()??1.7 獲取當前線程引用??1.8 休眠當前線程 &…

Linux云計算訓練營筆記day10(MySQL數據庫)

Linux云計算訓練營筆記day10&#xff08;MySQL數據庫&#xff09; 目錄 Linux云計算訓練營筆記day10&#xff08;MySQL數據庫&#xff09;ifnull別名聚合函數group byHAVING 子查詢關聯查詢 ifnull 在DQL語句中可以使用函數或表達式 函數 IFNULL(arg1,arg2) 如果arg1為NULL,函…

上位機知識篇---流式Web服務器模式的實現

文章目錄 前言 前言 本文簡單介紹了流式Web服務器模式的實現。

Dify與n8n全面對比指南:AI應用開發與工作流自動化平臺選擇【2025最新】

Dify與n8n全面對比指南&#xff1a;AI應用開發與工作流自動化平臺選擇【2025最新】 隨著AI技術與自動化工具的迅速發展&#xff0c;開發者和企業面臨著多種平臺選擇。Dify和n8n作為兩個備受關注的自動化平臺&#xff0c;分別專注于不同領域&#xff1a;Dify主要面向AI應用開發&…

day19-線性表(順序表)(鏈表I)

一、補充 安裝軟件命令&#xff1a; sudo apt-get install (軟件名) 安裝格式化對齊&#xff1a;sudo apt-get install clang-format內存泄漏檢測工具&#xff1a; sudo apt-get install valgrind 編譯后&#xff0c;使用命令 valgrind ./a.out 即可看內存是…

AI:人形機器人一定是人的形狀嗎?

本文將從技術角度分析人形機器人是否必須是人的形狀&#xff0c;以及人形與非人形機器人在適用場合、優缺點上的差異。以下是詳細解答&#xff1a; 人形機器人一定是人的形狀嗎&#xff1f; 不&#xff0c;人形機器人&#xff08;Humanoid Robot&#xff09;在技術上通常指外…

布隆過濾器和布谷鳥過濾器

原文鏈接&#xff1a;布隆過濾器和布谷鳥過濾器 布隆過濾器 介紹 布隆過濾器&#xff08;Bloom Filter&#xff09;是 1970 年由布隆提出的。它實際上是一個很長的二進制向量和一系列隨機映射函數&#xff0c;檢查值是“可能在集合中”還是“絕對不在集合中” 空間效率高&a…

無需配置光貓,使用網管交換機配合路由器的IPTV功能實現單線復用

一、背景 弱電箱和電視柜只預留了一根網線&#xff0c;路由器放在電視柜&#xff0c;想實現既可以上網又可以正常觀看iptv&#xff0c;本文提供了一種方法。 二、準備工作 1、帶iptv功能的路由器&#xff1b;2、水星sg105pro網管交換機&#xff1b;3、網線若干&#xff1b; …

深入理解SpringBoot中的SpringCache緩存技術

深入理解SpringBoot中的SpringCache緩存技術 引言 在現代應用開發中&#xff0c;緩存技術是提升系統性能的重要手段之一。SpringBoot提供了SpringCache作為緩存抽象層&#xff0c;簡化了緩存的使用和管理。本文將深入探討SpringCache的核心技術點及其在實際業務中的應用場景。…

2025認證杯數學建模A題思路+代碼+模型:小行星軌跡預測

2025認證杯數學建模A題思路代碼模型&#xff0c;詳細內容見文末名片 近地小行星&#xff08; Near Earth Asteroids, NEAs &#xff09;是軌道相對接近地球的小行 星&#xff0c;它的正式定義為橢圓軌道的近日距不大于 1.3 天文單位&#xff08; AU &#xff09;的小行星。 …

LeetCode Hot100刷題——輪轉數組

56. 輪轉數組 給定一個整數數組 nums&#xff0c;將數組中的元素向右輪轉 k 個位置&#xff0c;其中 k 是非負數。 示例 1: 輸入: nums [1,2,3,4,5,6,7], k 3 輸出: [5,6,7,1,2,3,4] 解釋: 向右輪轉 1 步: [7,1,2,3,4,5,6] 向右輪轉 2 步: [6,7,1,2,3,4,5] 向右輪轉 3 步: …

「Mac暢玩AIGC與多模態41」開發篇36 - 用 ArkTS 構建聚合搜索前端頁面

一、概述 本篇基于上一節 Python 實現的雙通道搜索服務&#xff08;聚合 SearxNG 本地知識庫&#xff09;&#xff0c;構建一個完整的 HarmonyOS ArkTS 前端頁面。用戶可在輸入框中輸入關鍵詞&#xff0c;實時查詢本地服務 http://localhost:5001/search?q...&#xff0c;返…

開源鴻蒙北向源碼開發: 5.0kit化相關sdk編譯

5.0kit化可以在編譯系統sdk時添加,將你的kit文件加入編譯使得最終生成的sdk包含kits文件 修改編譯腳本 修改build倉里面的構建腳本文件,添加kits目錄腳本命令 社區的build腳本已經有kits編譯功能了,只需要把你的kits目錄新增的kit拷貝到社區倉interface倉了,和社區的都一起編…

題單:漢諾塔問題

題目描述 如下圖所示&#xff0c;設有 nn 個大小不等的中空圓盤&#xff0c;按照從小到大的順序疊套在立柱 A 上&#xff0c;另有兩根立柱 B 和 C 。 現在要求把全部圓盤從 A 柱&#xff08;稱為源柱&#xff09;移到 C 柱&#xff08;稱為目標柱&#xff09;&#xff0c;移動…

(面試)TCP、UDP協議

TCP&#xff08;傳輸控制協議&#xff09;和UDP&#xff08;用戶數據報協議&#xff09;是互聯網核心的傳輸層協議&#xff0c;負責應用程序之間的數據傳輸。它們在設計目標、特性和適用場景上有顯著差異&#xff1a; TCP&#xff1a;面向連接&#xff0c;可靠的&#xff0c;速…