zoukankan      html  css  js  c++  java
  • 字符串拼接原理 javac 和 javap

    一、新建一个 Test1 类

    public class Test1 {
        
        public static void main(String[] args) {
            String a = "a";
            String s = a+"b"+"c"+"d";
            System.out.println(s);
        }
        
    }

    二、使用 javac 将 Test1.java 编译为 Test1.class

    C:User桌面>javac D:workspaceTest1srccom	estTest1.java

    三、使用 javap -c 将 Test1.class 反编译

    四、结论

    String 在做字符串拼接的时候,实际上创建了一个 StringBuilder 对象,然后调用了该对象的 append 方法

    五、现在你可能随意使用 String 对象,反正编译器会为你自动优化性能,可是在这之前,我们更深入的看看编译器为我们优化到了什么程度

    下面使用两种方式生成一个 String:方法一使用多个 String 对象;方法二在代码中使用了 StringBuilder。

    public class Test1 {
        
        public String withString(){
            String result = "";
            for (int i = 0; i < 3; i++) {
                result += i;
            }
            return result;
        }
            
        public String withStringBuilder(){
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < 3; i++) {
                sb.append(i);
            }
            return sb.toString();
        }    
            
    }

  • 相关阅读:
    改变传统电视对客厅文化的影响
    移动终端三分天下 何与争峰
    全球移动IM应用的迅猛发展前景
    电子医疗的发展和实现
    poj 1523(无向图求割点)
    poj 3255(次短路)
    poj 2125
    poj 3204
    图的连通度问题的求法(转)
    poj 3308
  • 原文地址:https://www.cnblogs.com/fangwu/p/9303724.html
Copyright © 2011-2022 走看看