1.什麼是API?
可以理解爲Java自己提供的標準類庫,開發人員可直接使用其方法,
而不用進行源碼實現。如常用的打印方法:System.out.println();,這是Java自己提供的東西。
官方解釋:API(Application Programming Interface,應用程序編程接口)是一些預先定義的函數,
目的是提供應用程序與開發人員基於某軟件或硬件的以訪問一組例程的能力,
而又無需訪問源碼,或理解內部工作機制的細節。
2.常用API
瞭解API是什麼之後,再看一下Java中常用的API有哪些:
System類
StringBuffer&StringBuilder類
Math數學類
日曆時間格式
Runtime類
包裝類
2.1 System類
System類提供了大量的靜態方法,操作的內容和系統有關。
long currentTimeMillis(); 獲取當前時間戳
Properties getProperties(); 獲取系統屬性的方法
exit(int status); 退出當前程序
arrayCopy(Object src, int srcPos, Object dest, int detPos, int length)
Object src ——原數組
int srcPos ——從原數組指定下標開始
Object dest ——目標數組
int destPos——目標數組從指定位置開始
int length ——讀取數據的個數
2.2StringBuffer&StringBuilder
(1)概述
爲了解決String字符串操作導致的內存冗餘問題,提高效率,Java中提供了StringBuffer和StringBuilder來操作字符串,並且提供了很多方法,便於程序開發。
StringBuffer和StringBuilder中都有char類型可變長數組作爲字符串的保存空間。使用到的方法類型和ArrayList類似。
區別:
StringBuffer 線程安全,但效率較低
StringBuilder 線程不安全,但效率較高
(2)StringBuffer構造方法
Constructor:
StringBuffer(); 創建一個未存儲任何字符串信息的空StringBuffer空間,底層初始化一個16個字符char類型數組
StringBuffer(String str); 根據提供的String類型字符串創建對應的StringBuffer空間,底層char類型數組的容量會根據str.length + 16決定,並且保存對應的str
(3)StringBuffer成員方法
增:
append(Everything); 在StringBuffer和StringBuilder對象中,添加另外的數據,並且當作字符串處理。
insert(int index, Everything); 在StringBuffer和StringBuilder對象中,在指定的下標位置,添加其他內容,並且當作字符串處理。
刪:
dele(int start, int end); 刪除指定範圍內的字符 start <= n < end
deleteChartAt(int index); 刪除指定下標的字符
改:
replace(int start, int end, String str); 從指定位置start開始i,到end結束, start <= n < end,使用str替換
setCharAt(int index, char ch); 使用ch替換指定下標index對應的字符。
查:
String toString(); 將底層的char類型數組保存的字符內容轉換成對應的String類型字符串返回。
int length(); 返回底層char類型數組中有多少個有效元素
String substring(int begin); 從指定位置開始獲取到char類型數組有效元素末尾對應的字符串,截取操作
String substring(int begin, int end); 從指定位置begin開始到end結束,獲取對應的字符串,要頭不要尾
int indexOf(String str); 指定元素字符串所在下標位置
int lastindexOf(String str); 指定元素字符串最後一次所在下標位置
反序:
reverse();
2.3Math數學類
常用方法:
public static double abs(double a); 返回值爲絕對值
public static double ceil(double a); 向上取整
public static double floor(double a); 向下取整
public static double round(double a); 四捨五入
public static double random(); 隨機數 【0.0 <= 1.0】
2.4日曆時間格式
2.4.1 Date時期類【逐漸淘汰】
作用:
獲取當前系統時間【大部分構造方法已過時,僅作了解】
Constructor:
Date(); 創建一個Date,對應當前時間,精度爲毫秒值
Date(long date); 根據時間戳毫秒數,創建對應的Date對象,時間戳是從1970-01-01 00:00:00 GMT (GMT:格林威治標準時間)
Method:
long getTime();
通過Date類對象獲取對應當前時間的毫秒數
2.4.2 DateFormat 日期格式類
DateFormat 是一個abstract修飾的類,用於轉換時間。
DateFormat不能直接使用,一般使用DateFormat子類
SimpleDateFormat來使用
SimpleDateFormat構造方法中需要的參數是一個
String, String類型的參數有特定的要求
標識字母(區分大小寫) | 對應含義 |
---|---|
y | 年 |
M | 月 |
d | 日 |
H | 時(24小時) |
m | 分 |
s | 秒 |
String format(Date date);
根據指定匹配要求,轉換Date格式爲字符串
Date parse(String format);
按照指定的匹配規則,解析對應的字符串,返回一個Date數據
2.4.3 Calender日曆類
Calender日曆類,替換了很多Date類中的方法。把很多數據都作爲靜態的屬性,通過一些特定的方法來獲取。比Date處理日期數據更加方便。
Calender是一個abstract修飾的類,沒有自己的類對象。這裏通過特定的方法getInstance獲取Calender日曆類對象。
public static Calender getInstance();
默認當前系統時區的Calender對象
【常用方法:】
public int get(int field);
返回特定數據的數值
public void set(int field, int value);
設置特定字段對應的數據
public Date getTime();
返回得到一個Date對象,從計算機元年到現在的毫秒數,保存在date對象中
字段名 | 含義 |
---|---|
YEAR | 年 |
MONTH | 月(從0開始,使用時須+1) |
DAY_OF_MONTH | 當前月的第幾天 |
HOUR | 小時(12小時制) |
HOUR_OF_DAY | 小時(24小時制) |
MINUTE | 分鐘 |
SECOND | 秒 |
DAY_OF_WEEK | 周幾(注意:週日爲1) |
2.5 Runtime類
Runtime當前程序運行環境類對象,只要程序啓動就會有對應的Runtime存在。
獲取Runtime對象的方法:
Runtime Runtime.getRuntime();
需要了解的方法:
gc(); JVM的GC機制,但是就算你調用了GC方法,也不會立即執行。
long totalMemory(); 目前程序使用的總內存
long freeMemory(); 目前程序使用的剩餘內容
long maxMemory(); Java程序能過申請的最大內存
Process exec(String exePath); 開啓一個程序
2.6包裝類
Java中提供了兩種數據類型
【基本數據類型】
byte short int long double float boolean char
【引用數據類型】
類對象,數組,字符串
Java中萬物皆對象,Java中提供了包裝類,讓基本類型也可以當做類對象來處理。
包裝之後的基本數據類型依然可以進行基本的操作和運算,但是多了一些特有的方法,增加了操作性。
基本類型 | 對應的包裝類(java.lang) |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
char | Character |
2.6.1自動裝箱和自動拆箱
基本類和包裝類型之間進行轉換的操作,這個過程就是"裝箱"和"拆箱"。
裝箱 從基本類型到包裝類
拆箱 從包裝類到基本類型
【不推薦】
使用強制操作,太麻煩!!!
2.6.2包裝類和字符串數據轉換過程
從文本中讀取的數據很多都是字符串類型,例如 JSON XML Database
除了Character字符包裝類之外,其他的包裝類都有對應的解析方法
以下方法都是static修飾的靜態方法
public static byte parseByte(String str);
public static short parseShort(String str);
public static int parseInt(String str);
public static long parseLong(String str);
public static float parseFloat(String str);
public static double parseDouble(String str);
public static boolean parseBoolean(String str);
以上方法都是對飲的包裝類調用,解析成對應的基本數據類型。