黑马程序员技术交流社区

标题: String 和 string 有什么区别? [打印本页]

作者: 李双    时间: 2014-11-23 11:52
标题: String 和 string 有什么区别?
String 和 string 有什么区别? StringBuilder 拼接字符串,和 string拼接字符串 有什么不同?
作者: javaAndroid    时间: 2014-11-23 15:36
String和string?
java好像只有大写S的String
C#中有string。
作者: 夏至落叶    时间: 2014-11-23 15:56
貌似只有String类,另外String拼接的字符是保留原来字符串对象的,占内存。StringBuffer的拼接字符是改变原字符串。节省内存

作者: cxdzh    时间: 2014-11-23 19:02
在用String类对象直接拼接时,表面看起来只是一个+号就连接了,但实际上JVM会创建一个临时的StringBuffer类对象,并调用其append()方法完成字符串的拼接,
这是因为String类是不可变的,拼接操作不得不使用StringBuffer类(并且--JVM会将"You are nice."和"I love you so much."创建为两个新的String对象)。之后,再将这个临时StringBuffer对象转型为一个String,代价不菲!可见,在这一个简单的一次拼接过程中,我们让程序创建了四个对象:两个待拼接的String,一个临时StringBuffer,和最后将StringBuffer转型成为的String.

          而如果直接使用StringBuffer类,程序将只产生两个对象:最初的StringBuffer和拼接时的String("I love you so much."),也不再需要创建临时的StringBuffer类对象而后还得将其转换回String对象。

          可以想象,当我们的字符串要被循环拼接若干段时,用String类直接操作会带来多少额外的系统开销,生成多少无用的临时StringBuffer对象,并处理多少次无谓的强制类型转换哪。



好吧,以上是复制粘贴的= =~
qq群:211789156,很多在黑马的,想去黑马的同学一起学习交流的地方,欢迎加入,有400人了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2