- 常用API
- JavaAPI
- 1 java.lang
- 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
- 4 java.io
- 5 java.net
- 6 java.sql
- 7 javax.sql
- 其他API
- JavaAPI
- 最后
常用API
參考資料:
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)
:分配一個指定名字的新的線程對象。//threadThread(Runnable target)
:配一個帶有指定目標新的線程對象。Thread(Runnable target, String name
):分配一個帶有指定目標新的線程對象並指定名字。
常用方法:
String getName()
:獲取當前線程名稱。void setName(String name)
:改變線程名稱,使之與參數name相同。//mainvoid 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)
最后
