栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

零基础java自学流程-Java语言进阶69

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

零基础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集零基础适合初学者视频教程←点击
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/332642.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号