第13章 字符串

1.不可變的String

tips:對于一個方法而言,參數(shù)是為了該方法提供信息的,而不是想讓該方法改變自己的。


jdk源碼1


jdk源碼2

jdk源碼中,都是返回一個新的對象,而不是原來的對象。傳遞的是引用的一個拷貝,引用指向的對象沒有改變。

2.重載“+”和StringBuilder

重載操作符:Java中不允許程序員重載操作符,c++中允許。Java中,用于String類型的“+”和“+=”是僅有的重載操作符。什么叫做重載操作符?用在特定類上,賦予不同含義的操作符。


Java反編譯

在Java編譯器中(編譯器可以優(yōu)化代碼),使用了StringBuilder來優(yōu)化代碼,所以StringBuilder效率比String高。StringBuffer,Java SE5以前的,線程安全的,開銷大。tips:如果要在toString()中中使用循環(huán),最好自己創(chuàng)建一個StringBuilder對象,不然編譯器會在循環(huán)內(nèi)部重復(fù)創(chuàng)建StringBuilder對象。

3.無意識的遞歸

在toString()方法中調(diào)用return “something”+this;會循環(huán)調(diào)用toString()方法,注意使用super.toString()。

4.String上的操作

當(dāng)需要改變字符串時,返回一個新對象,如果沒有改變時,返回指向原對象的引用。

5.格式化輸出

1.format 2.Formatter類,%s表示插入的是String類型的。轉(zhuǎn)換成boolean類型是,和其他語言有區(qū)別。3.String.format()?

6.正則

Scanner類:在結(jié)束的時候回拋出IOException異常,不需要顯式拋出異常。

StringTokenizer類:在String支持正則、Scanner類之前。目前基本不在用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、Java 簡介 Java是由Sun Microsystems公司于1995年5月推出的Java面向?qū)ο蟪绦蛟O(shè)計...
    子非魚_t_閱讀 4,550評論 1 44
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,651評論 18 399
  • 有人說,世界的一切是父母送孩子的的第一份禮物。蘇暖暖年少無知,傻傻地信了??伤X得很奇怪,父母送給了她這一份...
    橘文冷閱讀 314評論 0 1
  • 20171001早上花了2個小時把這本書看完,有些文字真的讓我發(fā)出 哦,原來是這樣啊。 比如考試前的整理,我記得我...
    信時光閱讀 535評論 0 2
  • 一個人一旦接受了對方的愛, 一旦自己付出了愛, 那這感情注定是無法忘懷的吧。
    小小故事大智慧閱讀 196評論 0 0

友情鏈接更多精彩內(nèi)容