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...