本章節收集的類/接口API有:html
Object,Enum,包裝類,Comparable,Arrays,Thread,Throwable,String,Collections,正則java
非靜態方法需對象調用jquery
public String toString(): 【把一個對象的信息用一個字符串表示,儘可能要可以簡單易懂,建議子類重寫】api
public Class<?> getClass(): 【獲取對象的「運行時」類型】數組
public void finalize(): 【當一個對象被肯定爲垃圾時,由GC垃圾回收器來進行調用,每個對象的finalize()方法只會被調用一次】框架
public int hashCode(): 【返回一個對象的hashCode值】dom
常規協定:ide
(1)若是一個對象的參與計算hashCode值的成員變量沒有修改,那麼在程序運行期間,每次獲取的hashCode值不變。工具
(2)若是兩個對象hashCode不一樣,那麼這兩個必定不「相等」測試
(3)若是兩個的hashCode值相同,那麼這兩個對象不必定「相等」
(4)若是兩個相等,那麼他們的hashCode值必定要相同。
public boolean equals(Object obj): 【用於判斷當前對象與指定對象是否相等】
默認的實現,等價於「==」,比較對象的內存地址。
子類能夠選擇重寫,重寫有一些要求及原則:重寫equals時,必定要重寫hashCode方法。一致性、對稱性、自反性、傳遞性、非空對象與null的equals必定是false
protected Object clone()throws CloneNotSupportedException : 【獲取一個對象的克隆體對象】
全部類型均可以重寫這個方法,它是獲取一個對象的克隆體對象用的,就是造一個和當前對象各類屬性值如出一轍的對象。固然地址確定不一樣。
調用此方法必須實現java.lang.Cloneable接口。
1.toString(): 【默認返回的是常量名(對象名),能夠繼續手動重寫該方法】
2.name(): 【返回的是常量名(對象名)】
3.ordinal(): 【返回常量的次序號,默認從0開始】
4.values(): 【返回該枚舉類的全部的常量對象,返回類型是當前枚舉的數組類型,是一個靜態方法】
5.valueOf(String name): 【根據枚舉常量對象名稱獲取枚舉對象】
大部分方法爲靜態方法,可用類名調用
一、基本數據類型和字符串之間的轉換
1)String str = String.valueOf(xxx); 【把基本數據類型轉爲字符串】
2)除了Character類以外,其餘全部包裝類都具備parseXxx靜態方法
int a = Integer.parseInt("整數的字符串"); 【String轉換成對應的基本類型 】
3)把字符串轉爲包裝類,而後能夠自動拆箱爲基本數據類型,(返回值類型是包裝類)
int a = Integer.valueOf("整數的字符串"); 【把字符串轉爲包裝類】
二、數據類型的最大最小值
Integer.MAX_VALUE和Integer.MIN_VALUE 【返回對應類型的最大/小常量值】
三、字符轉大小寫
Character.toUpperCase('x'); 【字符轉大寫】
Character.toLowerCase('X'); 【字符轉小寫】四、整數轉進制
Integer.toBinaryString(int i) 【整數轉二進制】
compareTo(String)和compareToIgnoreCase(String)方法 【對兩個字符串進行比較】
Integer.toHexString(int i) 【整數轉十六進制】
Integer.toOctalString(int i) 【整數轉八進制】
int compareTo(Object obj); 【根據對象屬性的值按天然排序】
第一步:哪一個類的對象要比較大小,哪一個類就實現java.lang. Comparable接口,並重寫方法
第二步:對象比較大小時,經過對象調用compareTo方法,根據方法的返回值決定誰大誰小。
接口規定:返回值大於0調用對象大於指定對象,小於0就小於指定對象,等於0就兩個對象值相等
(java.util.Arrays數組工具類的public static void sort(Object[] a)就是這麼實現的)
int compare(Object o1,Object o2); 【根據對象屬性的值按定製排序】
第一步:編寫一個類,咱們稱之爲比較器類型,實現java.util. Comparator接口,並重寫方法
第二步:比較大小時,經過比較器類型的對象調用compare()方法,將要比較大小的兩個對象做爲compare方法的實參傳入,根據方法的返回值決定誰大誰小。
o1對象大於o2返回正整數
o1對象小於o2返回負整數
o1對象等於o2返回零
(java.util.Arrays數組工具類的public static <T> void sort(T[] a, Comparator<? super T> c)就是這作的)
java.lang.Cloneable接口,和Object類配合使用 【用於複製對象】
所有爲靜態方法
此類包含用來操做數組(好比排序和搜索)的各類方法。此類還包含一個容許將數組做爲列表來查看的靜態工廠。並且以下每個方法都有各類重載形式,如下只
列出int[]類型的,其餘類型的數組類推。其可按照參數類型按升序排序,還可指定範圍按升序進行排序。
static int binarySearch(int[] a, int key) 【要求數組有序,在數組中查找key是否存在,若是存在返回第一次找到的下標,不存在返回負數】
static int[] copyOf(int[] original, int newLength) 【根據original原數組複製一個長度爲newLength的新數組,並返回新數組】
static int[] copyOfRange(int[] original, int from, int to) 【複製original原數組的[from,to)構成新數組,並返回新數組】
static boolean equals(int[] a, int[] a2) 【比較兩個數組的長度、元素是否徹底相同】
static void fill(int[] a, int val) 【用val填充整個a數組】
static void fill(int[] a, int fromIndex, int toIndex, int val) 【將a數組[fromIndex,toIndex)部分填充爲val】
static void sort(int[] a) 【將a數組按照從小到大進行排序】
static void sort(int[] a, int fromIndex, int toIndex) 【將a數組的[fromIndex, toIndex)部分按照升序排列】
static String toString(int[] a) 【把a數組的元素,拼接爲一個字符串,形式爲:[元素1,元素2,元素3。。。]】
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER); 【忽略大小寫排序】
Arrays.sort(strArray, Collections.reverseOrder()); 【反向排序】
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER); 【忽略大小寫反向排序】
sort(T[] a, Comparator<? super T> c)
【根據指定比較器產生的順序對指定對象數組進行排序。(同上面接口配合使用)】
public String getName() 【獲取當前線程名稱】
public final void setPriority(int newPriority) 【改變線程的優先級,最高10級,最低1級,默認5級】
public static void yield(): 【只是讓當前線程暫停一下,隨後繼續和其餘線程競爭】
public static Thread currentThread() 【返回對當前正在執行的線程對象的引用。】
Thread.State getState() 【返回該線程的狀態。】
void interrupt() 【中斷線程。】
public final boolean isAlive(): 【測試線程是否處於活動狀態。若是線程已經啓動且還沒有終止,則爲活動狀態。】
void join() : 【等待該線程終止】
boolean isInterrupted() 【測試線程是否已經中斷】
void join(long millis) : 【等待該線程終止的時間最長爲
millis
毫秒】setDaemon(true) 【方法可將指定線程設置爲守護線程。必須在線程啓動以前設置】
isDaemon() 【能夠判斷線程是不是守護線程】
static boolean holdsLock(Object obj) 【當且僅當當前線程在指定的對象上保持監視器鎖時,才返回 true】
(1)public long totalMemory(): 【總內存】
(2)public long freeMemory(): 【空閒內存】
(3)public static Runtime getRuntime() 【返回與當前 Java 應用程序相關的運行時對象。】
(4)gc();
public static double sqrt(double a): 【返回a的平方根】
public static double random(): 【返回[0,1)的隨機值】
public static final double PI: 【返回圓周率】
public static double max(double x, double y): 【返回x,y中的最大值】
public static double min(double x, double y): 【返回x,y中的最小值】
BigInteger add(BigInteger val) 【加】
BigInteger subtract(BigInteger val) 【減】
BigInteger multiply(BigInteger val) 【乘】
BigInteger divide(BigInteger val) 【除】
BigInteger remainder(BigInteger val) 【餘】
不可變的、任意精度的有符號十進制小數。
不可直接用運算符計算,要new對象來表示數據,要經過add,subtract,multiply,divide等方法來進行算術運算,參見API,其中除法運算須要指定類型和精度
void nextBytes(byte[] bytes): 【生成隨機字節並將其置於用戶提供的 byte 數組中。】
double nextDouble(): 【返回下一個僞隨機數,它是取自此隨機數生成器序列的、在 0.0 和 1.0 之間均勻分佈的 double 值。】
float nextFloat(): 【返回下一個僞隨機數,它是取自此隨機數生成器序列的、在 0.0 和 1.0 之間均勻分佈的 float 值。】
double nextGaussian(): 【返回下一個僞隨機數,它是取自此隨機數生成器序列的、呈高斯(「正態」)分佈的 double 值,其平均值是 0.0,標準差是 1.0。】
int nextInt(): 【返回下一個僞隨機數,它是此隨機數生成器的序列中均勻分佈的 int 值。】
int nextInt(int n): 【返回一個僞隨機數,它是取自此隨機數生成器序列的、在 0(包括)和指定值(不包括)之間均勻分佈的 int 值。】
long nextLong(): 【返回下一個僞隨機數,它是取自此隨機數生成器序列的均勻分佈的 long 值。】
new Date(): 【當前系統時間】
long getTime(): 【返回該日期時間對象距離1970-1-1 0.0.0 0毫秒之間的毫秒值】
new Date(long 毫秒): 【把該毫秒值換算成日期時間對象】
java.util.Calendar
它是抽象類,沒法直接建立對象,直接建立子類對象:GregorianCalendar
經過指定時區和語言環境來建立對象,Calendar.getInstance(時區,語言環境),若是沒有指定,就根據操做系統默認的時區和語言環境
int get(int field) 【返回給定日曆字段的值】
java.util.TimeZone:時區
java.util.Locale:語言環境java.text.DateFormat
抽象類,沒法直接建立對象,直接建立它子類的對象:SimpleDateFormat,只支持對Date類型 對象進行格式化
public StringBuffer format(Date date,StringBuffer toAppendTo,FieldPosition pos) 【把日期轉爲字符串:format(日期)】
將給定的
Date
格式化爲日期/時間字符串,並將結果添加到給定的StringBuffer
。public Date parse(String text,ParsePosition pos) 【把字符串轉爲日期】
java.time.chrono – 提供對不一樣的日曆系統的訪問。
java.time.format – 格式化和解析時間和日期
java.time.temporal – 包括底層框架和擴展特性
java.time.zone – 包含時區支持的類
static LocalDate now() 【從默認時區的系統時鐘獲取當前日期】
static LocalDate of(int year, int month, int dayOfMonth) 【從一年,一個月和一天得到一個 LocalDate的實例】
int getMonthValue() 【將月份字段從1到12返回】
Month getMonth() 【使用 Month枚舉獲取月份字段】
LocalDate withYear(int year) 【返回此日期的副本,並修改年份,同下面2個需從新接收】
LocalDate plusYears(long yearsToAdd) 【返回這個 LocalDate的副本,其中指定的時間段以添加的年數表示】
LocalDate minusYears(long yearsToSubtract) 【返回此 LocalDate的副本,以減去的年份爲單位】
boolean isLeapYear() 【根據ISO培訓日曆系統規則,檢查年份是不是閏年】
static LocalDate parse(CharSequence text) 【從一個文本字符串(如 2007-12-03獲取一個 LocalDate的實例】
boolean isAfter(ChronoLocalDate other) 【檢查此日期是否在指定日期以後】
boolean isBefore(ChronoLocalDate other) 【檢查此日期是否在指定日期以前】
boolean isEqual(ChronoLocalDate other) 【檢查此日期是否等於指定的日期】
boolean equals(Object obj) 【檢查這個日期是否等於另外一個日期】
int compareTo(ChronoLocalDate other) 【將此日期與另外一個日期進行比較】
Temporal adjustInto(Temporal temporal) 【調整指定的時間對象與此對象的日期相同】
static Duration between(Temporal startInclusive, Temporal endExclusive) 【獲取一個 Duration表示兩個時間對象之間的持續時間】
static Period between(LocalDate startDateInclusive, LocalDate endDateExclusive) 【得到一個 Period ,由兩個日期之間的年數,月份和日期組】
e.toString(): 【得到異常種類和錯誤信息】
e.getMessage(): 【得到錯誤信息】