簡體   English   中英

Java對象池設計模式的真實示例

[英]Real world examples of Object Pool Design Pattern in Java

我已經使用對象池設計模式為數據庫連接實現了JDBCConnectionPooling。 我只是想知道對象池設計模式的真實示例。 任何人都可以對真實示例或任何對象池設計模式的 Java庫有任何想法嗎?

看一下java.lang.String,它使用字符串緩存,如果內聯,則類似

String foo = "foobar";
String bar = "foobar";

那么它將被翻譯為:

class StringPool {
   public static String static_foo = "foobar";
}

String foo = StringPool.foo;
String bar = StringPool.foo;

注意,這是java使用的字符串池的非常簡化的示例。

有關更多閱讀,我建議您閱讀Java字符串池是什么,“ s”與新的String(“ s”)有何不同?

Integer類按照Integer.valueOf說明緩存值

公共靜態整數valueOf(int i)

返回表示指定int值的Integer實例。 如果不需要新的Integer實例,則通常應優先於構造方法Integer(int)使用此方法,因為此方法通過緩存經常請求的值可能會產生明顯更好的空間和時間性能。 此方法將始終緩存-128至127(包括)范圍內的值,並且可能緩存該范圍之外的其他值。

范圍-128到127並不是一個真正的池,因為這將是一組靜態值,但是它被設計為還能夠在需要時緩存其他值。 請注意,我從未注意到行為超出了定義的范圍。 因此:

Integer.valueOf(5) == Integer.valueOf(5) //true
Integer.valueOf(1234) == Integer.valueOf(1234) //false even if it could be true based on the javadoc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM