零基础java自学流程-Java语言进阶69
想要系统学习JAVA推荐JAVA300集
Java300集零基础适合初学者视频教程←点击
不同场景下三个类的性能测试
从第二节我们已经看到了三个类之间的区别。在本节中,我们将做一个小测试来测试这三个类的性能差异:
public class Main {
private static int time = 50000;
public static void main(String[] args) {
testString();
testStringBuffer();
testStringBuilder();
test1String();
test2String();
}
public static void testString () {
String s="";
long begin = System.currentTimeMillis();
for(int i=0; i
测试结果(win7,Eclipse,JDK6):
上面提到string+="hello"的 *** 作 事实上会自动被JVM优化 ,看下面这段代码:
public class Main {
private static int time = 50000;
public static void main(String[] args) {
testString();
testOptimalString();
}
public static void testString () {
String s="";
long begin = System.currentTimeMillis();
for(int i=0; i
执行结果:
验证。
以下是对上述结果的一般解释:
1)直接添加字符串 是有效的,因为编译器决定了它们的值,例如,“I”+“love”+“Java”;在编译时优化为“Ilovejava”。可以使用javap -c命令来反编译生成的类文件来验证这一点。
对于间接加法(即包含字符串引用),s1+s2+s3;这比直接加法效率低,因为引用变量没有在编译器中进行优化。
2) String、StringBuilder和StringBuffer的执行效率:
StringBuilder祝辞StringBuffer祝辞字符串
当然,这是相对的,并非在所有情况下都是如此。
例如String STR = "hello"+ "world"比StringBuilder更有效st = new StringBuilder().append("hello").append("world")
因此,这三种类别各有优缺点,应根据不同情况进行选择和使用:
字符串STR ="hello"推荐用于字符串添加或小更改。
在频繁添加字符串时推荐使用StringBuilder,在使用多个线程时推荐使用StringBuffer。
想要系统学习JAVA推荐JAVA300集 Java300集零基础适合初学者视频教程←点击
评论列表(0条)