新年第一谈之String字符串连接符

    接触Java到现在总的来说时间也不算短,发现身边的一些朋友对String字符串连接符或多或少存在误解(可能我理解的也不对,欢迎指正),随便写写自己的一些观点

    Java对比C++少了运算符重载,字符串连接符"+"底层实现是通过StringBuffer和StringBuilder来实现的。在Java中拼接字符串要么用字符串连接符"+",要么用StringBuffer或StringBuilder,许多人纠结这两种方式的效率问题。

    先说说下面的这种情况:

    String str = "Hello "+"world "+"!";

    这种静态字符串链接,编译的时候编译器会自动将之看作:String str = "Hello world !",比之如下代码效率要高很多。

    StringBuffer strBuffer = new StringBuffer();

    strBuffer.append("Hello ");

    strBuffer.append("world ");

    strBuffer.append("!");

    对于动态字符串StringBuffer的效率比字符串连接符效率要高。

    strBuffer.append(String.valueOf(new Date()));比str=str+String.valueOf(new Date());执行效率和内存消耗都小很多。

    链接静态字符串,建议用字符串连接符,链接动态字符串建议使用StringBuffer或StringBuilder。


你可能感兴趣的:(新年第一谈之String字符串连接符)