java性能:字符串文本
我想知道字符串文字和java性能之间的关系 例如,多次使用下面的语句会对性能产生影响。我有数千个类,我们多次使用下面的语句:java性能:字符串文本,java,memory-management,Java,Memory Management,我想知道字符串文字和java性能之间的关系 例如,多次使用下面的语句会对性能产生影响。我有数千个类,我们多次使用下面的语句: 1) buffer.append(","); 2) buffer.append("}"); 3)String.append("10,000 times...same lines") // printing same lines in many classes 3)String.someStringMethod("same line many times") // usi
1) buffer.append(",");
2) buffer.append("}");
3)String.append("10,000 times...same lines") // printing same lines in many classes
3)String.someStringMethod("same line many times") // using any String method
这是否会对内存管理等方面的性能造成影响。我们有没有更干净的方法
谢谢很难对毫无意义的例子进行评论。然而:
- 一般来说,Java字符串文本没有特别的效率问题
- 一般来说,采用字符串文字作为参数的方法没有特别的效率问题
- 如果某段代码执行得足够频繁,字符串连接/构建可能会带来效率问题。然而,如果您需要构建字符串,那么就没有什么可以做的了
String s = "";
for (/* lots of times */) {
// do stuff
s += someOtherString;
}
问题是,这会生成并丢弃大量临时字符串。更有效的方法是:
StringBuilder sb = new StringBuilder();
for (/* lots of times */) {
// do stuff
sb.append(someOtherString);
}
String s = sb.toString();
然而,只有当探查器告诉您这段特定的代码是一个瓶颈时,才有可能对这类事情进行优化。很难对毫无意义的示例进行评论。然而:
- 一般来说,Java字符串文本没有特别的效率问题
- 一般来说,采用字符串文字作为参数的方法没有特别的效率问题
- 如果某段代码执行得足够频繁,字符串连接/构建可能会带来效率问题。然而,如果您需要构建字符串,那么就没有什么可以做的了
String s = "";
for (/* lots of times */) {
// do stuff
s += someOtherString;
}
问题是,这会生成并丢弃大量临时字符串。更有效的方法是:
StringBuilder sb = new StringBuilder();
for (/* lots of times */) {
// do stuff
sb.append(someOtherString);
}
String s = sb.toString();
然而,只有当探查器告诉您这段特定的代码是一个瓶颈时,才有可能对这类事情进行优化
这(大部分)是无效的Java代码,因此很难对其效率进行评论。@Stephen:是的,这是无效的。我只是想举个例子……我的观点是,对一个毫无意义的例子进行评论是没有用的。请提供有意义的示例,说明您希望我们评论的代码类型。(你的更新没有帮助…)使用内存分析器并确定是否有问题。@Stephen:我明白。让我试着澄清一下。我有1000个类,其中我们使用了这样的类型