Java中建立String的兩種方式

2021-09-02 04:43:05 字數 737 閱讀 6130

建立乙個string型別的變數一般有兩種方法,如下

public class test 

}

那麼為什麼會存在這兩種建立方式呢,它們在記憶體中的表現形式各有什麼區別?

第一種情況

建立的str1,str2兩個字串,==和equals比較返回都為true,這是因為str1,str2都指向了方法區的同乙個字串。所以,當同樣的乙個字串用""重複建立時只在方法區建立一次

第二種情況

用new建立的str3,str4兩個字串,equals為true很簡單因為equals永遠比較的是值,而==為false說明兩個字串的引用不一樣。用new建立的字串每次都會在jvm堆中建立,所以str3,str4都對應堆中的兩個不同的字串。 

關於這兩道題中的""和new建立的字串在記憶體中的表現形式可以看下圖就明白了。

java中list排序和兩個string的大小比較

list排序方法一comparator形式 listkeylist new arraylist keylist.add user tel keylist.add systemid keylist.add user pwd log.i test sort 排序前keylist keylist coll...

java中string物件中的split方法的使用

我們都知道string物件中的split方法,是用來按照根據匹配給定的正規表示式來拆分此字串。split方法有兩種 一種為 public stringsplit stringregex 另一種為 public stringsplit stringregex,intlimit 但是在實際應用中我們常用...

java中string 的split函式

之前沒有在split函式 只是單純用了split regex 的方法做字串 今天遇到個人問 為什麼這個方法會導致最後的空字串消失,我一時回答不上了 就去翻看了下1.7jdk文件 在文件中我找到這樣的描述 split regex 函式是 呼叫split regex,limit 來實現的,limit 的...