主頁 > 後端開發 > Java | 個人總結的Java常用API手冊匯總

Java | 個人總結的Java常用API手冊匯總

2021-08-31 17:40:13 後端開發

目錄
  • 常用API
    • JavaAPI
      • 1 java.lang
        • String
        • StringBuilder
        • Integer
        • parseXxx
        • Math
        • Object
        • System
        • Throwable
        • Thread
        • Runnable/介面
        • Class
        • *reflect反射相關
        • Field
        • Constructor
        • Method
        • ClassLoader
      • 2 java.util
        • Scanner
        • Obects
        • Date(瞬時)
        • Calendar(日歷)
        • Random
        • *資料結構相關
        • Collection/介面
        • Iterator/介面
        • List/介面
        • Arrays
        • ArrayList
        • LinkedList
        • Set/介面
        • HashSet
        • LinkedHashSet
        • Collections
        • Comparator/介面
        • Comparable/介面
        • Map/介面
        • Map.Entry
        • HashMap
        • LinkedHashMap
        • Stack堆疊
        • Queue佇列/介面
        • PriorityQueue優先級佇列
        • Lock/介面
        • Executors
        • ExecutorService/介面
        • Properties
        • Supplier/介面
        • Consumer/介面
        • Predicate/介面
        • Function/介面
        • Stream/介面
      • 3 java.text
        • DateFormat
      • 4 java.io
        • File
        • Filter/介面
        • OutputStream
        • FileOutputStream
        • InputStream
        • FileInputStream
        • Reader
        • FileReader
        • Writer
        • FileWriter
        • BufferedOutputStream
        • BufferedInputStream
        • BufferedWriter
        • BufferedReader
        • OutputStreamWriter
        • InputStreamReader
        • ObjectOutputStream
        • ObjectInputStream
        • PrintStream
      • 5 java.net
        • Socket
        • ServerSocket
      • 6 java.sql
        • DriverManager
        • Connection/介面
        • Statement/介面
        • ResultSet/介面
        • PreparedStatement/介面
      • 7 javax.sql
        • DataSource/介面
    • 其他API
      • *1 com.mchange.v2.c3p0
        • ComboPooledDataSource
      • *2 com.alibaba.druid.pool
        • DruidDataSourceFactory
      • *3 org.springframework.jdbc.core
        • JdbcTemplate
  • 最后

常用API

參考資料:

WIKI教程

碼工具(推薦)

JavaAPI

1 java.lang

String

構造方法:

  • String():初始化新創建的String物件,以使其表示空字符序列,

  • String(char[] value):通過當前引數中的字符陣列來構造新的String,

  • String(byte[] bytes):通過使用平臺的默認字符集解碼當前引數中的位元組陣列來構造新的String,

    雙引號直接寫的字串在常量池當中,new的不在池當中,地址值不同,

  • String(byte[] bytes, int offset, int length):通過使用平臺的默認字符集解碼指定的 byte 子陣列,構造一個新的 String,//把位元組陣列的一部分轉換為字串,

  • String(char[] value, int offset, int count):分配一個新的 String,它包含取自字符陣列引數一個子陣列的字符,//把字符陣列的一部分轉換為字串,

    把位元組/字符陣列的一部分轉換為字串 offset:陣列的開始索引 length:轉換的位元組個數 count:轉換的字符個數

判斷功能的方法:

  • boolean equals(Objectan Object):將此字串與指定物件進行比較,

  • boolean equals IgnoreCase(String another String):將此字串與指定物件進行比較,忽略大小寫,

    Object是”物件”的意思,也是一種參考型別,作為引數型別,表示任意物件都可以傳遞到方法中,

獲取功能的方法:

  • int length():回傳此字串的長度,
  • String concat(String str):將指定的字串連接到該字串的末尾,
  • char charAt(int index):回傳指定索引處的char值,
  • int indexOf(String str):回傳指定子字串第一次出現在該字串內的索引,
  • String substring(int beginIndex):回傳一個子字串,從beginIndex開始截取字串到字串結尾,
  • String substring(int beginIndex, int endIndex):回傳一個子字串,從beginIndex到endIndex截取字串,含beginIndex,不含endIndex,

轉換功能的方法:

  • char[] toCharArray():將此字串轉換為新的字符陣列,

  • byte[] getBytes():使用平臺的默認字符集將該String編碼轉換為新的位元組陣列,

  • String replace(CharSequence target, CharSequencere placement):將與target匹配的字串使用replacement字串替換,

    CharSequence是一個介面,也是一種參考型別,作為引數型別,可以把String物件傳遞到方法中,

分割功能的方法:

  • String[] split(String regex):將此字串按照給定的regex(規則)拆分為字串陣列,

    split方法的引數其實是一個“正則運算式”,如果按照英文句點“.”進行切分,必須寫"\.",

將基本資料型態轉換成String的static方法:

  • String.valueOf(boolean b) : 將 boolean 變數 b 轉換成字串,
  • String.valueOf(char c) : 將 char 變數 c 轉換成字串,
  • String.valueOf(char[] data) : 將 char 陣列 data 轉換成字串,
  • String.valueOf(char[] data, int offset, int count) : 將 char 陣列 data 中 由 data[offset] 開始取 count 個元素 轉換成字串,
  • String.valueOf(double d) : 將 double 變數 d 轉換成字串,
  • String.valueOf(float f) : 將 float 變數 f 轉換成字串,
  • String.valueOf(int i) : 將 int 變數 i 轉換成字串,
  • String.valueOf(long l) : 將 long 變數 l 轉換成字串,
  • String.valueOf(Object obj) : 將 obj 物件轉換成 字串, 等于 obj.toString()

將String轉換成基本資料型態的方法:

  • 詳情參考parseXxx系列方法,

StringBuilder

java.lang.StringBuilder字串緩沖區 可變字符序列

構造方法:

  • StringBuilder():構造一個空的StringBuilder容器,
  • StringBuilder(String str):構造一個StringBuilder容器,并將字串添加進去,

常用方法:

  • StringBuilder append(...):添加任意型別資料的字串形式,并回傳當前物件自身,

    連鎖編程:bu.append("abc").append(1).append(true).append(8.8).append('中');

  • String toString():將當前StringBuilder物件轉換為String物件,

    StringBuilder和String可以相互轉換:String->StringBuilder:StringBuilder//StringBuilder->String:toString

Integer

java.lang.Integer 裝箱與拆箱(其他型別有類似方法)

裝箱(基本型別的資料->包裝類)

構造方法:

  • Integer(int value):構造一個新分配的 Integer 物件,它表示指定的 int 值,(過時)
  • Integer(String s):構造一個新分配的 Integer 物件,它表示 String 引數所指示的 int 值,

(傳遞的字串,必須是基本型別的字串,否則會拋出例外 "100" 正確 "a" 拋例外)

靜態方法:

  • static Integer valueOf(int i):回傳一個表示指定的 int 值的 Integer 實體,
  • static Integer valueOf(String s):回傳保存指定的 String 的值的 Integer 物件,

進制轉換靜態方法:

  • static String toBinaryString(int i):回傳數字i的二進制數字串,
  • static String toOctalString(int i):回傳數字i的八進制數字串,
  • static String toHexString(int i):回傳數字i的十六進制數字串,
  • static int parseInt(String s): 將字串引數s決議為帶符號的十進制整數,
  • static int parseInt(String s, int radix): 將整數字串s(radix用來指明s是幾進制)轉換成10進制的整數,

拆箱:(包裝類->基本型別的資料)

成員方法:

  • int intValue():以 int 型別回傳該 Integer 的值,

parseXxx

靜態方法 基本型別與字串之間的轉換

基本型別轉換成字串

  • 基本型別直接與””相連接即可;如:34+""

  • static String toString(int i) 回傳一個表示指定整數的 String 物件,

    包裝類的靜態方法toString(引數),不是Object類的toString() 多載

  • static String valueOf(int i) 回傳 int 引數的字串表示形式,

    String類的靜態方法valueOf(引數)

字串轉換成基本型別(Character除外):

  • static byte parseByte(String s):將字串引數轉換為對應的byte基本型別,
  • static short parseShort(String s):將字串引數轉換為對應的short基本型別,
  • static int parseInt(String s):將字串引數轉換為對應的int基本型別,
  • static long parseLong(String s):將字串引數轉換為對應的long基本型別,
  • static float parseFloat(String s):將字串引數轉換為對應的float基本型別,
  • static double parseDouble(String s):將字串引數轉換為對應的double基本型別,
  • static boolean parseBoolean(String s):將字串引數轉換為對應的boolean基本型別,

Math

靜態常量:

  • static final double PI = 3.141……(精確到19位)
  • static double exp(double a) :回傳Euler的數字 e ,其值 double值,

基本運算的方法:

  • static double abs(double a):回傳double值的絕對值,

  • static double ceil(double a):向上取整,回傳大于等于引數的最小的整數,

  • static double floor(double a):向下取整,回傳小于等于引數最大的整數,

  • static long round(double a):回傳最接近引數的long,(相當于四舍五入方法)

  • static int max(int a, int b) :回傳a與b中較大值,

  • static int min(int a, int b):回傳a與b中較小值,

  • static double cos(double a):回傳角度的三角余弦值,

  • static double acos(double a):回傳值的反余弦值; 回傳的角度在0.0到pi的范圍內,

  • static double expm1(double x):回傳 e^x -1,

  • static double log(double a):回傳 double值的自然對數(基數 e ),

  • static double log10(double a):回傳 double值的基數10對數,

  • static double pow(double a, doubl b) :a^b

  • static double sqrt(double a) :回傳 double值的正確舍入正平方根,

  • static double toDegrees(double angrad):將以弧度測量的角度轉換為以度為單位測量的近似等效角度,

  • static double toRadians(double angdeg):將以度為單位測量的角度轉換為以弧度為單位測量的近似等效角度,

Object

  • String toString():回傳該物件的字串表示,

  • boolean equals(Object obj):指示其他某個物件是否與此物件“相等”,

  • int hasCode():回傳該物件的哈希碼值,

    HashSet集合存放自定義型別元素時,需要重寫物件中的hashCode和equals方法

  • void wait():在其他執行緒呼叫此物件的 notify() 方法或 notifyAll() 方法前,導致當前執行緒等待,

  • void wait(long timeout):在其他執行緒呼叫此物件的 notify() 方法或 notifyAll() 方法,或者超過指定的時間量前,導致當前執行緒等待,

  • void wait(long timeout, int nanos):在其他執行緒呼叫此物件的 notify() 方法或 notifyAll() 方法,或者其他某個執行緒中斷當前執行緒,或者已超過某個實際時間量前,導致當前執行緒等待,

  • void notify():喚醒在此物件監視器上等待的單個執行緒,

  • void notifyAll():喚醒在此物件監視器上等待的所有執行緒,

  • Class<?> getClass():回傳此 Object 的運行時類,

  • protected Object clone():創建并回傳此物件的一個副本,

  • protected void finalize():當垃圾回收器確定不存在對該物件的更多參考時,由物件的垃圾回收器呼叫此方法,

System

java.lang.System含有大量靜態方法

靜態欄位:

  • static PrintStream err:“標準”錯誤輸出流,
  • static InputStream in:“標準”輸入流,
  • static PrintStream out:“標準”輸出流,

常用方法:

  • static long currentTimeMillis():回傳以毫秒為單位的當前時間,//獲取毫秒值形式的當前時間,

    常用于測驗程式效率

  • static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length):將陣列中指定的資料拷貝到另一個陣列中,

    src Object:源陣列(原來的陣列),src Posint:源陣列索引起始位置,dest Object:目標陣列,dest Posint:目標陣列索引起始位置,length int:復制元素個數,

  • static void setErr(PrintStream err):重新分配“標準”錯誤輸出流,

  • static void setIn(InputStream in):重新分配“標準”輸入流,

  • static void setOut(PrintStream out):重新分配“標準”輸出流,

Throwable

java.lang.Throwable例外的根類

常用方法:

  • void printStackTrace():列印例外的詳細資訊,包含了例外的型別,原因,出現的位置,在開發和除錯階段,都得使用printStackTrace,
  • String getMessage():獲取發生例外的原因,提示給用戶的時候,就提示錯誤原因,
  • String toString(): 獲取例外的型別和例外描述資訊(不用),

Thread

構造方法:

  • Thread():分配一個新的執行緒物件,
  • Thread(String name):分配一個指定名字的新的執行緒物件,//thread
  • Thread(Runnable target):配一個帶有指定目標新的執行緒物件,
  • Thread(Runnable target, String name):分配一個帶有指定目標新的執行緒物件并指定名字,

常用方法:

  • String getName():獲取當前執行緒名稱,
  • void setName(String name):改變執行緒名稱,使之與引數name相同,//main
  • void start():導致此執行緒開始執行;Java虛擬機呼叫此執行緒的run方法,
  • void run():此執行緒要執行的任務在此處定義代碼,

靜態方法:

  • static void sleep(long millis):使當前正在執行的執行緒以指定的毫秒數暫停(暫時停止執行),
  • static Thread currentThread():回傳對當前正在執行的執行緒物件的參考,

Runnable/介面

介面 java.lang.Runnable

  • abstract void run():run方法的定義,(只有這一個方法)

Class<T>

java.lang.Class<T>

獲取Class物件的方式

  • static class<?> forName(String className):回傳與具有給定字串名稱的類或介面關聯的 類物件,
  • 類名.class:通過類名的屬性class獲取,
  • class<?> getClass():回傳此 Object的運行時類, (Object類)

獲取成員變數們:

  • Field[] getFields():獲取所有public修飾的成員變數,
  • Field getField(String name):獲取指定名稱的 public修飾的成員變數,
  • Field[] getDeclaredFields():獲取所有的成員變數,不考慮修飾符,
  • Field getDeclaredField(String name):獲取指定名稱的成員變數,

獲取構造方法們:

  • Constructor<?>[] getConstructors():獲取所有public修飾的構造方法,
  • Constructor<T> getConstructor(類<?>... parameterTypes):獲取指定名稱的 public修飾的構造方法,
  • Constructor<T> getDeclaredConstructor(類<?>... parameterTypes):獲取所有的構造方法,不考慮修飾符,
  • Constructor<?>[] getDeclaredConstructors():獲取指定名稱的構造方法,

獲取成員方法們:

  • Method[] getMethods():獲取所有public修飾的成員方法,
  • Method getMethod(String name, 類<?>... parameterTypes):獲取指定名稱的 public修飾的成員方法,
  • Method[] getDeclaredMethods():獲取所有的成員方法,不考慮修飾符,
  • Method getDeclaredMethod(String name, 類<?>... parameterTypes):獲取指定名稱的成員方法,

獲取全類名:

  • String getName():回傳此類物件表示的物體名稱(類,介面,陣列類,基本型別或void),作為 String ,

獲取Class物件的方式:

  • Class.forName("全類名"):將位元組碼檔案加載進記憶體,回傳Class物件
    • 多用于組態檔,將類名定義在組態檔中,讀取檔案,加載類
  • 類名.class:通過類名的屬性class獲取
    • 多用于引數的傳遞
  • 物件.getClass():getClass()方法在Object類中定義著,
    • 多用于物件的獲取位元組碼的方式

*reflect反射相關

Field

java.lang.reflect.Field

常用方法:

  • void set(Object obj, Object value):將指定物件引數上此欄位物件表示的欄位設定為指定的新值,
  • Object get(Object obj):回傳指定物件上此欄位表示的欄位的值,
  • void setAccessible(boolean flag):將此反射物件的accessible標志設定為指示的布林值, //忽略訪問權限修飾符的安全檢查,setAccessible(true):暴力反射,

Constructor<T>

java.lang.reflect.Constructor<T>

常用方法:

  • T newInstance(Object... initargs):使用此構造器物件表示的構造方法,使用指定的初始化引數創建和初始化建構式宣告類的新實體,
  • void setAccessible(boolean flag):將此反射物件的accessible標志設定為指示的布林值,

Method

java.lang.reflect.Method

常用方法:

  • Object invoke(Object obj, Object... args):在具有指定引數的指定物件上呼叫此方法物件表示的基礎方法,
  • String getName():回傳此方法物件表示的方法的名稱,如 String,

ClassLoader

抽象類 java.lang.ClassLoader類加載器

構造方法:

  • protected ClassLoader():創建使用一個新的類加載器 ClassLoader該方法回傳 getSystemClassLoader()作為父類加載器,
  • protected ClassLoader(ClassLoader parent):使用指定的父類加載器創建新的類加載器以進行委派,
  • protected ClassLoader(String name, ClassLoader parent):創建具有指定名稱的新類加載器,并使用指定的父類加載器進行委派,

成員方法:

  • InputStream getResourceAsStream(String name):回傳用于讀取指定資源的輸入流,

  • URL getResource(String name):查找具有給定名稱的資源,

  • Enumeration<URL> getResources(String name):查找具有給定名稱的所有資源,

  • String getName():如果未指定此類加載器,則回傳此類加載器的名稱或 null ,

  • protected Object getClassLoadingLock(String className):回傳類加載操作的鎖定物件,

  • protected String findLibrary(String libname):回傳本機庫的絕對路徑名

  • protected 類<?> findClass(String name):查找具有指定的類 binary name ,


2 java.util

Scanner

構造方法:

  • Scanner(InputStream source):構造一個新的Scanner,它生成的值是從指定的輸入流掃描的,

查看成員方法:

  • int nextInt():將輸入資訊的下一個標記掃描為一個int值,
  • String next():獲取鍵盤輸入的一個字串,

Obects

  • static boolean equals(Object a, Object b):判斷兩個物件是否相等,

    Objects類里的靜態方法是容忍空指標的,

  • static <T> T requireNonNull(T obj):查看指定參考物件obj不是null,

Date(瞬時)

表示特定的瞬間

建構式:

  • Date():分配Date物件并初始化此物件,以表示分配它的時間(精確到毫秒),//獲取英文格式(Date日期)的當前時間,
  • Date(long date):分配Date物件并初始化此物件,以表示自從標準基準時間(1970年1月1日00:00:00 GMT)以來的指定毫秒數,//毫秒值->Date日期

常用方法:

  • long getTime():把日期物件轉換成對應的時間毫秒值,//Date日期->毫秒值

Calendar(日歷)

抽象類 java.util.Calendar是日歷類

Calendar靜態方法:

  • static Calendar getInstance():使用默認時區和語言環境獲得一個日歷,(獲取日歷格式的當前時間,)

常用方法:

  • int get(int field):回傳給定日歷欄位的值,

  • void set(int field, int value):將給定的日歷欄位設定為給定值,

  • void set(int year, int month, int date) 設定日歷欄位的值 YEAR , MONTH和 DAY_OF_MONTH,

  • abstract void add(int field, int amount):根據日歷的規則,為給定的日歷欄位添加或減去指定的時間量,

  • Date getTime():回傳一個表示此Calendar時間值(從歷元到現在的毫秒偏移量)的Date物件,//日歷->Date日期

    int field:日歷類的欄位//int field -> Calender.成員常量

YEAR MONTH DAY_OF_MONTH HOUR HOUR_OF_DAY MINUTE SECOND DAY_OF_WEEK
月(從0開始,可以+1使用) 月中的天(幾號) 時(12小時制) 時(24小時制) 周中的天(周幾,周日為1,可以-1使用)

Random

構造方法:

  • Random():創建一個新的亂數生成器,
  • Random(long seed):使用單個long種子創建一個新的亂數生成器,

成員方法:

  • int nextInt():回傳下一個偽亂數,從該亂數生成器的序列中均勻分布 int值,
  • int nextInt(int n):回傳一個偽亂數,范圍在0(包括)和指定值n(不包括)之間的int值,

*資料結構相關

Collection/介面

介面 java.util.Collection

定義的方法:

  • boolean add(E e):把給定的物件添加到當前集合中,
  • void clear() :清空集合中所有的元素,
  • boolean remove(E e):把給定的物件在當前集合中洗掉,
  • boolean contains(E e):判斷當前集合中是否包含給定的物件,
  • boolean isEmpty():判斷當前集合是否為空,
  • int size():回傳集合中元素的個數,
  • Object[] toArray():把集合中的元素,存盤到陣列中,

獲取迭代器的方法:

  • Iterator iterator(): 獲取集合對應的迭代器,用來遍歷集合中的元素的,

Iterator/介面

介面 java.util.Iterator迭代器

常用方法:

  • E next():回傳迭代的下一個元素,
  • boolean hasNext():如果仍有元素可以迭代,則回傳 true,

List/介面

介面,繼承自Collection介面 java.util.List

常用方法:

  • void add(int index, E element):將指定的元素,添加到該集合中的指定位置上,
  • E get(int index):回傳集合中指定位置的元素,
  • E remove(int index):移除串列中指定位置的元素, 回傳的是被移除的元素,
  • E set(int index, E element):用指定元素替換集合中指定位置的元素,回傳值的更新前的元素,
  • default void retainAll(Collection<?> c):將c集合與該集合做交集,并賦給該集合,

靜態方法 JDK9新特性(前提:集合中存盤的元素個數已經確定):

  • static <E> List<E> of(E… elements):回傳包含任意數量元素的不可變串列,

Arrays

與陣列相關的工具類,提供了大量靜態方法,實作陣列常見操作

操作陣列的方法:

  • static String toString(E[] a):回傳指定陣列內容的字串表示形式,

  • static void sort(E[] a):對指定的陣列按數字升序進行排序,

  • static void copyOf(E[] a, int newLength):用于復制指定的陣列內容以達到擴容的目的,

    如果是自定義的型別,那么這個自定義的類需要有Comparable或者Comparator介面的支持,

ArrayList

java.util.ArrayList<E> 集合 陣列結構,元素增刪慢,查找快

構造方法:

  • ArrayList():構造一個內容為空的集合,

基本格式:

  • ArrayList<String> list = new ArrayList<>();

常用方法和遍歷:(增、刪、查):

  • 繼承自List介面,
  • boolean add(E e):將指定的元素添加到此集合的尾部,
  • E remove(int index):移除此集合中指定位置上的元素,回傳被洗掉的元素,
  • E get(int index):回傳此集合中指定位置上的元素,回傳獲取的元素,
  • int size():回傳此集合中的元素數,遍歷集合時,可以控制索引范圍,防止越界,

LinkedList

java.util.LinkedList 鏈表結構,方便元素添加、洗掉的集合

首尾操作的方法:

  • 繼承自List介面,

  • void addFirst(E e):將指定元素插入此串列的開頭,

  • void addLast(E e):將指定元素添加到此串列的結尾,

  • void push(E e):將元素推入此串列所表示的堆疊,

  • E getFirst():回傳此串列的第一個元素,

  • E getLast():回傳此串列的最后一個元素,

  • E removeFirst():移除并回傳此串列的第一個元素,

  • E removeLast():移除并回傳此串列的最后一個元素,

  • E pop():從此串列所表示的堆疊處彈出一個元素,

  • boolean isEmpty():如果串列不包含元素,則回傳true,

Set/介面

介面 繼承自Collection介面,

HashSet

繼承自Set介面,

LinkedHashSet

鏈式哈希表 繼承自HashSet類,

Collections

java.utils.Collections: 集合工具類,用來對集合進行操作

常用功能:

  • static <T> boolean addAll(Collection<T> c, T... elements):往集合Collection<T> c中添加一些元素T... elements,

  • static void shuffle(List<?> list) :打亂順序,打亂集合順序,

  • static <T> void sort(List<T> list):將集合中元素按照默認規則(升序)排序,

    使用前提:被排序的集合里邊存盤的元素,必須實作Comparable,重寫介面中的方法compareTo定義排序的規則

  • static <T> void sort(List<T> list,Comparator<? super T> ):將集合中元素按照指定規則排序,

Comparator/介面

介面 java.util.Comparator<T>比較器

抽象方法定義:

  • abstract int compare(T o1, T o2):o1-o2:升序排序

Comparable<T>/介面

介面 java.lang.Comparable比較器

  • int compareTo(T o):比較此物件與指定物件的順序,

    自己"this"-引數:升序排序

    Comparator和Comparable的區別:

    Comparable:自己(this)和別人(引數)比較,自己需要實作Comparable介面,重寫比較的規則compareTo方法,

    Comparator:相當于找一個第三方的裁判,比較兩個,

Map<T>/介面

介面 java.util.Map集合

常用方法:

  • V put(K key, V value):把指定的鍵與指定的值添加到Map集合中,回傳被替換的value值,

  • V remove(Object key):把指定的鍵所對應的鍵值對元素在Map集合中洗掉,回傳被洗掉元素的值,

  • V get(Object key):根據指定的鍵,在Map集合中獲取對應的值,

  • boolean containsKey(Object key):判斷集合中是否包含鍵值k的映射關系,

  • boolean containsValue(Object value):判斷集合中是否將一個或多個鍵映射到指定值,

  • Set<K> keySet():獲取Map集合中所有的鍵,存盤到Set集合中,

Map集合中獲取所有Entry物件的方法:

  • Set<Map.Entry<K,V>> entrySet():獲取到Map集合中所有的鍵值對物件的集合(Set集合),

Map.Entry

鍵值對介面 java.util.Map.Entry<K,V>是Map<T>介面的內部介面

當Map集合一創建,那么就會在Map集合中創建一個Map.Entry物件,用來記錄鍵與值(鍵值對物件,鍵與之的映射關系

獲取對應鍵和對應值的方法:

  • K getKey():獲取Entry物件中的鍵,
  • V getValue():獲取Entry物件中的值,

HashMap

java.util.LinkedHashMap 必須復寫物件的hashCode和equals方法

實作自Map<T>介面

LinkedHashMap

保證有序,還要速度快

繼承自HashMap集合

Stack堆疊

堆疊 java.util.Stack<E>

構造方法:

  • Stack():創建一個空堆疊,

基本格式:

  • Stack<Object> stack = new Stack<>();

成員方法:

  • boolean empty():測驗此堆疊是否為空,

  • E peek():查看此堆疊頂部的物件,而不將其從堆疊中洗掉,

  • E pop():移除此堆疊頂部的物件,并將該物件作為此函式的值回傳,

  • E push(E item):將專案推到此堆疊的頂部,

  • int search(Object o):回傳物件在此堆疊上的從1開始的位置,

  • int size():回傳堆疊的長度,

Queue佇列/介面

介面 java.util.Queue<E>

構造方法:

  • Queue():創建一個空堆疊,

基本格式:

  • Queue<Object> queue= new Queue<>();

成員方法:

  • boolean add(E e): 將指定的元素插入到此佇列中, 如果可以立即執行此操作,而不會違反容量限制 ,
  • E element(): 檢索但不洗掉這個佇列的頭,
  • boolean offer(E e): 如果在不違反容量限制的情況下立即執行,則將指定的元素插入到此佇列中,
  • E peek(): 檢索但不洗掉此佇列的頭,如果此佇列為空,則回傳 null,
  • E poll(): 檢索并洗掉此佇列的頭,如果此佇列為空,則回傳 null ,
  • E remove(): 檢索并洗掉此佇列的頭,

PriorityQueue優先級佇列

構造方法:

  • PriorityQueue(): 創建一個PriorityQueue ,具有默認的初始容量(11) /默認升序,
  • PriorityQueue(Collection<? extends E> c): 創建一個 PriorityQueue集合中的元素的PriorityQueue,
  • PriorityQueue(Comparator<? super E> comparator): 創建具有默認初始容量的PriorityQueue,并根據指定的比較器對其元素進行排序,
  • PriorityQueue<>((x, y) -> (int)(y - x)) :創建一個PriorityQueue,并按照降序排列,

基本格式:

  • PriorityQueue<Object> queue= new PriorityQueue<>();

成員方法:

  • boolean add(E e): 將指定的元素插入到此佇列中, 如果可以立即執行此操作,而不會違反容量限制 ,
  • void clear(): 從此優先級佇列中洗掉所有元素,
  • boolean contains(Object o): 如果此佇列包含指定的元素,則回傳 true
  • int size(): 回傳此集合中的元素數,
  • Object toArray(): 回傳一個包含此佇列中所有元素的陣列,
  • E element(): 檢索但不洗掉這個佇列的頭,
  • boolean offer(E e): 如果在不違反容量限制的情況下立即執行,則將指定的元素插入到此佇列中,
  • E peek(): 檢索但不洗掉此佇列的頭,如果此佇列為空,則回傳 null,
  • E poll(): 檢索并洗掉此佇列的頭,如果此佇列為空,則回傳 null ,
  • E remove(): 檢索并洗掉此佇列的頭,

Lock/介面

介面 java.util.concurrent.locks.Lock同步鎖

  • void lock():加同步鎖,
  • void unlock():釋放同步鎖,

Executors

java.util.concurrent.Executors生產執行緒池的工廠類

  • static ExecutorService newFixedThreadPool(int nThreads):創建執行緒池,回傳執行緒池物件,(可以指定最大數量)

ExecutorService/介面

介面 java.util.concurrent.ExecutorService

  • Future<?> submit(Runnable task):獲取執行緒池中的某一個執行緒物件,并執行,/提交一個Runnable任務用于執行,并回傳一個表示該任務的Future,

    Future介面:用來記錄執行緒任務執行完畢后產生的結果,執行緒池創建與使用,

  • void shut dowm():啟動一次順序關閉,執行以前提交的任務,但不接受新任務,

Properties

java.util.Properties extends Hashtable

構造方法:

  • Properties() :創建一個空的屬性串列,

基本的存盤方法:

  • Object setProperty(String key, String value):保存一對屬性,//呼叫 Hashtable 的方法 put,
  • String getProperty(String key):使用此屬性串列中指定的鍵搜索屬性值,//通過key找到value值,此方法相當于Map集合中的get(key)方法,
  • Set<String> stringPropertyNames():所有鍵的名稱的集合,//回傳此屬性串列中的鍵集,其中該鍵及其對應值是字串,此方法相當于Map集合中的keySet方法,

與流相關的方法:

  • void store(OutputStream out, String comments):以適合使用 load(InputStream) 方法加載到 Properties 表中的格式,將此 Properties 表中的屬性串列(鍵和元素對)寫入輸出流,

  • void store(Writer writer, String comments):以適合使用 load(Reader) 方法的格式,將此 Properties 表中的屬性串列(鍵和元素對)寫入輸出字符,

    OutputStream:位元組輸出流,不能寫入中文,Writer writer:字符輸出流,可以寫中文,String comments:注釋,用來解釋說明保存的檔案是做什么用的,

  • void load(InputStream inStream):從位元組輸入流中讀取鍵值對,

  • void load(Reader reader):按簡單的面向行的格式從輸入字符流中讀取屬性串列(鍵和元素對),

    InputStream inStream:位元組輸入流,不能讀取含有中文的鍵值對,Reader reader:字符輸入流,能讀取含有中文的鍵值對,

Supplier/介面

java.util.function.Supplier<T>

僅包含一個無參的方法:

  • T get():用來獲取一個泛型引數指定型別的物件資料,

Consumer/介面

java.util.function.Consumer<T>

抽象方法:

  • void accept(T t):意為消費一個指定泛型的資料,

默認方法andThen:

  • default Consumer<T> andThen(Consumer<? super T> after):回傳一個組合的 Consumer ,它按順序執行此操作,然后執行 after操作,

Predicate/介面

java.util.function.Predicate<T>

抽象方法:

  • boolean test(T t):用于條件判斷的場景,//用來對指定資料型別資料進行判斷的方法,

默認方法and,or,negate:

  • default Predicate<T> and(Predicate<? super T> other):回傳一個組合謂詞,表示此謂詞和另一個謂詞的短路邏輯AND,
  • static <T> Predicate<T> isEqual(Object targetRef):回傳一個謂詞,根據 Objects.equals(Object, Object)測驗兩個引數是否相等,
  • default Predicate<T> negate():回傳表示此謂詞的邏輯否定的謂詞,
  • static <T> Predicate<T> not(Predicate<? super T> target):回傳謂詞,該謂詞是提供的謂詞的否定,
  • default Predicate<T> or(Predicate<? super T> other):回傳一個組合謂詞,表示此謂詞與另一個謂詞的短路邏輯OR,

Function/介面

java.util.function.Function<T,R>

抽象方法:

  • R apply(T t):根據型別T的引數獲取型別R的結果,

默認方法andThen:

  • default <V> Function<T,V> andThen(Function<? super R,? extends V> after):回傳首先將此函式應用于其輸入的 after函式,然后將 after函式應用于結果,
  • default <V> Function<V,R> compose(Function<? super V,? extends T> before):回傳一個組合函式,該函式首先將 before函式應用于其輸入,然后將此函式應用于結果,
  • static <T> Function<T,T> identity():回傳一個始侄訓傳其輸入引數的函式,

Stream<T>/介面

java.util.stream

獲取流得的方法:

  • default Stream<E> stream() : 回傳一個順序流
  • default Stream<E> parallelStream() : 回傳一個并行流
  • static <T> Stream<T> of(T t) 回傳包含單個元素的順序 Stream ,
  • static <T> Stream<T> of(T... values) 回傳其元素為指定值的順序有序流,

常用方法:

  • void forEach(Consumer<? super T> action):對此流的每個元素執行操作,//可用于遍歷流中的資料,
  • Stream<T> filter(Predicate<? super T> predicate):回傳由與此給定謂詞匹配的此流的元素組成的流, //用于對Stream流中的資料進行過濾,
  • <R> Stream<R> map(Function<? super T, ? extends R> mapper):將流中的元素映射到另一個流中,//回傳一個流,該流包含將給定函式應用于此流的元素的結果,
  • long count():回傳此流中元素的數量,
  • Stream<T> limit(long maxSize):回傳由此流的元素組成的流,截斷長度不超過 maxSize ,
  • Stream<T> skip(long n):在丟棄流的第一個 n元素后,回傳由此流的其余元素組成的流, //跳過前n個元素,
  • static <T> Stream<T> concat(Stream<? extends T> a, Stream<? extends T> b):創建一個延遲連接的流,其元素是第一個流的所有元素,后跟第二個流的所有元素,

3 java.text

DateFormat

抽象 需要常用的子類java.text.SimpleDateFormat

實作類的構造方法:

  • SimpleDateFormat(String pattern):用給定的模式和默認語言環境的日期格式符號構造SimpleDateFormat,//獲取字串格式的當前時間,

常用方法:

  • String format(Date date):將Date物件格式化為字串,//Date日期->字串
  • Date parse(String source):將字串決議為Date物件(毫秒數),//字串->Date日期 //parse方法宣告了一個例外叫ParseException

常用的格式規則為:

y M d D H m s S w W F E zZ
月中天 年中天 毫秒 年中周 月中周 月中星期 星期 時區

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-fYMa88h5-1630227054783)(D:\桌面檔案夾\校內檔案\大二下\我的Markdowm筆記\JavaAPI圖片\時間格式.png)]


4 java.io

File

java.io.File用于檔案和目錄的創建、查找和洗掉等操作

靜態成員變數:

  • static String pathSeparator:與系統有關的路徑分隔符,為了方便,它被表示為一個字串,

  • static char pathSeparatorChar:與系統有關的路徑分隔符,

    路徑分隔符 windows:分號; linux:冒號:

  • static String separator:與系統有關的默認名稱分隔符,為了方便,它被表示為一個字串,

  • static char separatorChar:與系統有關的默認名稱分隔符,

    檔案名稱分隔符 windows:反斜杠\ linux:正斜杠/

構造方法:

  • File(String pathname):通過將給定的路徑名字串轉換為抽象路徑名來創建新的 File實體,

    String pathname:字串的路徑名稱,路徑可以是以檔案結尾,也可以是以檔案夾結尾,路徑可以是相對路徑,也可以是絕對路徑,路徑可以是存在,也可以是不存在,

  • File(String parent, String child):從父路徑名字串和子路徑名字串創建新的 File實體,

  • File(File parent, String child):從父抽象路徑名和子路徑名字串創建新的 File實體,

獲取功能的方法:

  • String getAbsolutePath():回傳此File的絕對路徑名字串,
  • String getPath():將此File轉換為路徑名字串,//其實就是tostring方法,
  • String getName():回傳由此File表示的檔案或目錄的名稱,//獲取的就是構造方法傳遞路徑的結尾部分(檔案/檔案夾)
  • long length():回傳由此File表示的檔案的長度,//獲取的是構造方法指定的檔案的大小,以位元組為單位,

判斷功能的方法:

  • boolean exists():此File表示的檔案或目錄是否實際存在,
  • boolean isDirectory():此File表示的是否為目錄,
  • boolean isFile():此File表示的是否為檔案,

創建洗掉功能的方法:

  • boolean createNewFile():當且僅當具有該名稱的檔案尚不存在時,創建一個新的空檔案,
  • boolean delete():洗掉由此File表示的檔案或目錄,
  • boolean mkdir():創建由此File表示的目錄,//創建單級空檔案夾,
  • boolean mkdirs():創建由此File表示的目錄,包括任何必需但不存在的父目錄,//既可以創建單級空檔案夾,也可以創建多級檔案夾,創建檔案夾的路徑和名稱在構造方法中給出(構造方法的引數),

目錄的遍歷:

  • String[] list():回傳一個String陣列,表示該File目錄中的所有子檔案或目錄,
  • File[] listFiles():回傳一個File陣列,表示該File目錄中的所有的子檔案或目錄,

listFiles()的多載方法:檔案過濾器

  • File[] listFiles(FileFilter filter):回傳抽象路徑名陣列,這些路徑名表示此抽象路徑名表示的目錄中滿足指定過濾器的檔案和目錄,

    FileFilter介面:用于抽象路徑名(File物件)的過濾器,

  • File[] listFiles(FilenameFilter filter):回傳抽象路徑名陣列,這些路徑名表示此抽象路徑名表示的目錄中滿足指定過濾器的檔案和目錄,

Filter/介面

介面 java.io.FileFilter過濾器

  • boolean accept(File pathname):測驗pathname是否應該包含在當前File目錄中,符合則回傳true,

OutputStream

抽象類 java.io.OutputStream位元組輸出流

位元組輸出流的基本共性功能方法:

  • void close():關閉此輸出流并釋放與此流相關聯的任何系統資源,
  • void flush():重繪此輸出流并強制任何緩沖的輸出位元組被寫出,
  • void write(byte[] b):將 b.length位元組從指定的位元組陣列寫入此輸出流,
  • void write(byte[] b, int off, int len):從指定的位元組陣列寫入 len位元組,從偏移量 off開始輸出到此輸出流,
  • abstract void write(int b):將指定的位元組輸出流,

FileOutputStream

檔案輸出流 java.io.FileOutputStream extends OutputStream

構造方法:

  • FileOutputStream(File file):創建檔案輸出流以寫入由指定的 File物件表示的檔案,
  • FileOutputStream(String name):創建檔案輸出流以指定的名稱寫入檔案,

構造方法二:資料追加續寫

  • FileOutputStream(File file, boolean append):創建檔案輸出流以寫入由指定的 File物件表示的檔案,

  • FileOutputStream(String name, boolean append):創建檔案輸出流以指定的名稱寫入檔案,

    boolean append引數:true-創建物件不會覆寫源檔案,繼續在檔案的末尾追加寫資料,false-創建一個新檔案:覆寫源檔案,

常用方法:

  • 繼承自OutputStream抽象類,
  • write(int b):寫出位元組方法,每次可以寫出一個位元組資料出位元組資料,
  • write(byte[] b):寫出位元組陣列,每次可以寫出陣列中的資料,
  • write(byte[] b, int off, int len) :寫出指定長度位元組陣列,每次寫出從off索引開始,len個位元組,

系統中的換行:

  • Windows系統里,每行結尾是回車+換行,即\r\n;

  • Unix系統里,每行結尾只有換行,即\n;

  • Mac系統里,每行結尾是回車,即\r,從 Mac OS X開始與Linux統一,

    回車符\r:回到一行的開頭(return)

    換行符\n:換行符:下一行(newline)

InputStream

抽象類 java.io.InputStream 位元組輸入流

位元組輸入流的基本共性功能方法:

  • void close():關閉此輸入流并釋放與此流相關聯的任何系統資源,
  • abstract int read():從輸入流讀取資料的下一個位元組,
  • int read(byte[] b):從輸入流中讀取一些位元組數,并將它們存盤到位元組陣列 b中,

FileInputStream

java.io.FileInputStream extends InputStream 檔案輸入流

構造方法:

  • FileInputStream(File file):通過打開與實際檔案的連接來創建一個 FileInputStream ,該檔案由檔案系統中的 File物件 file命名,
  • FileInputStream(String name):通過打開與實際檔案的連接來創建一個 FileInputStream ,該檔案由檔案系統中的路徑名 name命名,

讀取位元組資料:

  • read:讀取位元組方法,每次可以讀取一個位元組的資料,提升為int型別,讀取到檔案末尾,回傳-1,
  • read(byte[] b):使用位元組陣列讀取,每次讀取b的長度個位元組到陣列中,回傳讀取到的有效位元組個數,讀取到末尾時,回傳-1,

Reader

抽象類 java.io.Reader 字符輸入流

字符輸入流的基本共性功能方法:

  • void close():關閉此流并釋放與此流相關聯的任何系統資源,
  • int read():從輸入流讀取一個字符,
  • int read(char[] cbuf):從輸入流中讀取一些字符,并將它們存盤到字符陣列 cbuf中,

FileReader

java.io.FileReader extends Reader 讀取字符檔案的便利類

構造方法:

  • FileReader(File file):創建一個新的 FileReader ,給定要讀取的File物件,
  • FileReader(String fileName):創建一個新的 FileReader ,給定要讀取的檔案的名稱,
  • read:讀取字符資料方法,每次可以讀取一個字符的資料,提升為int型別,讀取到檔案末尾,回傳-1,回圈讀取,
  • read(char[] cbuf):使用字符陣列讀取,每次讀取b的長度個字符到陣列中,回傳讀取到的有效字符個數,讀取到末尾時,回傳-1,

Writer

抽象類 java.io.Writer 字符輸出流

位元組輸出流的基本共性功能方法:

  • void write(int c):寫入單個字符,
  • void write(char[] cbuf):寫入字符陣列,
  • abstract void write(char[] cbuf, int off, int len):寫入字符陣列的某一部分,off陣列的開始索引,len寫的字符個數,
  • void write(String str):寫入字串,
  • void write(String str, int off, int len):寫入字串的某一部分,off字串的開始索引,len寫的字符個數,
  • void flush():重繪該流的緩沖,
  • void close():關閉此流,但要先重繪它,

FileWriter

java.io.FileWriter extends Writer 寫出字符到檔案的便利類

構造方法:

  • FileWriter(File file):創建一個新的 FileWriter,給定要讀取的File物件,
  • FileWriter(String fileName):創建一個新的 FileWriter,給定要讀取的檔案的名稱,
  • write(int b):寫出字符方法,每次可以寫出一個字符資料,

關閉和重繪:

  • flush:重繪緩沖區,流物件可以繼續使用,
  • close:先重繪緩沖區,然后通知系統釋放資源,流物件不可以再被使用了,
  • write(char[] cbuf)和write(char[] cbuf, int off, int len):寫出字符陣列,每次可以寫出字符陣列中的資料,用法類似FileOutputStream,
  • write(String str)和write(String str, int off, int len):寫出字串,每次可以寫出字串中的資料,更為方便,

續寫和換行:

  • 操作類似于FileOutputStream,

BufferedOutputStream

java.io.BufferedOutputStream extends OutputStream 位元組緩沖輸出流

構造方法:

  • BufferedOutputStream(OutputStream out) :創建一個新的緩沖輸出流,以將資料寫入指定的底層輸出流,

  • BufferedOutputStream(OutputStream out, int size) :創建一個新的緩沖輸出流,以將具有指定緩沖區大小的資料寫入指定的底層輸出流,

    OutputStream out:位元組輸出流,我們可以傳遞FileOutputStream,緩沖流會給FileOutputStream增加一個緩沖區,提高FileOutputStream的寫入效率,

    int size:指定緩沖流內部緩沖區的大小,不指定默認,

BufferedInputStream

java.io.BufferedInputStream extends InputStream 位元組緩沖輸入流

構造方法:

  • BufferedInputStream(InputStream in):創建一個 BufferedInputStream 并保存其引數,即輸入流 in,以便將來使用,

  • BufferedInputStream(InputStream in, int size):創建具有指定緩沖區大小的 BufferedInputStream 并保存其引數,即輸入流 in,以便將來使用,

    InputStream in:位元組輸入流,我們可以傳遞FileInputStream,緩沖流會給FileInputStream增加一個緩沖區,提高FileInputStream的讀取效率,

BufferedWriter

java.io.BufferedWriter extends Writer 字符緩沖輸出流

構造方法:

  • BufferedWriter(Writer out):創建一個使用默認大小輸出緩沖區的緩沖字符輸出流,

  • BufferedWriter(Writer out, int size):創建一個使用給定大小輸出緩沖區的新緩沖字符輸出流,

    Writer out:字符輸出流,我們可以傳遞FileWriter,緩沖流會給FileWriter增加一個緩沖區,提高FileWriter的寫入效率,

特有的成員方法:

  • void newLine():寫入一個行分隔符,會根據不同的作業系統,獲取不同的行分隔符,

    輸出陳述句System.out.println();就是呼叫了newLine()方法,

BufferedReader

java.io.BufferedReader extends Reader 字符緩沖輸入流

構造方法:

  • BufferedReader(Reader in) :創建一個使用默認大小輸入緩沖區的緩沖字符輸入流,

  • BufferedReader(Reader in, int size):創建一個使用指定大小輸入緩沖區的緩沖字符輸入流,

    Reader in:字符輸入流,我們可以傳遞FileReader,緩沖流會給FileReader增加一個緩沖區,提高FileReader的讀取效率,

特有的成員方法:

  • String readLine():讀取一個文本行,讀取一行資料,

    行的終止符號:通過下列字符之一即可認為某行已終止:換行 ('\n')、回車 ('\r') 或回車后直接跟著換行(\r\n),回傳值:包含該行內容的字串,不包含任何行終止符,如果已到達流末尾,則回傳 null,

OutputStreamWriter

java.io.OutputStreamWriter extends Writer

構造方法:

  • OutputStreamWriter(OutputStream in):創建一個使用默認字符集的字符流,

  • OutputStreamWriter(OutputStream in, String charsetName):創建一個指定字符集的字符流,

    OutputStream out:位元組輸出流,可以用來寫轉換之后的位元組到檔案中,

    String charsetName:指定的編碼表名稱,不區分大小寫,可以是utf-8/UTF-8,gbk/GBK,...不指定默認使用UTF-8,

InputStreamReader

java.io.InputStreamReader extends Reader

構造方法:

  • InputStreamReader(InputStream in):創建一個使用默認字符集的字符流,

  • InputStreamReader(InputStream in, String charsetName):創建一個指定字符集的字符流,

    InputStream in:位元組輸入流,用來讀取檔案中保存的位元組,

ObjectOutputStream

物件的序列化流 java.io.ObjectOutputStream extends OutputStream 將Java物件的原始資料型別寫出到檔案,實作物件的持久存盤,

構造方法:

  • ObjectOutputStream(OutputStream out):創建一個指定OutputStream的ObjectOutputStream,

    OutputStream out:位元組輸出流,

特有方法 - 序列化操作:

  • final void writeObject (Object obj) :寫出物件方法,將指定的物件寫出,

ObjectInputStream

物件的反序列化流 ObjectInputStream extends InputStream 將之前使用ObjectOutputStream序列化的原始資料恢復為物件,

構造方法:

  • ObjectInputStream(InputStream in):創建一個指定InputStream的ObjectInputStream,

    InputStream in:位元組輸入流,

特有方法 - 反序列化操作:

  • final Object readObject () : 讀取一個物件,從 ObjectInputStream讀取物件,

PrintStream

java.io.PrintStream extends OutputStream 列印流

構造方法:

  • PrintStream(String fileName):使用指定的檔案名創建一個新的列印流,
  • PrintStream(OutputStream out):輸出的目的地是一個位元組輸出流,
  • PrintStream(String fileName) :輸出的目的地是一個檔案路徑,

5 java.net

Socket

java.net.Socket客戶端

構造方法:

  • Socket(String host, int port):創建套接字物件并將其連接到指定主機上的指定埠號,如果指定的host是null,則相當于指定地址為回送地址,

    String host:服務器主機的名稱/服務器的IP地址,int port:服務器的埠號,

成員方法:

  • InputStream getInputStream():回傳此套接字的輸入流,如果此Scoket具有相關聯的通道,則生成的InputStream的所有操作也關聯該通道,關閉生成的InputStream也將關閉相關的Socket,
  • OutputStream getOutputStream():回傳此套接字的輸出流,如果此Scoket具有相關聯的通道,則生成的OutputStream的所有操作也關聯該通道,關閉生成的OutputStream也將關閉相關的Socket,
  • void close():關閉此套接字,一旦一個socket被關閉,它不可再使用,關閉此socket也將關閉相關的InputStream和OutputStream,
  • void shutdownOutput():禁用此套接字的輸出流,任何先前寫出的資料將被發送,隨后終止輸出流,

ServerSocket

java.net.ServerSocket服務端

構造方法:

  • ServerSocket(int port):使用該構造方法在創建ServerSocket物件時,就可以將其系結到一個指定的埠號上,引數port就是埠號,

成員方法:

  • Socket accept():偵聽并接受連接,回傳一個新的Socket物件,用于和客戶端實作通信,該方法會一直阻塞直到建立連接,

6 java.sql

DriverManager

java.sql.DriverManager 驅動管理物件

靜態方法:

  • static void registerDriver(Driver driver):使用DriverManager注冊給定的驅動程式,

    寫代碼使用: Class.forName("com.mysql.jdbc.Driver");

  • static Connection getConnection(String url):嘗試建立與給定資料庫URL的連接,

  • static Connection getConnection(String url, String user, String password):嘗試建立與給定資料庫URL的連接, //獲取資料庫連接,

    url:指定連接的路徑[jdbc:mysql://ip地址(域名):埠號/資料庫名稱],user:用戶名,password:密碼,

Connection/介面

java.sql.Interface Connection資料庫連接物件

獲取執行sql 的物件:

  • Statement createStatement():創建一個 Statement物件,用于將SQL陳述句發送到資料庫,
  • PreparedStatement prepareStatement(String sql):創建一個 PreparedStatement物件,用于將引數化SQL陳述句發送到資料庫,(解決sql注入問題)

管理事務:

  • void setAutoCommit(boolean autoCommit):將此連接的自動提交模式設定為給定狀態,//開啟事務:呼叫該方法設定引數為false,即開啟事務,

  • void commit():使自上次提交/回滾以來所做的所有更改成為永久更改,并釋放此 Connection物件當前持有的所有資料庫鎖,//提交事務,

  • void rollback():撤消當前事務中所做的所有更改,并釋放此 Connection物件當前持有的所有資料庫鎖,//回滾事務,

  • void close():立即釋放此 Connection物件的資料庫和JDBC資源,而不是等待它們自動釋放,

Statement/介面

java.sql.Statement執行sql的物件

  • boolean execute(String sql) :執行給定的SQL陳述句,該陳述句可能回傳多個結果, //可以執行任意的sql (了解)

  • int executeUpdate(String sql) :執行DML(insert、update、delete)陳述句、DDL(create,alter、drop)陳述句-不常用,回傳值為0

    回傳值:影響的行數,可以通過這個影響的行數判斷DML陳述句是否執行成功,回傳值>0的則執行成功,反之,則失敗,

  • ResultSet executeQuery(String sql) :執行DQL(select)陳述句,該陳述句回傳單個 ResultSet物件,

  • void close():立即釋放此 Statement物件的資料庫和JDBC資源,而不是等待它自動關閉時發生,

ResultSet/介面

java.sql.ResultSet 結果集物件,封裝查詢結果

  • boolean next():游標向下移動一行,判斷當前行是否是最后一行末尾(是否有資料),如果是,則回傳false,如果不是則回傳true,

  • getXxx(引數):獲取資料,

    Xxx:代表資料型別,如:int getInt(),String getString() ,

    引數:int:代表列的編號,從1開始,如:getString(1),String:代表列名稱,如:getDouble("balance"),

  • void close():立即釋放此 ResultSet物件的資料庫和JDBC資源,而不是等待它自動關閉時發生,

PreparedStatement/介面

java.sql.PreparedStatement 執行sql的物件

給'?'賦值的方法:

  • void setXxx(引數1,引數2)

    引數1:?的位置編號 從1 開始, 引數2:?的值

  • ResultSet executeQuery():執行此 PreparedStatement物件中的SQL查詢,并回傳查詢生成的 ResultSet物件,

  • int executeUpdate():執行在該SQL陳述句PreparedStatement物件,它必須是一個SQL資料操縱語言(DML)陳述句,比如INSERT , UPDATE或DELETE ; 或者不回傳任何內容的SQL陳述句,例如DDL陳述句,


7 javax.sql

DataSource/介面

javax.sql.DataSource資料庫連接池

成員方法:

  • default ConnectionBuilder createConnectionBuilder():創建一個新的 ConnectionBuilder實體,
  • Connection getConnection():嘗試與此 DataSource物件表示的資料源建立連接,
  • Connection getConnection(String username, String password):嘗試與此 DataSource物件表示的資料源建立連接,

其他API

*1 com.mchange.v2.c3p0

ComboPooledDataSource

com.mchange.v2.c3p0.ComboPooledDataSource 資料庫連接池物件(需C3P0包c3p0-0.9.5.2.jar匯入)

構造方法:

  • ComboPooledDataSource()
  • ComboPooledDataSource(String configName)
  • ComboPooledDataSource(boolean autoregister)

成員方法:

  • 繼承了DataSource
  • private void writeObject(ObjectOutputStream oos)
  • private void readObject(ObjectInputStream ois)
  • ClassNotFoundException

*2 com.alibaba.druid.pool

DruidDataSourceFactory

com.alibaba.druid.pool.DruidDataSourceFactory 資料庫連接池工廠類(需從Druid包druid-1.0.9.jar匯入)

成員方法:

  • protected DataSource createDataSourceInternal(Properties properties)
  • static DataSource createDataSource(Properties properties):獲取連接池物件,
  • static DataSource createDataSource(Map properties)
  • static void config(DruidDataSource dataSource, Map properties)

*3 org.springframework.jdbc.core

JdbcTemplate

org.springframework.jdbc.core.JdbcTemplate 模板類(用Spring實作)

構造方法:

  • JdbcTemplate()
  • JdbcTemplate(DataSource dataSource)
  • JdbcTemplate(DataSource dataSource, boolean lazyInit)

成員方法:

  • update():方法可以完成插入、更新和洗掉資料的操作:

  • int update(String sql):該方法是最簡單的update方法多載形式,它直接執行傳入的SQL陳述句,并回傳受影響的行數,

  • int update(PreparedStatementCreator psc):該方法執行從PreparedStatementCreator回傳的陳述句,然后回傳受影響的行數,

  • int update(String sql, PreparedStatementSetter pss):該方法通過PreparedStatementSetter設定SQL陳述句中的引數,回傳受影響的行數,

  • int update(String sqlj, Object… args):該方法使用Object…設定SQL陳述句中的引數,要求引數不能為NULL,并回傳受影響的行數,

  • query()方法來處理各種對資料庫表的查詢操作,并將結果封裝為JavaBean物件:

  • List query(String sql, RowMapper rowMapper):執行string型別引數提供的SQL句,并過RowMapper回傳一個List型別的結果,

  • List query(String sql, PreparedStatementSetter pss, RowMapper rowMapper):根據String型別引數提供的SQL陳述句創建PreparedStatement物件,通過RowMapper將結果回傳到List中,

  • List query(String sql, Object[] args, RowMapper rowMapper):使用Object[]的值來設定SQL中的引數值,采用RowMapper回呼方法可以直接回傳List型別的資料,

  • <T> T queryForObject(String sql, RowMapper rowMapper, Object… args):將args引數系結到SQL陳述句中,并通過RowMapper回傳一個Object型別的單行記錄,//查詢結果,將結果封裝為物件,一般用于聚合函式的查詢,

  • Map<String,Object> queryForMap(String sql, Object[] args, int[] argTypes):查詢結果將結果集封裝為map集合,將列名作為key,將值作為value 將這條記錄封裝為一個map集合,

    注意:這個方法查詢的結果集長度只能是1,

  • <T> List<T> queryForList(String sql, Object[] args, class<T> elementType):該方法可以回傳多行據的結果,但必須是回傳串列,elementType引數回傳的是List元素型別,//查詢結果將結果集封裝為list集合,

    注意:將每一條記錄封裝為一個Map集合,再將Map集合裝載到List集合中,

    RowMapper:一般我們使用BeanPropertyRowMapper實作類,可以完成資料到JavaBean的自動封裝,

    new BeanPropertyRowMapper<型別>(型別.class)


最后

新人制作,如有錯誤,歡迎指出,感激不盡!
歡迎關注公眾號,會分享一些更日常的東西!
如需轉載,請標注出處!

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/295973.html

標籤:Java

上一篇:Bing每日壁紙的RESTful介面實作

下一篇:Spring系列之集成Druid連接池及監控配置

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more