昨天考试出了这道么一道选择题:其中两个选项,一个是stringbuffer比String更高效的追加字符串,一个是stringbuffer比String更高效的存储字符串,
我想问一下正确答案应该是哪个,为什么?谢谢
用String存储字符串的话,如果你要追加加字符串,它会在你的内存中重新开辟一块空间来存储,那用StringBuffer的话,它就会在原来的基础上继续追加字符串,不会开辟新的内存空间,所以stringbuffer比String更高效的追加字符串是对的
String是一个字符串常量,对之修改的时候都是新建一个对象并指向它。而StringBuffer对之修改的时候是修改该对象。所以stringbuffer比String更高效的追加字符串.
存储字符串的话相差无几
事实上简单的String += ,jvm会给你做优化变成stringbuffer