パッケージcom.study。 輸入java.util.concurrent.Callable。 輸入java.util.concurrent.ExecutionException。 輸入java.util.concurrent.TimeUnit。 輸入org.junit.Test; 輸入com.google.common.cache.CacheBuilder。 輸入com.google.common.cache.RemovalListener。 輸入com.google.common.cache.RemovalNotification。 輸入com.google.common.cache.Cache ;; / ** *グアバキャッシュテスト * * @Author pengbo.zhao * @Data 2019インディアン11越5 Riを午前十時24分15秒AM * * *キャッシュの作成 * {* @link #createCache()}単純なキャッシュを作成 * * * * / パブリック・ クラスGuavaCache { @テスト 公共 ボイド createCacheは()スローExecutionExceptionを{ キャッシュ <文字列、文字列>キャッシュ= CacheBuilder.newBuilder() // 設定同時の数(同時CPUの数を決定するために、現在のオペレーティングシステムの数を得るために) .concurrencyLevel(Runtime.getRuntime()。AvailableProcessorsは()) // 設定された初期容量 .initialCapacity(1000 ) // ストレージの最大量を設定 (.maximumSizeを900 ) // (3秒)が使用されていない有効期限設定 .expireAfterAccess(3 )、TimeUnit.SECONDSを // (3秒)が書き込みを満了した有効期限を設定し .expireAfterWriteを(。3、TimeUnit.SECONDS) // クリア設定された基準(設定値記憶弱参照) .weakValues() // 設定統計 .recordStats() // 設定除去通知 .removalListener(新しい新しい RemovalListener <文字列、文字列> (){ @オーバーライド 公共 ボイド onRemoval(RemovalNotification <文字列、文字列> 通知){ System.out.println(notification.getKey() + " - " + notification.getValue()+ "削除されました" )。 } }) // ビルド .build(); cache.put( "キー1"、 "VALUE1" )。 System.out.println(cache.getIfPresent( "キー1" )); 文字列KEY2 = cache.get( "KEY2"、新しい呼び出し可能<ストリング> (){ @オーバーライド 公共の文字列()の呼び出しでスロー例外{ リターン「値2」を。 } }); System.out.println(KEY2)。 } }