StringBuilder类(stringbuilder类中的方法)

  本篇文章为你整理了StringBuilder类(stringbuilder类中的方法)的详细内容,包含有stringbuilder类代表java中什么的字符序列 stringbuilder类中的方法 stringbuilder类的作用 stringbuilder类常用的方法 StringBuilder类,希望能帮助你了解 StringBuilder类。

  一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步(StringBuilder 不是线程安全的)。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer要快。

  在 StringBuilder 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。

  

//StringBuilder类细节:

 

  public class StringBuilder01 {

   public static void main(String[] args) {

   //1. StringBuilder 继承 AbstractStringBuilder 类

   //2. 实现了 Serializable 接口,说明StringBuilder对象是可以串行化(对象可以网络传输,可以保存文件)

   //3. StringBuilder 是 final类,不能被继承

   //4. StringBuilder 对象字符序列仍然是存放在其父类 AbstractStringBuilder 的 char[] value;

   //5. StringBuilder 的方法,没有做互斥的处理,即没有synchronized 关键字,因此在单线程的情况下使用StringBuilder

   StringBuilder stringBuilder = new StringBuilder();

  

 

  二、StringBuilder常用方法

  StringBuilder 和 StringBuffer 均代表可变的字符序列,方法是一样的,所以使用和StringBuffer一样。

  三、StringBuilder应用

  
String s = "a";:创建了一个字符串

  s += "b";:实际上原来的 "a" 字符串对象已经丢弃了,现在又产生了一个字符串 s + "b" (也就是"ab")。如果多次执行这些改变内容的操作,会导致大量副本字符串对象留在内存中,降低效率。如果这样的操作放在循环中,会极大影响程序的性能。结论:如果我们对 String 做大量的修改,不要使用String。

  
String、StringBuffer和StringBuilder的效率测试

  效率:StringBuilder StringBuffer String

  

public class StringVsStringBufferVsStringBuilder {

 

   public static void main(String[] args) {

   long startTime = 0L;

   long endTime = 0L;

   StringBuffer buffer = new StringBuffer("");

   startTime = System.currentTimeMillis();

   for (int i = 0; i 80000; i++) {//StringBuffer

   buffer.append(String.valueOf(i));

   endTime = System.currentTimeMillis();

   System.out.println("StringBuffer的执行时间:" + (endTime - startTime));

  
StringBuilder builder = new StringBuilder("");

   startTime = System.currentTimeMillis();

   for (int i = 0; i 80000; i++) {//StringBuilder

   builder.append(String.valueOf(i));

   endTime = System.currentTimeMillis();

   System.out.println("StringBuiler的执行时间:" + (endTime - startTime));

   String text = "";

   startTime = System.currentTimeMillis();

   for (int i = 0; i 80000; i++) {//StringBuilder

   text = text + i;

   endTime = System.currentTimeMillis();

   System.out.println("String的执行时间:" + (endTime - startTime));

  //运行结果:

  //StringBuffer的执行时间:12

  //StringBuiler的执行时间:5

  //String的执行时间:3695

  

 

  
如果字符串存在大量的修改操作,一般使用 StringBuffer 或 StringBuilder

  如果字符串存在大量的修改操作,并且在单线程的情况,使用StringBuileder

  如果字符串存在大量的修改操作,并且在多线程的情况,使用StringBuffer

  如果我们字符串很少修改,被多个对象引用,使用String,比如配置信息等

  以上就是StringBuilder类(stringbuilder类中的方法)的详细内容,想要了解更多 StringBuilder类的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: