Object
實(shí)例化對(duì)象調(diào)用
-
hashCode()
- 會(huì)返回一個(gè)int值跷叉,辭職時(shí)通過(guò)對(duì)象的內(nèi)存地址計(jì)算得出的咱扣,但這個(gè)值并不是對(duì)象的內(nèi)存地址硝烂。
-
Integer.toHexString(int x)
- 得到一個(gè)字符串别威,字符串時(shí)一個(gè)16進(jìn)制的數(shù)字形式。
-
getClass().getName()
- 得到對(duì)象字節(jié)碼中類(lèi)的全限定名稱(chēng)凳枝。
-
toString()
- 在子類(lèi)中重寫(xiě)父類(lèi)toString()方法后抄沮,會(huì)輸出類(lèi)名[各個(gè)屬性名+屬性值]。
Objects
類(lèi)調(diào)用傳入對(duì)象
-
toString()/toString(obj,String)
- 當(dāng)對(duì)象為空時(shí)岖瑰,返回null/當(dāng)對(duì)象為空時(shí)叛买,返回String字符串。
-
hashCode(obj)
- 當(dāng)對(duì)象為空時(shí)蹋订,返回0率挣,對(duì)象不為空時(shí)此方法與Object的hashCode()方法返回的值相同。
-
hash(obj...)
- 通過(guò)鎖有的參數(shù)對(duì)象計(jì)算出一個(gè)綜合的hash值,單個(gè)對(duì)象時(shí)與hashCode()方法計(jì)算的值時(shí)不一致的露戒。
-
equals(obj,obj)
- 如果兩個(gè)對(duì)象都為null,則直接返回true椒功,如果有一個(gè)是null,直接返回false捶箱,如果都不為null,則正常邏輯判斷
-
static <T> T requireNonNullElse?(T obj, T defaultObj)
- 如果obj非null,則返回它动漾,否則返回defaultObj(默認(rèn)對(duì)象)
w1 = new Weapon("屠龍槍", 10, 1000);
Weapon newW = Objects.requireNonNullElse(w1, new Weapon("板磚", 1, 5));
System.out.println(newW);
// Weapon [name=屠龍槍, grade=10, damage=1000]
newW = Objects.requireNonNullElse(null, new Weapon("板磚", 1, 5));
System.out.println(newW);
// Weapon [name=板磚, grade=1, damage=5]
// static <T> T requireNonNullElseGet?(T obj, Supplier<? extends T> supplier)
newW = Objects.requireNonNullElseGet(null, ()->new Weapon("板凳", 2, 7));
System.out.println(newW);
// Weapon [name=板凳, grade=2, damage=7]
-
Objects.requireNonNull(name)/Objects.requireNonNull(name,"武器的名字呢丁屎?");
- 如果name的值為null,則會(huì)拋出java.lang.NullPointerException/如果name的值為null旱眯,則會(huì)拋出java.lang.NullPointerException,并且以第二個(gè)參數(shù)的字符串為異常對(duì)象的消息,以下方法的第二個(gè)參數(shù)是一個(gè)函數(shù)式接口晨川,使用一個(gè)Lambda表達(dá)式進(jìn)行生成消息字符串行為的傳遞.
static <T> T requireNonNull?(T obj, Supplier<String> messageSupplier)
Objects.requireNonNull(name,()->"武器的名字呢?".substring(3));
String删豺、StringBuffer共虑、StringBuilder
String內(nèi)存存儲(chǔ)
// 使用String類(lèi)的構(gòu)造器實(shí)例化的對(duì)象是存儲(chǔ)在內(nèi)存堆空間中的
String s1 = new String("abc");
String s2 = new String("abc");
?
System.out.println(s1 == s2);// false
// s1.intern()會(huì)把s1的字符串內(nèi)容復(fù)制到串池中,并返回串池中的字符串
// s3.引用的是串池中的字符串地址吼鳞,而s1還是在引用著堆中的字符串
String s3 = s1.intern();
System.out.println(s1 == s2);// false
System.out.println(s1 == "abc");//false
System.out.println(s2 == "abc");//false
System.out.println(s3 == "abc");//true
String
-
new String()
- String類(lèi)的構(gòu)造器可以傳入自定義字符串("abc"),還有字符數(shù)組傳入進(jìn)行拼接看蚜,int數(shù)組根據(jù)字典表轉(zhuǎn)化成對(duì)應(yīng)字符叫搁,還可以自定義編碼表new String(int數(shù)組赔桌,"編碼表名");
-
length()
- 可以獲取字符串的字符長(zhǎng)度。
-
String.format():格式化字符串
%s:字符串
%d:整型數(shù)據(jù)
%f:浮點(diǎn)數(shù)(單精度和雙精度)
-
getBytes()
- 可以把字符轉(zhuǎn)化為編碼渴逻。
-
compareTo(String obj)
- 按字典順序比較調(diào)用方和obj疾党,A<Z<a<z
-
compareToIgnoreCase(String obj)
- 同上,但對(duì)大小寫(xiě)不敏感
-
concat(String obj)
- 字符串拼接操作把調(diào)用方和obj拼接到一塊
-
startsWith(String obj)
- 判斷調(diào)用方是否以obj開(kāi)始
-
endsWith(String obj)
- 判斷調(diào)用方是否以obj結(jié)束
-
contains(String obj)
- 判斷調(diào)用方是否包含obj
-
int indexOf?(String str)/int indexOf?(String str, int fromIndex)
- 在大串中查找參數(shù)str從左向右順序惨奕,第一次出現(xiàn)的索引位置雪位,如果str不存在于大串中,返回-1 / 在大串中梨撞,從fromIndex字符處開(kāi)始查找參數(shù)str雹洗,方向是從左向右順序,第一次出現(xiàn)的索引位置卧波,如果str不存在于大串中时肿,返回-1,通常使用此方法查詢(xún)某個(gè)子串是否存在于大串中港粱,用是否返回-1判定螃成。
-
lastIndexOf()
- 和indexOf相同,只是此方法從后往前查找查坪。
-
indent(n)
- 縮進(jìn)n個(gè)空格
-
isBlank()
- 空串寸宏、只是由空白符構(gòu)成的字符串在調(diào)用isBlank()方法后會(huì)返回true,否則返回false偿曙。
-
isEmpty()
- 只有字符串的長(zhǎng)度是0時(shí)氮凝,isEmpty()方法才返回true,與字符串內(nèi)容是否是空白符無(wú)關(guān)望忆。
-
String.join(" --- ", strArr)
- 使用第一個(gè)參數(shù)作為分隔符罩阵,把后續(xù)的可變長(zhǎng)參數(shù)連接成一個(gè)字符串
-
lines()
- lines()方法會(huì)將字符串以回車(chē)換行分隔為若干元素并組織成一個(gè)Stream
-
repeat(n)
- 讓調(diào)用方重復(fù)n次組成一個(gè)新的字符串
-
split(dm)
- 按dm對(duì)調(diào)用方進(jìn)行分割組成一個(gè)新的字符串?dāng)?shù)組朵纷,可加參數(shù)限制其分為幾部分
-
substring(n)/substring(a,b)
- 從調(diào)用方的的第n+1個(gè)字符開(kāi)始截取到調(diào)用方的結(jié)束 / 從調(diào)用方的的第a+1個(gè)字符開(kāi)始截取到調(diào)用方的b+1個(gè)字符之前。
StringBuilder
當(dāng)使用StringBuilder(String str)構(gòu)造StringBuilder對(duì)象的時(shí)候永脓,對(duì)象的容量是str的長(zhǎng)度加16
-
append("")
- 追加到其后
-
reverse()
- 倒序
-
insert(n,"")
- 在第n個(gè)元素后添加字符
-
delete(a,b)
- 刪除(a,b]的字符
-
deleteCharAt(n)
- 刪除第n+1個(gè)字符
-
replace(a,b,"")
- 把第[a+1,b]個(gè)字符替換掉
-
capacity()
- 返回當(dāng)前對(duì)象的可用容量
-
trimToSize()
- 把StringBuilder對(duì)象中空余空間釋放袍辞,只留存已有字符數(shù)據(jù)的部分
Date
-
Date()
- 構(gòu)造器得到的對(duì)象描述著執(zhí)行此構(gòu)造器時(shí)的日期時(shí)間點(diǎn)
-
Date(long ms)
- 得到從1970年元旦0點(diǎn)經(jīng)過(guò)ms毫秒后的時(shí)間點(diǎn)
-
System.currentTimeMillis()
- new Date(System.currentTimeMillis())與new Date()有作用類(lèi)似,獲取當(dāng)前時(shí)間
-
getTime()
- 得到日期對(duì)象與1970年元旦0點(diǎn)之間的毫秒差
Calendar
**Calendar類(lèi)沒(méi)有構(gòu)造器,需要調(diào)用getInstance()靜態(tài)工廠方法來(lái)實(shí)例化對(duì)象
-
set()
- 設(shè)置時(shí)間
-
setTime(Date date)
- 設(shè)置Date類(lèi)型的時(shí)間
-
setTimeInMillis(millis)
- 通過(guò)毫秒數(shù)設(shè)置時(shí)間常摧,在1970年的基礎(chǔ)上
-
equals()
- 對(duì)比兩個(gè)時(shí)間的大小搅吁,0相等
-
add()
- 在原有基礎(chǔ)上添加各個(gè)屬性的值