java的字串相關問題

2021-08-22 10:06:34 字數 756 閱讀 8153

1、string 和stringbuffer 、stringbuilder  的區別

string:字串常量,   一旦string物件被建立就不可以被修改,而例如 string str = "aaa"; str = str +"abc";  後面的str時新建立的物件,原來的str物件用完就會被gc**,這樣修改字串使用的時間會很長。

stringbuilder:字串變數,執行緒不安全,同上。

stringbuilder執行速度最快,但是執行緒不安全,建議單執行緒使用

stringbuffer執行速度次之,但是執行緒安全,多執行緒使用

string  操作少量資料的時候使用。

2、string 的replace()   和replaceall()  的區別

replace 支援單個字元以及字串的替換,但是不會解析正規表示式

當 僅僅想要替換出現的第乙個是可以使用replacefirst()  而且他支援正規表示式

replaceall  不僅支援replace的功能,還會支援正規表示式,

3、 ==  與equqls的區別

因為equqls是object根類的方法,適用於引用型別的,

基本型別的比較  用 == 進行,比較的是數值,當字元進行比較是,比較的是assic碼

(基本型別存放在棧中)

對於引用型別    == 與equqls   比較的都是棧中的內容   所以比較的都是引用位址  而string  data 包裝類  等類對於equqls 進行了重寫 ,所以比較的是內容。

字串相關問題

動態規劃解法 dp i j dp i j dp i j 表示字串 s ss 的前 i ii 個字元中是否包含字串 t tt 的前 j jj 個字元。狀態轉移方程 if s i s j dp i j dp i 1 j 1 else dp i j dp i j 1 逐個查詢法 可以依賴於 str in ...

字串相關問題

string s1 abc string s2 new string efg 首先,要對jvm執行時資料區有所了解,主要包括棧 堆 方法區,這裡主要涉及到了方法區,方法區主要儲存class檔案對應的資料,class常量池的資料 字面量和符號引用 會在載入階段被載入到執行時常量池中,在解析階段,會在堆...

字串的相關問題

6.程式設計 實現 memcpy 函式,原型 extern void memcpy void dest,void src,unsigned int count 用法 include 功能 由src所指記憶體區域複製count個位元組到dest所指記憶體區域。下面就是 這個函式的實現過程。includ...