首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java对象池设计模式的实例

Java对象池设计模式的实例
EN

Stack Overflow用户
提问于 2018-05-04 11:28:17
回答 2查看 837关注 0票数 0

我使用JDBCConnectionPooling对象池设计模式实现了数据库连接。我只是想知道对象池设计模式的实际示例。有谁能从对象池设计模式的任何Java中了解一个真实世界的例子吗?

EN

回答 2

Stack Overflow用户

发布于 2018-05-04 11:32:53

看看java.lang.String,它使用字符串的缓存,如果内联中有类似的内容

代码语言:javascript
运行
复制
String foo = "foobar";
String bar = "foobar";

然后,它将被翻译成以下内容:

代码语言:javascript
运行
复制
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")?

票数 0
EN

Stack Overflow用户

发布于 2018-05-04 11:45:14

Integer类缓存值,如Integer.valueOf中解释的那样

公共静态整数valueOf(int i) 返回表示指定int值的Integer实例。如果不需要新的Integer实例,则通常应该优先使用此方法而不是构造函数Integer(int),因为这种方法可能会通过缓存频繁请求的值来获得更好的空间和时间性能。此方法将始终将值缓存在-128到127 (包括在内)范围内,并且可以缓存此范围以外的其他值。

范围-128到127实际上不是一个池,因为这将是一个静态的值集,但它的设计也能够缓存其他值,如果需要的话。请注意,我从未注意到在定义的范围之外的行为。因此:

代码语言:javascript
运行
复制
Integer.valueOf(5) == Integer.valueOf(5) //true
Integer.valueOf(1234) == Integer.valueOf(1234) //false even if it could be true based on the javadoc
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50173854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档