Java 何时分配字符串文本

Java 何时分配字符串文本,java,string-literals,Java,String Literals,何时分配字符串文本并将其放入字符串池?具体地说,如果任何代码路径都无法访问字符串文字,是否会分配它 假设您有以下代码片段: if(logger.isLoggable(Level.FINEST)){ logger.log(Level.FINEST, "literal"); } 如果FIEST不是且从来都不是可记录级别,是否会分配“文字”?来自: 类或接口的运行时常量池是在Java虚拟机创建类或接口时构造的(§5.3) 因此,使用它的代码的可访问性与此无关。请在发布

何时分配字符串文本并将其放入字符串池?具体地说,如果任何代码路径都无法访问字符串文字,是否会分配它

假设您有以下代码片段:

    if(logger.isLoggable(Level.FINEST)){
        logger.log(Level.FINEST, "literal");
    }
如果FIEST不是且从来都不是可记录级别,是否会分配“文字”?

来自:

类或接口的运行时常量池是在Java虚拟机创建类或接口时构造的(§5.3)


因此,使用它的代码的可访问性与此无关。

请在发布之前。关于JVM如何加载和处理字符串文本,有一些问题的答案非常透彻。也许这会有帮助@T.J.Crowder我已经搜索了3个小时,但没有找到我问题的答案。如果知道这些,请将其链接到问题。@ZiMtyth谢谢,但这并不能回答我的问题,因为它讨论了包含文本的代码总是可访问的情况,因此它们总是会被放入池中。但是,如果无法访问包含文字的代码,会发生什么情况?@SvetlinZarev缺少指向规范的链接!=谢谢你的意见!这正是我想要的。