StringBuilder类和StringBuffer类非常类似,也是用于处理可变的字符串。与StringBuffer类不同的是,StringBuilder类的实现不是线程安全的,因此在单线程环境下,StringBuilder类的性能比StringBuffer类更高。下面的代码演示了如何使用StringBuilder类对字符串进行修改:StringBuilder sb = new StringBuilder("hello");sb.append(...
*/String str1="java";String str2="java";String str3=newString("java");String str4=newString("java");System.out.println(str1==str2);//true 同指向字符串常量池中所以值和地址都相同System.out.println(str1.equals(str2));//trueSystem.out.println(str1==str3);//false 地址不同 str3有...
String str1 ="hello world"; String str2 =newString("hello world"); String str3 ="hello world"; String str4 =newString("hello world"); System.out.println(str1==str2); System.out.println(str1==str3); System.out.println(str2==str4); } } 这段代码的输出结果为 为什么会出现这样的...
String str1="Hello";String str2=str1+" World";// 创建了一个新的String对象 这种设计使得String对象可以在多线程环境中安全地使用,而无需额外的同步。此外,由于String对象是不可变的,它们可以被安全地用作HashMap的键。 然而,这种不可变性也有一个缺点。由于每次操作都会创建一个新的String对象,所以如果在循...
publicclassMain{publicstaticvoidmain(String args[]){StringBuilderstr=newStringBuilder();for(inti=0;i<10000;i++){ str.append("hello"); } } } 反编译字节码文件得到: 从字节码可以明显看出,循环代码从13行开始到27行结束,并且new操作只执行了一次,也就是说只生成了一个对象,append操作是在原有的对象...
而 StringBuilder 和 StringBuffer 的对象是变量,对变量进行操作就是直接对该对象进行更改,而不进行创建和回收的操作,所以速度要比 String 快很多比如我们这样对字符串进行赋值String str = "甜心教主" + "王心凌";StringBuilder stringBuilder = new StringBuilder().append("甜心教主").append("王心凌");System....
publicstaticvoidmain(String[]args)throwsException{//获取当前时间的毫秒值longl=System.currentTimeMillis();StringBuilderstr=newStringBuilder();//使用StringBuilder,append 一千万次for(inti=0;i<10000000;i++){str.append(i);}System.out.println(System.currentTimeMillis()-l);} ...
importjava.io.PrintStream;publicclassStringTest13{publicStringTest13(){}publicstaticvoidmain(String args[]){String s ="HelloWorld";System.out.println((newStringBuilder()).append("str=").append(s).toString());}} 从反编译出来的JAD文件中我们可以看出,Java在编译的时候会把 “+”号操作符替换成...
; log.info("内存地址:{}" , ObjectCommon.toString(str) ); System.out.println("---"); 结果(三次添加数据,内存地址都是不一样的) 创建StringBuilder对象 要创建一个StringBuilder对象,我们可以使用以下方式: StringBuilder sb1 = new StringBuilder(); // 创建一个空的StringBuilder对象 StringBuilder sb2 =...
publicclassRunoobTest{publicstaticvoidmain(String[]args){StringBuildersb=newStringBuilder(10);sb.append("Runoob..");System.out.println(sb);sb.append("!");System.out.println(sb);sb.insert(8,"Java");System.out.println(sb);sb.delete(5,8);System.out.println(sb);}} ...