String能变化吗?和StringBuffer的区别是什么

【新手可忽略不影响继续学习】看 过上面例子的童鞋一定会觉得很奇怪,s = s + s1.charAt(i); 马克-to-win, s不是老在变化吗?其实s = "";时,虚拟机会创建一个String对象,s = s + s1.charAt(i); 时,会创建一个新对象,而不是之前的s了,会导致新对象的生成,这样做次数少还没有太大的问题,如果次数多的话,很浪费空间。StringBuffer是 在同一个实例上做这些事,不用生成新对象。当做的次数多的话,会节省大量空间。


更多内容请见原文,原文转载自:https://blog.csdn.net/qq_44639795/article/details/103124819

posted @ 2021-01-13 20:07  师徒行者  阅读(59)  评论(0编辑  收藏  举报