问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java里字符串的连接用加号和用concat()方法有什么不同

发布网友 发布时间:2022-05-14 12:09

我来回答

2个回答

热心网友 时间:2022-04-22 12:42

首先要明白java中字符串的原理:

java中字符串其实是一个char数组,但这个数组是不可变的,所以如果改变字符串内容都会对应的重新创建一个String对象,对应的也就生成了一个新的char数组。

public String concat(String string) {
    if (string.count > 0 && count > 0) {
        char[] buffer = new char[count + string.count];
        System.arraycopy(value, offset, buffer, 0, count);
        System.arraycopy(string.value, string.offset, buffer, count, string.count);
        return new String(0, buffer.length, buffer);
    }
    return count == 0 ? string : this;
}

这是jdk中的concat源码,它保证了重新生成的String对象内部的char数组的长度刚好是字符串长度。

对于使用加号连接,编译完后其实使用的是StringBuilder对象的append方法,它也会在System.arraycopy前进行扩容。

private void enlargeBuffer(int min) {
    int newCount = ((value.length >> 1) + value.length) + 2;
    char[] newData = new char[min > newCount ? min : newCount];
    System.arraycopy(value, 0, newData, 0, count);
    value = newData;
    shared = false;
}

可以看到这个扩容操作后char数组的长度是原长度的3/2倍,这样再调用 append方法如果长度是现有长度的1/2以内,就不用再进行扩容操作,进行提高了append性能,所以使用StringBuilder时设置初始长度是很有必要的。

热心网友 时间:2022-04-22 14:00

concat()方法是在尾部添加字符串然后生成一个新的..
+号的话,感觉更加方便,看需求把.
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
橙子冷藏能保存多久 橙子会过期吗 新鲜橙子如何保存更久 橙子保鲜剂对人体有害吗 粒上皇开口熟栗120g*5袋(共600g)-详细介绍 三皇王板栗介绍 品牌榜:2024年板栗十大品牌排行榜 投票结果公布【新】 为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 JAVA中字符串的连接符? java里连接字符串,哪种方法效率比较高 工作表数字没有汇总现在选定区域打印要汇总怎么计算不影响原来的工作表 路由器怎样设置封掉QQ空间端口 手机QQ2008全日食期间刚进去的那张图片在哪找? 无线路由怎么设置禁用QQ 手机QQ2008无法浏览图片 tp 541路由器怎么屏蔽QQ端口??能否说的详细点,谢谢 如何封QQ端口使其无法登陆。我的路由器里可以封端口。 手机登QQ2008怎么上传图片? start翻译成中文 如何在路由器里封住飞信和QQ的端口? 手机QQ2008不能传图片 看对话回答问题(手机QQ2008保存图片问题) 手机QQ2008正式版不能显示图片 手机QQ2008内置浏览器不能显示图片 手机QQ2008怎么提取和保存发过来的图片呀?急啊!请兄弟们帮我解决? 手机QQ2008空间不显示图片 手机qq2008图片问题 手机QQ2008怎么发图片? 微信朋友圈里的黑:退不退群成问题 绿萝怎样才能养好 产妇月子能喝纯牛奶吗 产后喝牛奶的好处 产后纯牛奶可以喝吗 产妇喝牛奶有哪些好处? 坐完月子可以喝纯牛奶吗 产妇可以喝纯牛奶吗? 坐月子时,能喝牛奶吗? 产妇适合喝什么牛奶 月子喝牛奶的好处 煤炉用的热水壶怎么去除污垢 煤炉烧水壶怎么清洗 天涯明月刀配置高吗 当烧水啲水壶刚刚放到煤炉上烧时,总会看到水壶底部渐渐出现一层水珠…… 烧水的水壶放到煤炉上烧,看到水壶底出现水珠,水珠滴到炉上发出"S"的声音,像壶漏,一会儿,壶边的水珠就消失. 天涯明月刀与王者荣耀哪个配置高? 煤气炉烧水,水壶底部起黑粉是什么原因 伽卡他卡 外网拔了,学生机就掉线了,怎么回事? 在excel 中只保持行或者列得单元地址不变的引用方式是?