Lopoincare's Blog

那逝去的一切,将消失在时间之中,却会留在记忆的某个角落…… 记下属于我们的那一小片记忆……

« linux命令大全,学linux的进来看看了!心态24条、处事22计、伤心50句、礼仪73、学会长大20 »

String和StringBuffer的区别

String和StringBuffer的对象都表示一个字符串,他们之间最重要的区别是String对象一旦被创建之后,其内容是不可以改变的.而StringBuffer对象的值则可以任意的修改.因为String类采用了"不变模式",无论是使用字符串连接符还是使用substring等函数对String对象的修改,其实都会返回一个新的String对象.这样做的好处主要在于字符串对象一旦创建,其状态就不再发生改变,所以是线程安全的,可以在线程之间共享,而不需要同步.但是由于每次修改都要产生新对象,所以在进行连接操作时,就会创建临时对象来保存结果,从而降低了性能.而StringBuffer则不存在这样的问题,因为它是一个mutable class,对象的值可以任意修改.所以在进行字符串的连接操作时应该先使用该类的append方法进行连接,再用toString方法将其转换成String对象.这样做不需要生成临时对象,所以效率比较高.这两者另一个区别就是String对象可以直接用字面量赋值,而不需要调用构造函数.如果把同一个字面量赋值给多个String类型的引用,那么这些引用实际上是指向对内存当中的同一地址.

发表评论:

Powered By Z-Blog 1.8 Arwen Build 90619
Copyright © Lopoincare's 博客