JDK1 8 Optional 原始碼剖析

2021-08-28 09:11:24 字數 768 閱讀 9814

容器物件,可能包含也可能不包含非null值。如果存在值,將返回並且將返回該值。

提供依賴於是否存在包含值的其他方法,例如(如果值不存在則返回預設值)和(如果值存在則執行**塊)。

返回具有指定的當前非空值的。

public static optionalof(t value) 

私有的建構函式

private optional(t value)

objects. requirenonnull 如果為空則會報空指標

public static t requirenonnull(t obj)

返回描述指定值的,如果為非null,否則返回空。

public static optionalofnullable(t value)
如果值存在則返回,否則則返回other

public t orelse(t other)
public class optiontest 

public static string getusername(string userid)

public static string getuserage(string userid)

}

JDK1 8 HashMap putVal原始碼解讀

final v putval int hash,k key,v value,boolean onlyifabsent,boolean evict 該節點不為鍊錶最後乙個節點,判斷值是否相同,相同直接退出迴圈,因為此時e指向 p.next 即p.next是相同節點,需要替換 if e.hash has...

JDK1 8 HashMap resize原始碼解讀

final node resize newcap oldcap 2 左移1位相當於原值 2 並且原長度大於16 else if newcap oldcap 1 maximum capacity oldcap default initial capacity newthr oldthr 1 doubl...

ThreadLocal總結 jdk1 8原始碼

threadlocal為每個使用它的執行緒提供乙個變數的副本。threadlocal中的主要方法 public void set t value public void set t value 先呼叫thread類的靜態方法獲得當前執行緒的thread物件,每個執行緒對應的thread物件都有乙個t...