【发布时间】:2017-08-31 08:26:18
【问题描述】:
字符串字面量何时分配并放入字符串池?具体来说,如果任何代码路径都无法访问字符串文字,那么它会被分配吗?
假设您有以下代码片段:
if(logger.isLoggable(Level.FINEST)){
logger.log(Level.FINEST, "literal");
}
如果 FINEST 不是并且从来不是可记录级别,是否会分配“literal”?
【问题讨论】:
-
发帖前请search throughly。对于 JVM 如何加载和处理字符串字面量,有 very 的完整答案的问题。
-
@T.J.Crowder 过去 3 个小时我一直在寻找,但我没有找到问题的答案。如果知道,请将其链接到问题。
-
@ZiMtyth 谢谢,但这并不能回答我的问题,因为它讨论了包含文字的代码始终可访问的情况,因此它们将始终被放入池中。但是如果包含文字的代码永远无法访问会发生什么?
-
@SvetlinZarev 缺少指向规范的链接!= 意见。
标签: java string-literals