- 浏览: 7948383 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
stringbuilder比直接用 “+”的好处在哪,就不多说了;但如果之前用了+号的话,如果
要改成用stringbuilder的话,则可以用如下的方法实现:
比如有:
String foo = "This" + "is" + "Sparta";
1 鼠标点住要变为stringbuilder的 字符串,这里就是点foo了,然后按“CTRL+1(数字1)”
2 然后在弹出的菜单中选择““StringBuilder” for string concatenation”
3 按回车键确认,则变为:
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("This");
stringBuilder.append("is");
stringBuilder.append("Sparta");
String foo = stringBuilder.toString();
s = "http://" + "localhost" + path 是最高的,但是也有时候用法是
s="aaa";
xxx运算
s += str1;
xxx运算
s +=str2;
这样就效率低了。
。。。原文根本没有讨论这种情况吧(前面一直都说是“单行的字符串连加”),我虽然没装Eclipse,但不相信Eclipse能把这种代码自动转为用StringBuilder实现。而它能自动转化的,偏偏是效率等价,易读性反而更差的场景,为啥要提供这样的功能。这才是我不明白的地方。
一个可能的解释就是可能以前版本的JDK编译器不会把单行加号直接生成一个string,后来优化了,但是eclipse没能跟进。
s = "http://" + "localhost" + path 是最高的,但是也有时候用法是
s="aaa";
xxx运算
s += str1;
xxx运算
s +=str2;
这样就效率低了。
。。。原文根本没有讨论这种情况吧(前面一直都说是“单行的字符串连加”),我虽然没装Eclipse,但不相信Eclipse能把这种代码自动转为用StringBuilder实现。而它能自动转化的,偏偏是效率等价,易读性反而更差的场景,为啥要提供这样的功能。这才是我不明白的地方。
好吧,试了下,确实很傻。对于我说的那种场景不能自动转,倒是转了一把无用的单行加号。
编译结果还是
10 ldc <String "str1S"> [26]
12 astore_2 [str]
s = "http://" + "localhost" + path 是最高的,但是也有时候用法是
s="aaa";
xxx运算
s += str1;
xxx运算
s +=str2;
这样就效率低了。
。。。原文根本没有讨论这种情况吧(前面一直都说是“单行的字符串连加”),我虽然没装Eclipse,但不相信Eclipse能把这种代码自动转为用StringBuilder实现。而它能自动转化的,偏偏是效率等价,易读性反而更差的场景,为啥要提供这样的功能。这才是我不明白的地方。
IDEA和ECLIPSE编辑器为什么这么做不清楚,但最终还是应该看编译结果吧。至少连加在eclipse+jdk1.7下编译出来的效率确实不如SB来的高,不知道IDEA下的结果如何。
不过还是那句话,最终项目的编译还是要以部署服务器决定。
对于大部分主流JDK,单行连加编译出来的byte code跟你自己手写new StringBuilder再append再toString是一样的呀,不存在效率差异。只有在循环体内做字符串拼接,然后在循环结束后才引用结果,才会出现StringBuilder优于字符串加法的场景。
而且,如果你不小心把两个字符串常量拆开来拼接,例如
效率要比
高(一点点),因为字符串常量加法在编译期就直接做了,不用在运行期求值,连加编译出来的结果等价于
s = "http://" + "localhost" + path 是最高的,但是也有时候用法是
s="aaa";
xxx运算
s += str1;
xxx运算
s +=str2;
这样就效率低了。
再补充下,其实有些需求可以用String做模板,然后正则或者replace替换。
从执行效率上看,单行连加或StringBuilder是最高的(但连加的代码更易读)。String.format的易读性有时更好,但效率差一点。String.replace和正则适用于复杂场景,但效率最低。
IDEA和ECLIPSE编辑器为什么这么做不清楚,但最终还是应该看编译结果吧。至少连加在eclipse+jdk1.7下编译出来的效率确实不如SB来的高,不知道IDEA下的结果如何。
不过还是那句话,最终项目的编译还是要以部署服务器决定。
对于大部分主流JDK,单行连加编译出来的byte code跟你自己手写new StringBuilder再append再toString是一样的呀,不存在效率差异。只有在循环体内做字符串拼接,然后在循环结束后才引用结果,才会出现StringBuilder优于字符串加法的场景。
而且,如果你不小心把两个字符串常量拆开来拼接,例如
效率要比
高(一点点),因为字符串常量加法在编译期就直接做了,不用在运行期求值,连加编译出来的结果等价于
只要不在循环里,单行的+链接和StringBuilder是等价的。
即使在循环里,如果你把new StringBuilder放在循环内部,同样是等价的。换句话说,如果你把字符串连加表达式放在循环内部,然后用这个功能转换成StringBuilder,还要把new StringBuilder这一行移到循环外部。而你既然会在循环内部写字符串连加表达式,其结果往往是在每次循环内部直接使用的,这样你每次循环还需要清空StringBuilder。
IDEA提供的编译器辅助是把StringBuilder转成+表达式,Eclipse怎么反着来……
不应该依赖于某个IDE的编译器的结果,看了一楼的回复特地去试了下eclipse+1.7编译器,加好拼接事实上还是会临时创建一个StringBuilder然后把String拼上去再转回String。
是的,所以我说是“等价”的。但是从易读性和代码量来看连加的写法要比先new个StringBuffer再一堆append再toString回去要好。
上面写“IDEA编译器辅助”是手误,其实是“IDEA编辑器辅助”。在IDEA里,如果你new了个StringBuilder然后立马一堆append,再立刻toString。编辑器会提示这里可以改成连加,你在提示的代码上按alt-enter就可以选择一键改为等价的连加。奇怪的是Eclipse提供这个把连加改为StringBuilder有什么实际意义。如果你有循环结构的话,写代码时就会在先new一个StringBuilder再写循环,很少会出现你在循环内部写了连加,然后一键转成StringBuilder,然后再把new语句移到循环之前,把toString移到循环后面的操作。
再补充下,其实有些需求可以用String做模板,然后正则或者replace替换。
只要不在循环里,单行的+链接和StringBuilder是等价的。
即使在循环里,如果你把new StringBuilder放在循环内部,同样是等价的。换句话说,如果你把字符串连加表达式放在循环内部,然后用这个功能转换成StringBuilder,还要把new StringBuilder这一行移到循环外部。而你既然会在循环内部写字符串连加表达式,其结果往往是在每次循环内部直接使用的,这样你每次循环还需要清空StringBuilder。
IDEA提供的编译器辅助是把StringBuilder转成+表达式,Eclipse怎么反着来……
不应该依赖于某个IDE的编译器的结果,看了一楼的回复特地去试了下eclipse+1.7编译器,加好拼接事实上还是会临时创建一个StringBuilder然后把String拼上去再转回String。
是的,所以我说是“等价”的。但是从易读性和代码量来看连加的写法要比先new个StringBuffer再一堆append再toString回去要好。
上面写“IDEA编译器辅助”是手误,其实是“IDEA编辑器辅助”。在IDEA里,如果你new了个StringBuilder然后立马一堆append,再立刻toString。编辑器会提示这里可以改成连加,你在提示的代码上按alt-enter就可以选择一键改为等价的连加。奇怪的是Eclipse提供这个把连加改为StringBuilder有什么实际意义。如果你有循环结构的话,写代码时就会在先new一个StringBuilder再写循环,很少会出现你在循环内部写了连加,然后一键转成StringBuilder,然后再把new语句移到循环之前,把toString移到循环后面的操作。
IDEA和ECLIPSE编辑器为什么这么做不清楚,但最终还是应该看编译结果吧。至少连加在eclipse+jdk1.7下编译出来的效率确实不如SB来的高,不知道IDEA下的结果如何。
不过还是那句话,最终项目的编译还是要以部署服务器决定。
只要不在循环里,单行的+链接和StringBuilder是等价的。
即使在循环里,如果你把new StringBuilder放在循环内部,同样是等价的。换句话说,如果你把字符串连加表达式放在循环内部,然后用这个功能转换成StringBuilder,还要把new StringBuilder这一行移到循环外部。而你既然会在循环内部写字符串连加表达式,其结果往往是在每次循环内部直接使用的,这样你每次循环还需要清空StringBuilder。
IDEA提供的编译器辅助是把StringBuilder转成+表达式,Eclipse怎么反着来……
不应该依赖于某个IDE的编译器的结果,看了一楼的回复特地去试了下eclipse+1.7编译器,加好拼接事实上还是会临时创建一个StringBuilder然后把String拼上去再转回String。
是的,所以我说是“等价”的。但是从易读性和代码量来看连加的写法要比先new个StringBuffer再一堆append再toString回去要好。
上面写“IDEA编译器辅助”是手误,其实是“IDEA编辑器辅助”。在IDEA里,如果你new了个StringBuilder然后立马一堆append,再立刻toString。编辑器会提示这里可以改成连加,你在提示的代码上按alt-enter就可以选择一键改为等价的连加。奇怪的是Eclipse提供这个把连加改为StringBuilder有什么实际意义。如果你有循环结构的话,写代码时就会在先new一个StringBuilder再写循环,很少会出现你在循环内部写了连加,然后一键转成StringBuilder,然后再把new语句移到循环之前,把toString移到循环后面的操作。
只要不在循环里,单行的+链接和StringBuilder是等价的。
即使在循环里,如果你把new StringBuilder放在循环内部,同样是等价的。换句话说,如果你把字符串连加表达式放在循环内部,然后用这个功能转换成StringBuilder,还要把new StringBuilder这一行移到循环外部。而你既然会在循环内部写字符串连加表达式,其结果往往是在每次循环内部直接使用的,这样你每次循环还需要清空StringBuilder。
IDEA提供的编译器辅助是把StringBuilder转成+表达式,Eclipse怎么反着来……
不应该依赖于某个IDE的编译器的结果,看了一楼的回复特地去试了下eclipse+1.7编译器,加好拼接事实上还是会临时创建一个StringBuilder然后把String拼上去再转回String。
只要不在循环里,单行的+链接和StringBuilder是等价的。
即使在循环里,如果你把new StringBuilder放在循环内部,同样是等价的。换句话说,如果你把字符串连加表达式放在循环内部,然后用这个功能转换成StringBuilder,还要把new StringBuilder这一行移到循环外部。而你既然会在循环内部写字符串连加表达式,其结果往往是在每次循环内部直接使用的,这样你每次循环还需要清空StringBuilder。
IDEA提供的编译器辅助是把StringBuilder转成+表达式,Eclipse怎么反着来……
要改成用stringbuilder的话,则可以用如下的方法实现:
比如有:
String foo = "This" + "is" + "Sparta";
1 鼠标点住要变为stringbuilder的 字符串,这里就是点foo了,然后按“CTRL+1(数字1)”
2 然后在弹出的菜单中选择““StringBuilder” for string concatenation”
3 按回车键确认,则变为:
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("This");
stringBuilder.append("is");
stringBuilder.append("Sparta");
String foo = stringBuilder.toString();
评论
15 楼
jackyrong
2014-02-09
不错,大家讨论得很热烈
14 楼
kanme818
2014-01-30
kidneyball 写道
kanme818 写道
s = "http://" + "localhost" + path 是最高的,但是也有时候用法是
s="aaa";
xxx运算
s += str1;
xxx运算
s +=str2;
这样就效率低了。
。。。原文根本没有讨论这种情况吧(前面一直都说是“单行的字符串连加”),我虽然没装Eclipse,但不相信Eclipse能把这种代码自动转为用StringBuilder实现。而它能自动转化的,偏偏是效率等价,易读性反而更差的场景,为啥要提供这样的功能。这才是我不明白的地方。
一个可能的解释就是可能以前版本的JDK编译器不会把单行加号直接生成一个string,后来优化了,但是eclipse没能跟进。
13 楼
kanme818
2014-01-30
kidneyball 写道
kanme818 写道
s = "http://" + "localhost" + path 是最高的,但是也有时候用法是
s="aaa";
xxx运算
s += str1;
xxx运算
s +=str2;
这样就效率低了。
。。。原文根本没有讨论这种情况吧(前面一直都说是“单行的字符串连加”),我虽然没装Eclipse,但不相信Eclipse能把这种代码自动转为用StringBuilder实现。而它能自动转化的,偏偏是效率等价,易读性反而更差的场景,为啥要提供这样的功能。这才是我不明白的地方。
好吧,试了下,确实很傻。对于我说的那种场景不能自动转,倒是转了一把无用的单行加号。
编译结果还是
10 ldc <String "str1S"> [26]
12 astore_2 [str]
12 楼
kidneyball
2014-01-30
kanme818 写道
s = "http://" + "localhost" + path 是最高的,但是也有时候用法是
s="aaa";
xxx运算
s += str1;
xxx运算
s +=str2;
这样就效率低了。
。。。原文根本没有讨论这种情况吧(前面一直都说是“单行的字符串连加”),我虽然没装Eclipse,但不相信Eclipse能把这种代码自动转为用StringBuilder实现。而它能自动转化的,偏偏是效率等价,易读性反而更差的场景,为啥要提供这样的功能。这才是我不明白的地方。
11 楼
kanme818
2014-01-30
kidneyball 写道
kanme818 写道
IDEA和ECLIPSE编辑器为什么这么做不清楚,但最终还是应该看编译结果吧。至少连加在eclipse+jdk1.7下编译出来的效率确实不如SB来的高,不知道IDEA下的结果如何。
不过还是那句话,最终项目的编译还是要以部署服务器决定。
对于大部分主流JDK,单行连加编译出来的byte code跟你自己手写new StringBuilder再append再toString是一样的呀,不存在效率差异。只有在循环体内做字符串拼接,然后在循环结束后才引用结果,才会出现StringBuilder优于字符串加法的场景。
而且,如果你不小心把两个字符串常量拆开来拼接,例如
s = "http://" + "localhost" + path
效率要比
s = new StringBuilder() .append("http://") .append("localhost") .append(path).toString()
高(一点点),因为字符串常量加法在编译期就直接做了,不用在运行期求值,连加编译出来的结果等价于
s = new StringBuilder() .append("http://localhost") .append(path).toString()
s = "http://" + "localhost" + path 是最高的,但是也有时候用法是
s="aaa";
xxx运算
s += str1;
xxx运算
s +=str2;
这样就效率低了。
10 楼
kidneyball
2014-01-30
kanme818 写道
再补充下,其实有些需求可以用String做模板,然后正则或者replace替换。
从执行效率上看,单行连加或StringBuilder是最高的(但连加的代码更易读)。String.format的易读性有时更好,但效率差一点。String.replace和正则适用于复杂场景,但效率最低。
9 楼
kidneyball
2014-01-30
kanme818 写道
IDEA和ECLIPSE编辑器为什么这么做不清楚,但最终还是应该看编译结果吧。至少连加在eclipse+jdk1.7下编译出来的效率确实不如SB来的高,不知道IDEA下的结果如何。
不过还是那句话,最终项目的编译还是要以部署服务器决定。
对于大部分主流JDK,单行连加编译出来的byte code跟你自己手写new StringBuilder再append再toString是一样的呀,不存在效率差异。只有在循环体内做字符串拼接,然后在循环结束后才引用结果,才会出现StringBuilder优于字符串加法的场景。
而且,如果你不小心把两个字符串常量拆开来拼接,例如
s = "http://" + "localhost" + path
效率要比
s = new StringBuilder() .append("http://") .append("localhost") .append(path).toString()
高(一点点),因为字符串常量加法在编译期就直接做了,不用在运行期求值,连加编译出来的结果等价于
s = new StringBuilder() .append("http://localhost") .append(path).toString()
8 楼
kanme818
2014-01-30
kidneyball 写道
kanme818 写道
kidneyball 写道
yuechen323 写道
看看这篇文章你就知道了,别听1L
http://www.blogjava.net/nokiaguy/archive/2008/05/07/198990.html
http://www.blogjava.net/nokiaguy/archive/2008/05/07/198990.html
只要不在循环里,单行的+链接和StringBuilder是等价的。
即使在循环里,如果你把new StringBuilder放在循环内部,同样是等价的。换句话说,如果你把字符串连加表达式放在循环内部,然后用这个功能转换成StringBuilder,还要把new StringBuilder这一行移到循环外部。而你既然会在循环内部写字符串连加表达式,其结果往往是在每次循环内部直接使用的,这样你每次循环还需要清空StringBuilder。
IDEA提供的编译器辅助是把StringBuilder转成+表达式,Eclipse怎么反着来……
不应该依赖于某个IDE的编译器的结果,看了一楼的回复特地去试了下eclipse+1.7编译器,加好拼接事实上还是会临时创建一个StringBuilder然后把String拼上去再转回String。
是的,所以我说是“等价”的。但是从易读性和代码量来看连加的写法要比先new个StringBuffer再一堆append再toString回去要好。
上面写“IDEA编译器辅助”是手误,其实是“IDEA编辑器辅助”。在IDEA里,如果你new了个StringBuilder然后立马一堆append,再立刻toString。编辑器会提示这里可以改成连加,你在提示的代码上按alt-enter就可以选择一键改为等价的连加。奇怪的是Eclipse提供这个把连加改为StringBuilder有什么实际意义。如果你有循环结构的话,写代码时就会在先new一个StringBuilder再写循环,很少会出现你在循环内部写了连加,然后一键转成StringBuilder,然后再把new语句移到循环之前,把toString移到循环后面的操作。
再补充下,其实有些需求可以用String做模板,然后正则或者replace替换。
7 楼
kanme818
2014-01-30
kidneyball 写道
kanme818 写道
kidneyball 写道
yuechen323 写道
看看这篇文章你就知道了,别听1L
http://www.blogjava.net/nokiaguy/archive/2008/05/07/198990.html
http://www.blogjava.net/nokiaguy/archive/2008/05/07/198990.html
只要不在循环里,单行的+链接和StringBuilder是等价的。
即使在循环里,如果你把new StringBuilder放在循环内部,同样是等价的。换句话说,如果你把字符串连加表达式放在循环内部,然后用这个功能转换成StringBuilder,还要把new StringBuilder这一行移到循环外部。而你既然会在循环内部写字符串连加表达式,其结果往往是在每次循环内部直接使用的,这样你每次循环还需要清空StringBuilder。
IDEA提供的编译器辅助是把StringBuilder转成+表达式,Eclipse怎么反着来……
不应该依赖于某个IDE的编译器的结果,看了一楼的回复特地去试了下eclipse+1.7编译器,加好拼接事实上还是会临时创建一个StringBuilder然后把String拼上去再转回String。
是的,所以我说是“等价”的。但是从易读性和代码量来看连加的写法要比先new个StringBuffer再一堆append再toString回去要好。
上面写“IDEA编译器辅助”是手误,其实是“IDEA编辑器辅助”。在IDEA里,如果你new了个StringBuilder然后立马一堆append,再立刻toString。编辑器会提示这里可以改成连加,你在提示的代码上按alt-enter就可以选择一键改为等价的连加。奇怪的是Eclipse提供这个把连加改为StringBuilder有什么实际意义。如果你有循环结构的话,写代码时就会在先new一个StringBuilder再写循环,很少会出现你在循环内部写了连加,然后一键转成StringBuilder,然后再把new语句移到循环之前,把toString移到循环后面的操作。
IDEA和ECLIPSE编辑器为什么这么做不清楚,但最终还是应该看编译结果吧。至少连加在eclipse+jdk1.7下编译出来的效率确实不如SB来的高,不知道IDEA下的结果如何。
不过还是那句话,最终项目的编译还是要以部署服务器决定。
6 楼
kidneyball
2014-01-30
kanme818 写道
kidneyball 写道
yuechen323 写道
看看这篇文章你就知道了,别听1L
http://www.blogjava.net/nokiaguy/archive/2008/05/07/198990.html
http://www.blogjava.net/nokiaguy/archive/2008/05/07/198990.html
只要不在循环里,单行的+链接和StringBuilder是等价的。
即使在循环里,如果你把new StringBuilder放在循环内部,同样是等价的。换句话说,如果你把字符串连加表达式放在循环内部,然后用这个功能转换成StringBuilder,还要把new StringBuilder这一行移到循环外部。而你既然会在循环内部写字符串连加表达式,其结果往往是在每次循环内部直接使用的,这样你每次循环还需要清空StringBuilder。
IDEA提供的编译器辅助是把StringBuilder转成+表达式,Eclipse怎么反着来……
不应该依赖于某个IDE的编译器的结果,看了一楼的回复特地去试了下eclipse+1.7编译器,加好拼接事实上还是会临时创建一个StringBuilder然后把String拼上去再转回String。
是的,所以我说是“等价”的。但是从易读性和代码量来看连加的写法要比先new个StringBuffer再一堆append再toString回去要好。
上面写“IDEA编译器辅助”是手误,其实是“IDEA编辑器辅助”。在IDEA里,如果你new了个StringBuilder然后立马一堆append,再立刻toString。编辑器会提示这里可以改成连加,你在提示的代码上按alt-enter就可以选择一键改为等价的连加。奇怪的是Eclipse提供这个把连加改为StringBuilder有什么实际意义。如果你有循环结构的话,写代码时就会在先new一个StringBuilder再写循环,很少会出现你在循环内部写了连加,然后一键转成StringBuilder,然后再把new语句移到循环之前,把toString移到循环后面的操作。
5 楼
kanme818
2014-01-30
kidneyball 写道
yuechen323 写道
看看这篇文章你就知道了,别听1L
http://www.blogjava.net/nokiaguy/archive/2008/05/07/198990.html
http://www.blogjava.net/nokiaguy/archive/2008/05/07/198990.html
只要不在循环里,单行的+链接和StringBuilder是等价的。
即使在循环里,如果你把new StringBuilder放在循环内部,同样是等价的。换句话说,如果你把字符串连加表达式放在循环内部,然后用这个功能转换成StringBuilder,还要把new StringBuilder这一行移到循环外部。而你既然会在循环内部写字符串连加表达式,其结果往往是在每次循环内部直接使用的,这样你每次循环还需要清空StringBuilder。
IDEA提供的编译器辅助是把StringBuilder转成+表达式,Eclipse怎么反着来……
不应该依赖于某个IDE的编译器的结果,看了一楼的回复特地去试了下eclipse+1.7编译器,加好拼接事实上还是会临时创建一个StringBuilder然后把String拼上去再转回String。
4 楼
kidneyball
2014-01-30
yuechen323 写道
看看这篇文章你就知道了,别听1L
http://www.blogjava.net/nokiaguy/archive/2008/05/07/198990.html
http://www.blogjava.net/nokiaguy/archive/2008/05/07/198990.html
只要不在循环里,单行的+链接和StringBuilder是等价的。
即使在循环里,如果你把new StringBuilder放在循环内部,同样是等价的。换句话说,如果你把字符串连加表达式放在循环内部,然后用这个功能转换成StringBuilder,还要把new StringBuilder这一行移到循环外部。而你既然会在循环内部写字符串连加表达式,其结果往往是在每次循环内部直接使用的,这样你每次循环还需要清空StringBuilder。
IDEA提供的编译器辅助是把StringBuilder转成+表达式,Eclipse怎么反着来……
3 楼
yuechen323
2014-01-29
看看这篇文章你就知道了,别听1L
http://www.blogjava.net/nokiaguy/archive/2008/05/07/198990.html
http://www.blogjava.net/nokiaguy/archive/2008/05/07/198990.html
2 楼
einstein618
2014-01-29
得根据具体情况吧
1 楼
joe9i0
2014-01-29
编译器优化已经帮你做了转换了。 可以反编译看看代码。
完全可以在代码中使用 + 来进行字符串连接, 这样代码的可阅读性更好。
完全可以在代码中使用 + 来进行字符串连接, 这样代码的可阅读性更好。
发表评论
-
复习:强迫线程顺序执行方式
2019-01-03 23:42 1586方法1: 三个线程,t1,t2,t3,如果一定要按顺序执行, ... -
(转)不错的前后端处理异常的方法
2019-01-02 23:16 2021前言 在 Web 开发中, 我们经常会需要处理各种异常, 这是 ... -
info q的极客时间大咖说等资料下载
2018-08-15 08:40 3474info q的极客时间大咖说等资料下载,还有不少思维导图 链 ... -
CXF 客户端超时时间设置(非Spring配置方式)
2018-07-03 22:38 2238import org.apache.cxf.endpoint. ... -
(转)synchronized关键字画像:正确打开方式
2018-06-14 09:25 492https://mp.weixin.qq.com/s/b3Sx ... -
CountDownLatch的例子
2018-06-13 14:10 694public class StatsDemo { ... -
两道面试题,带你解析Java类加载机制
2018-06-12 16:29 617https://mp.weixin.qq.com/s/YTa0 ... -
Spring中获取request的几种方法,及其线程安全性分析
2018-06-11 09:03 672https://mp.weixin.qq.com/s/KeFJ ... -
内部类小结
2018-06-06 10:25 439https://mp.weixin.qq.com/s/hErv ... -
JVM虚拟机小结1
2018-06-04 20:43 5451 jps -l //列出详细的类名和进程ID 2)jps ... -
windows下自带命令行工具查看CPU资源情况等
2018-06-04 12:53 3107微软提供了不少命令行 ... -
(收藏)深入分析Java的序列化与反序列化
2018-05-30 15:21 620https://mp.weixin.qq.com/s/T2Bn ... -
apache common包中的序列化工具
2018-05-30 09:10 1846什么是序列化 我们的 ... -
JAVA8 JVM的变化: 元空间(Metaspace)
2018-05-24 22:30 969本文将会分享至今为至我收集的关于永久代(Permanent G ... -
(转)服务器性能指标(一)——负载(Load)分析及问题排查
2018-05-21 21:03 1364原创: Hollis Hollis 负载 ... -
(转)对象复用
2018-05-20 15:27 866public class Student { priv ... -
mapreduce中入门中要注意的几点
2018-05-06 08:59 675在 mapreduce中,比如有如下的词: I love b ... -
HDFS的基本操作
2018-05-02 21:47 942-mkdir 在HDFS创建目录 ... -
一个不错的开源工具类,专门用来解析日志头部的,好用
2018-05-02 20:00 774一个不错的开源工具类,专门用来解析日志头部的,好用。 http ... -
介绍个不错的RESTFUL MOCK的工具wiremock
2018-04-27 21:02 1909介绍个不错的RESTFUL MOCK的工具wiremock,地 ...
相关推荐
2. 设置容量和长度:可以使用重载的构造函数之一来指定 StringBuilder 类的容量,例如 StringBuilder MyStringBuilder = new StringBuilder("Hello World!", 25);。也可以使用读/写 Capacity 属性来设置对象的最大...
当需要频繁修改字符串时(如在循环中拼接字符串),使用StringBuilder相比于使用String的concat方法或者加号操作符,可以减少创建新的String对象,从而降低内存消耗,提高程序运行效率。 知识点概述: 1. ...
某些人可能会发现更易于使用更高级别的StringBuilders.jl API。 为了进行比较,上面使用IOBuffer的示例为 io = IOBuffer () write (io, " First string " ) write (io, " Second String " ) s = String ( take! (io...
StringBuilder类在C#中用于字符串操作,特别是在需要频繁进行字符串拼接的情况下,它比使用"+"或String.Concat()方法更高效。 在C#中,当使用"+"或String.Concat()来拼接大量字符串时,每次操作都会创建新的字符串...
C#中StringBuilder类的使用方法 C#中的StringBuilder类是 System.Text 命名空间下的一个类,用于高效地处理和操作字符串。StringBuilder类的出现是为了解决String类的不可变性问题,每次使用String类中的方法时,都...
StringBuilder 类在 Java 中被广泛用于字符串的构建和操作,尤其在需要频繁进行字符串拼接时,StringBuilder 提供了显著的性能优势。相比 String 类,它不是不可变的,这意味着我们可以在一个 StringBuilder 实例上...
2. **性能优化**:使用`StringBuilder`比使用字符串连接更高效,因为字符串在.NET中是不可变的,每次连接都会创建一个新的字符串对象。而`StringBuilder`则是在内存中的一个可变缓冲区,减少了垃圾回收的压力。 3. ...
本篇文章将深入解析`StringBuilder`的使用方法、内部机制以及与`StringBuffer`的区别。 `StringBuilder`是Java中的一个类,它位于`java.lang`包下,主要负责动态构建和修改字符串。与`String`不同,`String`对象是...
在Java编程语言中,`String`、`StringBuffer`和`StringBuilder`是处理字符串的三个重要类,它们各自有特定的使用场景和优缺点。理解它们的差异对于编写高效的代码至关重要。 **String类** `String`是不可变的类,...
因此,在单线程环境下使用`StringBuilder`通常比使用`StringBuffer`更快,因为后者为多线程环境添加了额外的开销。 #### 二、主要特点 1. **可变性**:`StringBuilder`对象允许在其上执行各种修改操作,如添加、...
总结起来,"winform 使用StringBuilder源码"是一个探讨如何在Windows Forms应用中利用StringBuilder进行字符串操作的资源,通过学习和实践这些示例,开发者可以更好地理解和运用StringBuilder,提升WinForm应用的...
- **StringBuilder**:与之不同的是,`StringBuilder` 类是可变的(mutable)。这意味着可以对 `StringBuilder` 对象进行多次修改(如添加、删除或替换字符),而不会创建新的对象。这使得 `StringBuilder` 在需要...
- 压缩包中的`FY辅助工具`可能是一个实用的小工具,它可能是用来帮助程序员快速转换SQL语句到`StringBuilder`格式的。这种工具可以自动化处理字符串拼接,减少手动操作,提高开发效率。 - 使用此类工具时,我们...
1. `append()`:这是StringBuilder的核心方法之一,用于将指定的内容追加到现有的字符串生成器末尾。它有多个重载版本,可以接受各种类型的参数,如字符串、整型、浮点型、布尔值甚至其他对象。例如,`sb.append(...
"String StringBuffer和StringBuilder区别之源码解析" 在Java中,字符串是我们经常使用的数据类型,而String、StringBuffer和StringBuilder是Java中三种常用的字符串类。在这篇文章中,我们将从源码角度对String、...
可以使用重载的构造函数之一来指定 StringBuilder 类的容量。以下代码示例指定可以将 MyStringBuilder 对象扩充到最大 25 个空白。 MyStringBuilder.Capacity = 25; EnsureCapacity 方法可用来检查当前 ...
先在navicat之类的工具格式化sql!!!!! sql语句写完之后转为美观的java,在sql语句很长了之后有点麻烦。 其实代码逻辑简单,但是有一点就是有时候没时间来写,所以附上源代码和可执行的jar文件
然后创建2个子类(从基础继承):ES6样式的IntBuilder和ES5样式的StringBuilder。几乎所有方法都应可链接以方便使用。您可以向类添加任何自己的方法和属性!下面介绍的方法必须在您的解决方案中 ES6类IntBuilder: ...