首页
学习
活动
专区
圈层
工具
发布

没使用加号拼接字符串,面试官竟然问我为什么

举一个使用样例就能看出差别,下面的代码执行就会发现,使用StringBuilder会比加号的方式快很多(忽略输出中的字符串拼接方式)。...// 加号方式拼接字符串 long startTimeInMillis = Calendar.getInstance().getTimeInMillis(); String result = "start...System.out.println("executeTimeInMillis:" + executeTimeInMillis); 输出结果:executeTimeInMillis:18 ‍ 面试官:JDK不是已经对字符串使用加号的拼接做优化了吗...小小白:使用JDK8编译使用加号方式拼接字符串的代码,然后使用javap -c命令反编译class文件,结果如下: Code: 0: aload_0 1: invokespecial...面试官:那是不是都不能使用加号(+)的方式拼接字符串? 小小白:也不是的。如果是简单的静态字符串拼接(拼接中不需要动态的计算字符串值),可以使用加号的方式,因为编译器在编译阶段会聪明的计算出结果。

1.4K10

【JavaScript】JavaScript 变量 ⑥ ( JavaScript 数据类型 - String 字符串类型 | 字符串长度 | 加号运算符 拼接字符串 | 模板字符串 拼接字符串 )

); 展示效果 : 2、字符串拼接 在 JavaScript 中 , " 字符串拼接 " 指的是将 多个 字符串...组合成一个新的字符串 的 操作 ; 这可以通过使用 加号运算符 + 模板字符串 $ 两种方式 来 实现 " 字符串拼接 " ; 注意 : 拼接后的 字符串 , 是 新的字符串 , 与 原来的字符串 没有任何关系...; 只要有 字符串 与 其它类型数据相加 , 最终的结果就是 字符串 ; 使用 加号运算符 拼接字符串 下面的示例中 , 使用 加号运算符 + 拼接字符串 ; 下面的字符串中是 2 个字符串相加 ,...// 使用 加好运算符 拼接字符串 // 只要有 字符串 与 其它类型数据相加 // 最终的结果就是 字符串 let str1 =...拼接字符串 模板字符串 就是 使用 ${expression} 语法嵌入表达式 拼接字符串 , 这种拼接方式更加直观 ; 在 ${expression} 表达式 中 , 可以 直接 使用 变量 / 表达式

77510
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    昨天还在 for 循环里写加号拼接字符串的那个同事,今天已经不在了

    引言 都说 StringBuilder 在处理字符串拼接上效率要强于 String,但有时候我们的理解可能会存在一定的偏差。...现在将过程分享给大家 测试用例 我们的代码在循环中拼接字符串一般有两种情况 第一种就是每次循环将对象中的几个字段拼接成一个新字段,再赋值给对象 第二种操作是在循环外创建一个字符串对象,每次循环向该字符串拼接新的内容...循环结束后得到拼接好的字符串 对于这两种情况,我创建了两个对照组 第一组: 在每次 For 循环中拼接字符串,即拼即用、用完即毁。...分别使用 String 和 StringBuilder 拼接 /** * 循环内 String 拼接字符串,一次循环后销毁 */ public static void...主要体现在循环内使用字符串拼接,编译器不会创建单个 StringBuilder 以复用 对于多次循环内拼接一个字符串的需求:StringBuilder 很快,因为其避免了 n 次 new 对象、销毁对象的操作

    91530

    昨天,还在 for 循环里写加号拼接字符串的那个同事,今天已经不在了

    引言 都说 StringBuilder 在处理字符串拼接上效率要强于 String,但有时候我们的理解可能会存在一定的偏差。...现在将过程分享给大家 测试用例 我们的代码在循环中拼接字符串一般有两种情况 第一种就是每次循环将对象中的几个字段拼接成一个新字段,再赋值给对象 第二种操作是在循环外创建一个字符串对象,每次循环向该字符串拼接新的内容...循环结束后得到拼接好的字符串 对于这两种情况,我创建了两个对照组 第一组: 在每次 For 循环中拼接字符串,即拼即用、用完即毁。...分别使用 String 和 StringBuilder 拼接 /** * 循环内 String 拼接字符串,一次循环后销毁 */ public static void...主要体现在循环内使用字符串拼接,编译器不会创建单个 StringBuilder 以复用 对于多次循环内拼接一个字符串的需求:StringBuilder 很快,因为其避免了 n 次 new 对象、销毁对象的操作

    67420

    复习知识点 -- JS高效拼接字符串

    image.png JS拼接字符串,一种是用变量 += ,另一种是用 join。这个办法我早就知道,但一直用的不是很熟练,今天就复习一下。...第一是js的字符串连接方式; 第二是把length给缓存起来,不要每次操作都去读length的值。 在JS里,字符串一但赋值之后,就不能修改了。...但事实上,是JS新建一个临时字符串,把它赋值为456,然后返回这个新字符串,还同时销毁了原始的字符串。 你看这好几个步骤,这是有资源开销的,所以这种的效率很低。...axx, bxx; axx = 'abc xx'; arr.push(axx); arr.push(',bxxx'); bxx = arr.join(''); 这就是用 join 把数组中的元素,放到一个字符串里了...但在JS高程里也提了,说是,,,反正大意慢说现在新版本浏览器已经解决了 += 效率低的问题。 就是说 += 和 join的效率是一样的。我是没测试过,就当复习这个知识点吧。

    3.6K100

    js-基础知识-04-字符串拼接

    系统:Windows 7 VsCode:1.51 Node.js:10.15.3 这个系列讲讲javascript的一些基础知识 今天讲讲字符串的凭借 Part 1:场景说明 ?...日常编码中,经常用字符串拼接组合,首先想到的是使用+,但是一旦拼接的部分比较复杂,整个代码也看起来比较费劲,而且易错 今天说说在ES6中的模板字符串``,键盘左上角,ESC下方的特殊符号 Part...a = 'you'; b = 'are'; c = 'so'; d = 'good'; e1 = `字符串拼接效果:${a}-${b}/${c}*${d}`; console.log('e1', e1...); e2 = '字符串拼接效果:' + a + '-'+ b + '/' + c + '*' + d console.log('e2', e2); 代码截图 ?...('e1', e1); e2 = '字符串拼接效果:' + a + '-'+ b + '/' + c + '*' + d + 1 console.log('e2', e2); 代码截图及运行结果

    2.6K40

    golang 高效字符串拼接

    以下内容摘自许世伟《go语言程序设计》: 连接字符串使用" + "或者使用slice拼接,"这2个转换都不是无代价的" 虽然方便,但是使用+=操作符并不是在一个循环中往字符串末尾追加字符串最有效的方式,...一个有效的方式是准备好一个字符串切片([]string),然后使用strings.Join()函数一次性将所有字符串串联起来。...buffer.WriteString(piece) } else { break } } fmt.Println("拼接后的结果为...-->", buffer.String()) } 经测试,连接100万个字符串,使用buffer消耗的时间约为77毫秒,使用+=消耗的时间为.....抱歉,我等了5分钟结果没跑出来,减小数量级后...,连接10万字符串的时间为3312毫秒 另外,golang中的字符串输出是有长度限制的,不知道具体限制有多少,过1000万长度就不显示了,过1000亿liteIDE崩溃了。。。

    98340

    【Groovy】字符串 ( 字符串拼接 | 多行字符串 )

    文章目录 一、字符串类型变量 二、多行字符串 三、完整代码示例 一、字符串类型变量 ---- 在双引号字符串中 , 使用 ${变量名} 进行字符串拼接 , ${变量名} 符号的取值 , 是在 定义时取值...println s5 字符串拼接代码示例 : // 字符串 def s1 = "Hello" // 字符串拼接 // 注意 , 双引号中才能进行字符串拼接...// 修改被拼接的函数值 s1 = "Hello Groovy" // 分别打印 s3 字符串内容和类型 , 修改被拼接的函数值没有影响到最终字符串值...// 字符串拼接 // 注意 , 双引号中才能进行字符串拼接 , 单引号中不行 // ${变量名} 符号的取值 , 是在 定义时取值 ; def s3...// 修改被拼接的函数值 s1 = "Hello Groovy" // 分别打印 s3 字符串内容和类型 , 修改被拼接的函数值没有影响到最终字符串值

    4K20

    MySQL如何分组拼接字符串?

    领导想要查看每个 performance 下都有谁,同时要求将这些人的名称要逗号拼接成一个字符串,也就是说要得到下面的结果: ? 要将结果集中某个指定的列进行字符串拼接,这要怎么做呢?...定义 该函数返回一个字符串结果,该字符串结果是通过分组串联的非NULL值。如果没有非NULL值,则返回NULL。...这里你看到 GROUP_CONCAT 函数拼接字符串默认的分隔符是逗号 ,, 领导不开心,逗号么的感情,要用❕才能体现出关怀的强烈, SEPARATOR 关键字就派上用场了 分组拼接的值之间默认分隔符是逗号...领导的关怀能力也有限,拼接的字符串默认的最大长度是1024个字符,可以通过下面语句查看当前限制是多少: show variables like 'group_concat_max_len'; ?...注意⚠️ GROUP_CONCAT()函数返回单个字符串,而不是值列表。

    6.7K31
    领券