我使用JDBCConnectionPooling对象池设计模式实现了数据库连接。我只是想知道对象池设计模式的实际示例。有谁能从对象池设计模式的任何Java中了解一个真实世界的例子吗?
发布于 2018-05-04 11:32:53
看看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使用的字符串池的一个非常简单的示例。
关于更多的阅读,我建议你读What is the Java string pool and how is "s" different from new String("s")?
发布于 2018-05-04 11:45:14
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 javadochttps://stackoverflow.com/questions/50173854
复制相似问题