Java基础语法 string stringbuffer stringbuilde的异同介绍

  • Post author:
  • Post category:java



Java


基础语法 string stringbuffer stringbuilder三者的差别

Java中String StringBuffer StringBuilder 是编程中经常使用的字符串类接下来从三个方面介绍三者的共同点和差别。


第一:可变与不可变


String


类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不可变的。

StringBuffer、StringBuilder 都是继承于

AbstractStringBuilder


类中


,


在该类中也是使用字符数组保存数据。我们都知道这两种对象都是可变的。


第二:线程安全

String类是Final修饰符修饰的,他的值是不可更改的,所以是

线程安全

的。


AbstractStringBuilder





Stringbuffer





Stringbuilder


的公共父类,定义了一些字符串基本操作。如


expandCapacity





append





insert





indexOf


等公共类。


StringBuffer


对方法加了同步锁或者对调用方法添加了同步锁,所以是


线程安全的




StringBuilder


类没有对方法添加同步锁,所以是


非线程安全


的。


第三:执行效率

执行效率关乎程序好坏,执行效率好的程序运行效率快,那么String、StringBuffer、 StringBuilder那个最快呢。

在这三者中 String执行效率是最慢的,StringBuffer执行效率差别不大,但是StringBuilder最快但是StringBuilder是非线性安全。


比较: StringBuilder > StringBuffer > String


四、总结


1.


如果操作少量数据 —用String


2.单线程操作字符串缓存区下操作数据—用StringBuilder


3.


多线程操作字符串缓存区下操作大量数据—用


StringBuffer



版权声明:本文为weixin_43073241原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。