首页 > 编程知识 正文

string转wstring,stringbuilder初始化

时间:2023-05-06 16:54:43 阅读:47023 作者:2324

JAVA中字符串、字符串缓冲器和Stringbuilder的区别** java中字符串、字符串缓冲器和Stringbuilder的区别和使用方法

字符串类

String的值是不变的,因此每次使用String时都会生成新的String对象,这不仅效率低下,而且浪费了大量有限的内存空间。

字符串a=“a”; //A指向地址0x0001

a=“b”; //重新赋值后,a指向地址0x0002,但保存在0x0001地址中的“a”仍然存在,但不再是a指向的,a已经指向另一个地址。

因此,String操作是更改赋值地址而不是更改值的操作。

StringBuffer是可变类和线程安全字符串操作类,对其指向的字符串执行的操作不会生成新对象。 每个StringBuffer对象都有缓冲区容量,如果字符串大小未超过容量,则不会分配新容量,如果字符串大小超过容量,则会自动增加容量。

string buffer buf=new string buffer (; //分配长度为16字节的字符缓冲区

字符串缓冲器buf=new string buffer (512; 分配//512字节的字符缓冲区

在string buffer buf=new string buffer (“this isa test”)//缓冲区中存储字符串,后面保留了16字节的空闲缓冲区。

3 .字符串缓冲区

StringBuffer类和StringBuilder类的功能基本相似。 主要区别在于,StringBuffer类的方法是多线程且安全的,而StringBuilder不是线程安全的。 相比之下,StringBuilder类会快一点。 对于经常更改值的字符串,请使用StringBuffer类和StringBuilder类。

1 )首先,String、StringBuffer和StringBuilder在JDK中都被定义为final类。 也就是说,不能被继承。

2 ) String最常见,与StringBuffer相比,String的性能较差。 由于更改字符串类型会重新生成新的字符串对象,因此在字符串拼接操作中这一点很明显,因此请勿在内容频繁更改的字符串中使用字符串。 如果不考虑多线程,请使用StringBuilder

3 ) StringBuffer生成一个对象后,在进行字符串拼接操作时,只需要调用append方法,不会生成新对象,而是只操作对象本身,所以性能比String好。 此外,StringBuffer是线程安全的,因此更适合多线程使用,与StringBuilder相比速度更慢。

4 ) StringBuilder的使用方法与StringBuffer类似,但由于它是非线程安全的,所以它通常用于单线程,比StringBuffer更有效率。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。