国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

String、StringBuffer與StringBuilder之間區別

2019-11-08 18:30:37
字體:
來源:轉載
供稿:網友

String、StringBuffer與StringBuilder之間區別

package sun.rain.amazing;import org.junit.Test;/** * String、StringBuffer與StringBuilder之間區別 * * 主要是對字符串內容可變的操作進行相應的方法操作 * 針對于 String 和 StringBuffer 和 StringBuilder * 一些方法的應用 及其之間的區別 * @author sunRainAmazing * */public class StringChange { /** * 1、String類對象為不可變對象,一旦你修改了String對象的值, * 隱性重新創建了一個新的對象,釋放原String對象, * StringBuffer類對象為可修改對象,可以通過append()方法來修改值 * 2、String類對象的性能遠不如StringBuffer類。 * *=================================== * * String 是final類,即不能被繼承. 為不可變對象,一旦被創建,就不能修改它的值. * 對于已經存在的String對象的修改都是重新創建一個新的對象,然后把新的值保存進去. * * 是一個可變對象,它只能通過構造函數來建立, * StringBuffer stringBuffer = new StringBuffer(); * StringBuffer stringBuffer = new StringBuffer(String str); * * 注意:不能通過賦值符號對他進行賦值. * stringBuffer = "welcome to here!";//error * * 對象被建立以后,在內存中就會分配內存空間,并初始保存一個null.向StringBuffer * 中賦值的時候可以通過它的append方法. * stringBuffer.append("hello"); * 字符串連接操作中StringBuffer的效率要比String高: * * ================================== * * 將stringBuffer 轉為 String 類型 * 1. 直接進行調用 toString()方法即可 * 2. 直接拼接 stringBuffer + "" * 3. 使用 String.valueOf(stringBuffer); *//** * ================================ * * 1.在執行速度方面的優劣 StringBuilder > StringBuffer > String * String:字符串常量 ----是不可變的常量 final 修飾的 內容一旦創建不可改變 * StringBuffer、StringBuilder:字符串常量 -----內容是可變的,一個對象 * * 2.String類型的變量一旦改變內容,實質是另外創建了一個對象,將變量所對應的物理地址重新引用 * * String str = "內容創建,物理地址不可變"; * str = str+"內容改變或拼接效果";//實際上是重新創建了一個物理地址 重新引用 * System.out.PRint(str);// 這里的str 不再是 指向最初創建的那個物理地址。 * * 3.String 類重寫了equals方法 ,而StringBuffer沒有重寫equals方法 * * 4.StringBuilder:線程非安全的、StringBuffer:線程安全的 * 對于三者使用的總結: * 1.對于String類型的數據 ,判斷字符串內容是否相等, 操作少量的數據 * 2.StringBuilder:主要用于單線程的多數據字符串的操作,線程不安全 * 3.StringBuffer:主要用于多線程操作字符串,線程安全 * * ================================ */ /** * 可變字符串和不可變字符串的操作的方法 * substring() * 給出字符串的兩個位置,pos1和pos2, 如何替換pos1和pos2之間的字串 * 用subString , String.substring(0,pos1) * + newString * + String.substring(pos2+1) * * StringBuffer類為可變字符串的修改提供了3種方法,在字符串中間插入和改變某個位置所在的字符。 * 1.在字符串后面追加:用append()方法將各種對象加入到字符串中。 * 2.在字符串中間插入:用insert()方法。 * 3.改變某個位置所在的字符,用setCharAt()方法 */ //將tomcat 換成 Maria @Test public void testChangeString(){ String replaceStr = "tomcat"; String str = "歡迎您"+ replaceStr +"來到WEB世界"; //獲取第一個截取的長度 int index = str.indexOf(replaceStr); //獲取第二個截取的長度 int length = index + replaceStr.length(); String newStr = "Maria"; str = str.substring(0, index)+newStr+str.substring(length+1); System.out.println(str); } @Test public void testStringBufferInsert(){ String str = "歡迎您來到WEB世界"; StringBuffer stringBuffer = new StringBuffer(str); String newStr = "Maria"; stringBuffer.insert(str.indexOf("您")+1, newStr); System.out.println(stringBuffer.toString()); }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新泰市| 灵武市| 大宁县| 忻城县| 耿马| 筠连县| 孝感市| 龙胜| 济阳县| 三原县| 南皮县| 寻乌县| 京山县| 衢州市| 西畴县| 夏河县| 旅游| 沈丘县| 股票| 涿鹿县| 阆中市| 土默特左旗| 修水县| 福贡县| 姜堰市| 凯里市| 大足县| 五家渠市| 天津市| 芒康县| 车险| 敦煌市| 灵石县| 阳泉市| 大化| 舞钢市| 霍邱县| 博乐市| 高淳县| 贡嘎县| 津南区|