適用於
你願意消耗一些記憶體空間來提公升速度。
你預料到某些鍵會被查詢一次以上。
快取中存放的資料總量不會超出記憶體容量。
cacheloader方式
//這種方式的返回值不能為null,會報異常
//這種方式使用get方法來獲取快取的值
//使用put賦值快取,put裡面傳入的是快取的key和入參,value值是load方法返回值
public
void
testloadingcache()
throws exception })
; system.out.
println
("a value:"
+ cahcebuilder.
get(
"a"));
cahcebuilder.
put(
"b",
"bbbb");
}
callable callback方式
//這種方式更加的靈活。可以在要使用的時候直接get
//這種方式使用getifpresent方法來獲取快取的值
public
void
testcallablecache()
throws exception })
; system.out.
println
("a value : "
+ resultval)
; resultval = cache.
getifpresent
("b");
system.out.
println
("a value : "
+ resultval)
;}
**的引數:
refresh機制:
1. loadingcache.refresh(k) 在生成新的value的時候,舊的value依然會被使用。
2. cacheloader.reload(k, v) 生成新的value過程中允許使用舊的value
3. cachebuilder.refreshafterwrite(long, timeunit) 自動重新整理cache
guava實現本地快取
private staticloadingcachecache cachebuilder的建構函式是私有的,只能通過其靜態方法newbuilder 來獲得cachebuilder的例項 cachebuilder.newbuilder 設定併發級別為8,併發級別是指可以同時寫快取的執行緒數 concu...
guava快取原理 listener
有時我們需要在快取被移除時得到這個通知,並做一些額外處理。這時removallistener就派上用場了。removallistener removallistener newremovallistener cacheloader loader newcacheloader loadingcache...
guava使用系列之Optional
1.用optional提前丟擲null person person getperson 11234 string name person.getname person為null的時候.要到用的時候丟擲異常,用了optional在建立的時候就能丟擲 optionalpersonoptional opt...