欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
String,StringBuffer與StringBuilder的區別?
String 字符串常量
StringBuffer 字符串變量(線(xiàn)程安全)
StringBuilder 字符串變量(非線(xiàn)程安全)

 簡(jiǎn)要的說(shuō), String 類(lèi)型和 StringBuffer 類(lèi)型的主要性能區別其實(shí)在于 String 是不可變的對象, 因此在每次對 String 類(lèi)型進(jìn)行改變的時(shí)候其實(shí)都等同于生成了一個(gè)新的 String 對象,然后將指針指向新的 String 對象,所以經(jīng)常改變內容的字符串最好不要用 String ,因為每次生成對象都會(huì )對系統性能產(chǎn)生影響,特別當內存中無(wú)引用對象多了以后, JVM 的 GC 就會(huì )開(kāi)始工作,那速度是一定會(huì )相當慢的。
 而如果是使用 StringBuffer 類(lèi)則結果就不一樣了,每次結果都會(huì )對 StringBuffer 對象本身進(jìn)行操作,而不是生成新的對象,再改變對象引用。所以在一般情況下我們推薦使用 StringBuffer ,特別是字符串對象經(jīng)常改變的情況下。而在某些特別情況下, String 對象的字符串拼接其實(shí)是被 JVM 解釋成了 StringBuffer 對象的拼接,所以這些時(shí)候 String 對象的速度并不會(huì )比 StringBuffer 對象慢,而特別是以下的字符串對象生成中, String 效率是遠要比 StringBuffer 快的:
 String S1 = “This is only a” + “ simple” + “ test”;
 StringBuffer Sb = new StringBuilder(“This is only a”).append(“ simple”).append(“ test”);
 你會(huì )很驚訝的發(fā)現,生成 String S1 對象的速度簡(jiǎn)直太快了,而這個(gè)時(shí)候 StringBuffer 居然速度上根本一點(diǎn)都不占優(yōu)勢。其實(shí)這是 JVM 的一個(gè)把戲,在 JVM 眼里,這個(gè)
 String S1 = “This is only a” + “ simple” + “test”; 其實(shí)就是:
 String S1 = “This is only a simple test”; 所以當然不需要太多的時(shí)間了。但大家這里要注意的是,如果你的字符串是來(lái)自另外的 String 對象的話(huà),速度就沒(méi)那么快了,譬如:
String S2 = “This is only a”;
String S3 = “ simple”;
String S4 = “ test”;
String S1 = S2 +S3 + S4;
這時(shí)候 JVM 會(huì )規規矩矩的按照原來(lái)的方式去做

在大部分情況下 StringBuffer > String
StringBuffer
Java.lang.StringBuffer線(xiàn)程安全的可變字符序列。一個(gè)類(lèi)似于 String 的字符串緩沖區,但不能修改。雖然在任意時(shí)間點(diǎn)上它都包含某種特定的字符序列,但通過(guò)某些方法調用可以改變該序列的長(cháng)度和內容。
可將字符串緩沖區安全地用于多個(gè)線(xiàn)程??梢栽诒匾獣r(shí)對這些方法進(jìn)行同步,因此任意特定實(shí)例上的所有操作就好像是以串行順序發(fā)生的,該順序與所涉及的每個(gè)線(xiàn)程進(jìn)行的方法調用順序一致。
StringBuffer 上的主要操作是 append 和 insert 方法,可重載這些方法,以接受任意類(lèi)型的數據。每個(gè)方法都能有效地將給定的數據轉換成字符串,然后將該字符串的字符追加或插入到字符串緩沖區中。append 方法始終將這些字符添加到緩沖區的末端;而 insert 方法則在指定的點(diǎn)添加字符。
例如,如果 z 引用一個(gè)當前內容是“start”的字符串緩沖區對象,則此方法調用 z.append("le") 會(huì )使字符串緩沖區包含“startle”,而 z.insert(4, "le") 將更改字符串緩沖區,使之包含“starlet”。
在大部分情況下 StringBuilder > StringBuffer
java.lang.StringBuilde
java.lang.StringBuilder一個(gè)可變的字符序列是5.0新增的。此類(lèi)提供一個(gè)與 StringBuffer 兼容的 API,但不保證同步。該類(lèi)被設計用作 StringBuffer 的一個(gè)簡(jiǎn)易替換,用在字符串緩沖區被單個(gè)線(xiàn)程使用的時(shí)候(這種情況很普遍)。如果可能,建議優(yōu)先采用該類(lèi),因為在大多數實(shí)現中,它比 StringBuffer 要快。兩者的方法基本相同。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
是String,StringBuffer還是StringBuilder ?
String, StringBuffer, StringBuilder區別
Java中String、StringBuffer、StringBuilder的區別
深入了解_StringBuffer和StringBuilder的區別
String、StringBuffer與StringBuilder之間區別
java內存分配和String類(lèi)型的深度解析
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久