【发布时间】:2011-06-11 09:20:52
【问题描述】:
假设我在运行时创建了以下两个字符串(例如来自用户输入):
public void someMethod(String input) {
if ( input == null ) return;
String a = input + input;
String b = input;
...
}
Java(及其编译器)是否足够聪明,可以在运行时检测到b 包含在a 中,因此不需要为b 分配内存? b 可以只指向一半长度的a 吗?
也就是说,Java 是否实现了String.intern() 的动态版本?
编辑
考虑到到目前为止的答案,我的例子应该是:
public void someMethod(String input) {
if ( input == null ) return;
String a = input + input + input;
String b = input + input;
...
}
【问题讨论】:
标签: java string optimization runtime