JAVA字符串对象数

JAVA字符串对象数,第1张

JAVA字符串对象数

尽管

String
是用Java编写的类,但它是一种与JVM有特殊关系的特殊类。其中之一是字符串文字(用引号引起来的字符序列)。当JVM看到
"abc"
它时,它会执行以下 *** 作:

String obj = stringLiteralsCache.get("abc");if (obj == null) {    obj = new String("abc");    stringLiteralsCache.put("abc", obj);}

因此,在您的第一个示例中,第一行导致创建实例,但是接下来的两行仅从缓存中获取已创建的实例。

但是,缓存仅适用于文字。当您显式调用构造函数时,它不能阻止创建新实例。因此,

newString("Welcome")
创建2个对象:一个来自文字,
Welcome
因为它尚未在缓存中,第二个来自显式调用String构造函数。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5462078.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存