StringBuilder是一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候。 三者都是用来对字符串进行操作,String通常用来定义一个变量,而StringBuilder StringBuffer则通常用来对字符串进行拼接等操作。但其实String...
StringBuilder和StringBuffer都是继承AbstractStringBuilder类,存储字符串都是使用数组进行存储的。 2.区别: a. String 类存储字符串使用的数组被final进行修饰了,当对String对象进行增加修改字符时,都需要重新new一个字符数组,将原来的值拷贝到新的字符数组中,所以当字符串的值需要经常修改的时候就需要考虑用StringBuilder...
可以看到在案例1中,java代码底层走了StringBuilder,进行字符串拼接,然后调用了StringBuilder的toString方法。 而案例2中,对class文件进行反编译,发现代码出现了一点变化,并没有走StringBuilder进行字符串拼接。 三.总结 1、案例1中,通过变量和字符串拼接,java是需要先到内存找变量对应的值,才能进行完成字符串拼接的工作,...
Code:0: aload_01: invokespecial#1 // Method java/lang/Object."<init>":()V4:returnpublicstaticvoidmain(java.lang.String[]); Code:0: ldc#2 // String Hello2: astore_13:new#3 // class java/lang/StringBuilder6: dup7: invokespecial#4 // Method java/lang/StringBuilder."<init>":()V10:...