- 常用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)