对String对象的任何改变都不影响到原对象,相关的任何change操作都会生成新的对象。
写 sql 语句 条件拼接的时候经常这么写:string +="hello"; ===>这是不规范的写法,为啥?
这句 string += "hello";的过程相当于将原有的string变量指向的对象内容取出与"hello"作字符串相加操作再存进另一个新的String对象当中,再让string变量指向新生成的对象。
并且每次循环会new出一个StringBuilder对象,然后进行append操作,最后通过toString方法返回String对象,如果这些对象没有被回收,会造成多大的内存资源浪费。
改进办法:用 StringBuffer 或者 StringBuilder
参考:探秘Java中的String、StringBuilder以及StringBuffer