Java中,String类字符串拼接 用concat方法 和直接用“+”连接符拼接的区别

在String类中,字符串拼接既可以使用concat方法,也可以直接用连接符进行连接,那么两者有什么相同点和不同点呢,下面小编带大家通过代码一起来看一下。

concat方法的使用:public String concat(String str):将当前字符串和参数字符串拼接成为返回值新的字符串。

也就是说,concat可以将参数列表当中的字符串与当前字符串进行拼接,返回值为一个新的字符串。

“+”连接符的用法:它的非常简单,直接使用连接就可以了。

下面通过代码来看一下他们的相同点和区别。

public class Demo10String {
    public static void main(String[] args) {
        //拼接字符串相同点
        String str1="Hello";
        String str2="World";
        String str3=str1.concat(str2);
        String str4=str1+str2;
        System.out.println(str3);   //输出:HelloWorld
        System.out.println(str4);   //输出:HelloWorld
        //不同点
        String str="Hello" + 5;     //输出:Hello5
        System.out.println(str);
}

通过上面代码我们可以看出:

相同点1:concat方法 和直接用“+”连接符拼接都可以对两个字符串进行拼接。

相同点2:两种拼接方法都会重新形成一个新的字符串,这是因为字符串的内容永远不可变,所以拼接一定会形成一个新的字符串。

不同点:concat只能连接两个字符串;但是"+"连接符可以将字符串与非字符串类型拼接到一起(注意:只要两个当中有一个是字符串类型,用"+"连接符就会拼接成一个新的字符串)。

除此之外,当我们生成一个class文件,再进行反编译的时候,通过concat源码可以发现,用连接符进行连接,StringBuilder创建了更多的对象,而concat却没有,它使用的String类的内部实现。

总结:当进行两个字符串连接的时候,我们应该优先考虑用concat()函数。

           当需要连接字符串和其他非字符串类型的变量的时候,cancat无法满足需求,我们就要优先考虑使用“+”连接运算符。