Objects類源碼分析

1.這個類的基本說明:函數

從這段代碼,能夠看出,這個類包括了非空檢查、方法的非空參數檢查、 比較對象的hashCode、爲對象返回一個字符串表示、比較兩個對象。工具

 

2.構造方法ui

一、這個類從jdk1.7開始出現的;3d

二、該類是使用final修飾的,不能被繼承;對象

三、該類的構造方法被私有化(使用private修改),不能直接建立對象blog

四、該類中全部的方法都是靜態的,可使用類名點直接調用,不須要建立對象。繼承

因此,若是工做中,寫工具類也能夠私有化構造方法,同時拋一個異常。字符串

3.靜態方法get

equals:比較2個對象是否相等,之後工做中有須要的話,能夠直接用jdk這個工具類的方法判斷。hash

deepEquals:深度比較2個對象是否相等。若是==的話,返回true,若是任意一個爲null,返回false,不然,用Arrays.deepEquals方法比較是否相等

hashCode:返回一個對象的hash值,對象爲null時,返回0.

hash:傳入多個對象時,返回一個hash值,若是對象只有一個時,這個值不等於引用地址的hash值,能夠用hashCode方法計算。

 

toString:將對象轉成字符串。

toString(Object 0,String nullDefault):將對象轉成字符串,若是字符串爲null,則爲nullDefault,也就是當字符串爲null時能夠設置默認值。

compare:使用指定的比較器比較2個數的大小。其中一個數爲null時是否拋出異常,取決於所選的比較器。

requireNonNull:判空操做。

requireNonNull(Object o,String message):判空操做,當爲控制,跑出異常,異常信息爲message。

inNull:對象是否爲null,該方法從jdk1.8纔開始有的。

nonNull:對象是否不爲null,該方法從jdk1.8纔開始有的。

requireNonNullElse(T obj,T defaultObj):當obj不爲null,返回obj,不然,判斷defaultObj是否爲null,不爲null,返回defaultObj,爲null,返回字符串「defaultObj」。該方法從jdk9開始纔有的。

requireNonNullElseGet(T obj,Supplier<? extends T>supplier):當obj不爲null,返回obj,不然,判斷supplier是否爲null,不爲null,再判斷supplier.get()是否爲null,不爲null,返回字符串supplier.get()。該方法從jdk9開始纔有的。

requireNonNull(T obj,Supplier<String> messageSupplier):判斷對象是否爲null,爲null時,拋出用戶自定義異常。這個從jdk1.8開始纔有的。

checkIndex:從jdk9開始纔有的方法。

@ForceInline註解,當HotSpot VM內聯方法或構造函數時,若是要忽略標準內聯指標,那麼能夠將方法或構造函數註釋爲「force inline」。

必須謹慎使用此註釋。當唯一合理的替代方法是將特定方法或構造函數的名稱綁定到HotSpot VM中,以便內聯策略進行特殊處理時,這種方法很是有用。

不能依賴該註釋做爲避免調優VM內聯策略的替代方法。在一些狀況下,它可能充當臨時的解決方案,直到HotSpot VM執行的分析和內聯獲得足夠的改進。

此註釋僅對引導加載程序加載的類的方法或構造函數生效。在引導加載程序以外加載的類的方法或構造函數上的註釋將被忽略。

checkFromToIndex:該方法從jdk9開始纔有的。

checkFromIndexSize:該方法從jdk9開始纔有的。

相關文章
相關標籤/搜索