Java 常用类 -String VS StringBuffer String:对String类型的对象操作,等同于重新生成一个新对象,然后讲引用指向它; StringBuffer:对StringBuffer类型的对象操作,操作的始终是同一个对象; packagecom.java1234.chap05.sec02;publicclassTestString {publicstaticvoidmain(String[] args) { String str="123"; str+=...
StringBuffer和StringBuilder中StringBuffer是线程安全的。但单线程中最好使用StringBuilder。StringBuilder虽不是线程安全的,但性能是比StringBuffer更高的。 2、使用场景 如果字符串值不会改变,推荐使用String,如果需要在多线程环境下安全地修改字符串,使用StringBuffer,如果在单线程环境下需要频繁修改字符串,使用StringBuilder...
4. String vs StringBuffer vs StringBuilder 性能对比 4.1性能测试 publicclassPerformanceTest{publicstaticvoidmain(String[]args){longstartTime,endTime;// String 测试startTime=System.currentTimeMillis();Stringstr="";for(inti=0;i<10000;i++){str+=i;}endTime=System.currentTimeMillis();System.out.pr...
在某些特别情况下, String 对象的字符串拼接其实是被 Java Compiler 编译成了 StringBuffer 对象的拼接,所以这些时候 String 对象的速度并不会比 StringBuffer 对象慢,例如: Strings1=“Thisisonly a”+“simple”+“test”;StringBufferSb=newStringBuilder(“Thisisonly a”).append(“simple”).append(“test”...
publicclassDemo01{publicstaticvoidmain(String[] args){//创建StringBuffer对象StringBuffer sb =newStringBuffer("跟一一哥,");//在字符串后面追加新的字符串 sb.append("学Java!");System.out.println(sb);//删除指定位置上的字符串,从指定的下标开始和结束,下标从0开始 sb.delete(2,4);System....
String是不可变字符序列,StringBuilder和StringBuffer是可变字符序列。 执行速度StringBuilder > StringBuffer > String。 StringBuilder是非线程安全的,StringBuffer是线程安全的。 2、效率测试 import java.util.ArrayList; import java.util.List; import java.util.StringJoiner; ...
java.lang.StringBuilder是一个可变的字符序列,是JDK5.0新增的。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。其构造方法如下:构造方法 描述 StringBuilder() 创建一个容量为16...
AbstractStringBuilder类中的byte[] value只是定义了一个字节数组,数组属于引用类型,默认指向为空(即null),但是当我们通过构造器 "StringBuffer(String str)" 来初始化一个非空的StringBuffer类对象时,很明显在底层有一个”new“的操作(即上图中)。在java面向对象专题我们说过,new出来的对象都在堆内存中。
Test.java 文件代码: publicclassTest{publicstaticvoidmain(String[]args){StringBuffersBuffer=newStringBuffer("菜鸟教程官网:");sBuffer.append("www");sBuffer.append(".runoob");sBuffer.append(".com");System.out.println(sBuffer);}} 以上实例编译运行结果如下: ...
在Java中,我们除了可以通过String类创建和处理字符串之外,还可以使用StringBuffer和StringBuilder类来处理字符串。其中,String类定义的字符串内容不可变,所以String属于不可变字符串。而StringBuffer和StringBuilder定义的字符串内容可变,这两者属于可变字符串,并且StringBuffer和StringBuilder,对字符串的处理效率比String类更高。