public class StringBuilder_and_StringBuffer {
private static long SystemTime(){
return System.currentTimeMillis();
}
private static void TString(){
long begin=SystemTime();
String text="";
for (int i = 0; i <10000; i++) {
text+=i;
}
long end=SystemTime();
System.out.println(end-begin);
}
private static void StringBuilder(){
long begin=SystemTime();
StringBuilder text=new StringBuilder("");
for (int i = 0; i <50000; i++) {
text.append(i);
}
long end=SystemTime();
System.out.println(end-begin);
}
private static void StringBuffer(){
long begin=SystemTime();
StringBuffer text=new StringBuffer("");
for (int i = 0; i <50000; i++) {
text.append(i);
}
long end=SystemTime();
System.out.println(end-begin);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
TString();//10000次 386秒
StringBuffer();//6毫秒保证线程安全!但是效率低
//-----------------------------------------------------------------
StringBuilder();//3毫秒
} }
String str="ABCDEFGH";//删除字符串中的G,用StringBuffer类中的deleteCharAt()方法
String rest=new StringBuffer(str).deleteCharAt(str.length()-2).toString();
System.out.println(rest);

Java 可变字符串StringBuilder/StringBuffer的区别的更多相关文章

  1. java中string stringbuilder stringbuffer 的区别

    1. String 类 String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间. String a = "a&qu ...

  2. 不可变字符串String与可变字符串StringBuilder、StringBuffer使用详解

    String字符串 char类型只能表示一个字符,而String可以表示字符串,也就是一个字符序列.但String不是基本类型,而是一个定义好的类,是一个引用类型.在Java中,可以将字符串直接量赋给 ...

  3. Java空字符串与null的区别和判断字符串是否为空的方法

    Java空字符串与null的区别: 1.类型null表示的是一个对象的值,而并不是一个字符串.例如声明一个对象的引用,String a = null ;""表示的是一个空字符串,也 ...

  4. String Stringbuilder Stringbuffer的区别

    String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能 ...

  5. java中String StringBuilder StringBuffer比较和效率(性能)测试

    string stringbuilder stringbuffer三者的区别 从JDK源码看,String.StringBuilder.StringBuffer都是存放在char[] 数组字符串. 简 ...

  6. JAVA中String与StringBuffer的区别

    String和StringBuffer的区别,网上资料可以说是数不胜数,但是看到这篇文章,感觉里面做的小例子很有代表性,所以转一下,并自己做了一点总结. 在java中有3个类来负责字符的操作. 1.C ...

  7. Java:字符串缓冲区StringBuffer和StringBuilder的使用

    StringBuffer特点: 1.是字符缓冲区,一个容器(不论缓冲区内容怎么变化,StringBuffer这个容器对象都不会改变) 2.是可变长度的 3.可以直接操作多个数据类型 4.最终会通过to ...

  8. JAVA记录-String/StringBuilder/StringBuffer区别

  9. c# 可变字符串 StringBuilder

    普通的string不可变,除非用+ 但是+两个字符串后 会生成一个新的string实例.会在内存中创建新的字符串对象.如果重复的对字符串修改,将极大的增加内存开销.c#提供了个可变的字符串序列Stri ...

随机推荐

  1. bzoj 4453 cys就是要拿英魂!——后缀数组+单调栈+set

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4453 询问离线,按R排序. 发现直接用 rk[ ] 的错误情况就是前面的某个位置 j 和自己 ...

  2. FIREDAC的心得

    FIREDAC与UNIDAC有些不同 但大体上是相同的 以下是一些随手笔记: FieldCount是当前FDQuery2所在行里面有多少列 一般用FieldList[X]来代表第几列 str:=FDQ ...

  3. 南阳OJ 61 传纸条(一)

    传纸条(一) 时间限制:2000 ms  |  内存限制:65535 KB 难度:5   描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行 ...

  4. java使用sftp下载远程服务器文件

    使用的是springboot的项目,只是贴出主要配置与类,代码较长,可以先折叠: 参考:https://www.cnblogs.com/xyzq/p/7049369.html 操作工具类SftpUti ...

  5. Models-详细操作

    # 单表简单查询13种方法 1.all(): 查询所有结果 all: models.表名.objects.all() book_all=models.Book.objects.all() # 结果是q ...

  6. 用cascade删除有约束的表或记录

    删除有约束的表 Drop table TERMPRO_RULE_ROUTE_TYPE cascade constraints:

  7. List转Datatable 新方法

    方法1,最简单的转换 DataTable dt = new DataTable(); dt.Columns.Add("id"); dt.Columns.Add("name ...

  8. Linux quota命令参数及用法详解---Linux磁盘配额限制设置和查看命令

    功能说明:显示磁盘已使用的空间与限制. 语 法:quota [-quvV][用户名称...] 或 quota [-gqvV][群组名称...] 补充说明:执行quota指令,可查询磁盘空间的限制,并得 ...

  9. Java面向对象-String类

    1,实例化String对象 有两种方式,我们直接看代码: package com.java1234.chap03.sec08; public class Demo1 { public static v ...

  10. TreeView的异步延时加载

    TreeView的延时加载 在使用TreeView控件的时候,如果数据量太大,这个TreeView控件加载会很慢,有时甚至加载失败, 为了更好的使用TreeView控件加载大量的数据,采用异步延迟加载 ...