第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

String,stringBuffer,StringBuilder區(qū)別和詳細例子

標簽:
Java

0,String定义初始化为null,会有什么影响?
1,为什么有了String类型,还需要StringBuffer和StringBuilder?
2,String和StringBuffer和StringBuilder区别?

问题0)为什么有了String类型,还需要StringBuffer和StringBuilder?,
因为String类型是不可变类型,字符串操作(拼接)造成会创建很多中间的对象。

问题1)string初始赋值为null,会有什么影响?

例子1:
public class StringNUll {
public static void main(String[] args) {
String str001 = null;
System.out.println(“str001===:”+str001);
    String str002 = "null";
    str002 = str002 + "321";
    System.out.println("str002===:"+str002);
}
}

str001===:null
str002===:null321
反编译:String拼接会优化为StringBuilder
53: new #3 // class java/lang/StringBuilder
56: dup
57: invokespecial #4 // Method java/lang/StringBuilder.""?)V
60: ldc #11 // String str002===:
62: invokevirtual #6 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
65: aload_2
66: invokevirtual #6 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
69: invokevirtual #7 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;

问题2)Java的字符串,String、StringBufer、StringBuilder有什么区别?
String是Java语言非常基础和重要的类,它是immutable类,它被声明为final class,所有属性也是final的。Immutable类表现出来的性质就是不可以通过它的实例修改属性值。所以字符串的拼接,裁剪等动作,都会产生新的String对象。

StringBuffer是为了解决String拼接产生太多的中间对象而提出的一个类,我们可以用append和add方法,把字符串添加到已有的序列的末尾或指定位置,StringBuffer是一个线程安全的类,它保证了线程安全,随之而来的是额外的开销,所以除非有线程安全的需要,不然推荐使用stringbuilder效率更高。

Stringbuilder的功能和Stringbuffer是一样的,它去掉了synchronize关键字修饰,减小了开销。绝大部分情况下进行字符串操作的首选。
————————————————

原文链接:https://blog.csdn.net/newVenues/article/details/101703262
作者:一起写程序 jkCode

點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消