短生命对象中的长静态字符串

use*_*469 11 java

这可能是一个愚蠢的问题(或者只是让我看起来很愚蠢:)),但是我会对如何在短期对象的上下文中使用长String对象感兴趣.

考虑在cron作业或匿名,命令或类似函数的类中进行长SQL查询.这些是非常短命的类,甚至在大多数时间里都会使用这些长字符串一次.什么是更好的?要构造一个String inline并让它与实例一起收集,或者将它设为静态final,并让它们在内存中无用,直到下一个类实例化为止?

pca*_*cao 8

好吧,对于字符串发生的事情,你只能控制得那么多.

即使你是内联创建的,这个String很可能会被添加到JVM的String常量池中,并且当你再次声明它时会被重用,所以在实践中,你可能会重用相同的String对象.

除非字符串太大以至于它对应用程序的性能产生影响,否则我不会担心它并选择对我来说更具可读性的选项.

如果该String仅在代码的一个特定点使用,在方法内部,我会将其声明为内联,我更喜欢将我的变量放在尽可能最小的范围内,但这里的意见可能会有所不同.如果没有任何改变,并且在您的特定用例中似乎有意义,那么无论如何都要将String声明为静态,我怀疑它会影响性能.