Java-----关于字符串的拼接和转换

字符串的拼接方式一般有两种, 一种是使用 "+"运算, 直接拼接, 另一种是使用StringBuilder或StringBuffer的append方法拼接

在开发中, 有的不是很在意性能方面, 会习惯的使用 "+"运算, 但是如果对性能要求比较苛刻, 那么就应该使用StringBuilder, 

因为, 即使使用 "+"运算进行字符串的拼接, 那么最终java还是会创建StringBuilder对象拼接字符串,

请看下面代码:

public class Test {
        
       public static void main(String[] args){
            String str1 = "hello";
            String str2 = "world";
            System.out.println(str1 + str2);
       }
}

 

JDK工具中, 有一个为javap的指令指令

下图的-c为参数, , 能够查看构成字节码的指令, Test是上图代码的字节码.class文件

重点看蓝色部分, 能够很清楚的看到代码中虽然没有使用StringBuilder, 但是实际执行中, 是通过StringBuidler拼接的

除此之外, 还有转化为String类型的方式

一般有三种, 

    1. +"";

    2.String.valueOf();

    3.toString();

第一种通过"+"运算拼接一个空字符串, 上述已经能看到, 会先创建一个StringBuilder对象, 通过append()方法拼接, 然后再调用toString()方法

第二种的String.valueOf(); 查看源码能够看多, 最终还是会调用toString()方法

第三种直接调用toString()方法, 直接调用当然会比间接调用快

 

如有错误, 敬请指正, 不胜感激!

 

posted @ 2018-03-25 15:57  予有荣焉  阅读(363)  评论(0编辑  收藏  举报