两者在使用过程中有明显的不同:string类型的变量在内存中始终只占有一个内存地址,当对string类型的变量操作时,系统会在内存中创建一个副本,然后对这个副本进行操作,但是副本的内存地址和原string类型变量的内存地址是不同的,当操作完成后,原来的string类型变量在内存中会被删除掉,最后保留的是变量的副本,也可以说是变量的内存地址转移到副本上去了.所以讲string类型是个特殊的引用类型.stringbuffer是个真正的引用类型,在使用过程中,始终对同一个内存地址操作,一直到被释放掉为止,其占用的内存地址是固定不变的.综上所述不难看出,当我们要改变字符串的内容时,必须使用StringBuffer类型来定义字符串 |