Java基礎篇 關於String的深入理解

2021-08-28 12:04:50 字數 650 閱讀 5131

每個字串都是唯一的,不可更改的,所謂的更改都是將現有存在於字串常量區的字串複製乙份後再對其操作。即,對string的任何物件進行更改都不會對原物件產生影響,而會產生乙個新物件

string類物件的比較只能使用object的equals方法。因為在每個string產生的過程中都jvm都會產生兩個物件,乙個是在類載入時期,.class中有一部分會在編譯期間儲存產生的文字常量和符號引用,另乙個則是在執行期間在堆(heap)中產生的對這段符號引用的引用,即變數名,即指標。equals方法實際上比較的是這兩個物件是否為同一物件的引用。但如果賦值語句是string str = 「abc」,string anostr = 「abc」這樣的,比較的則直接是指標位址值,直接比較str == anostr 和 ano.equals(anostr) 返回值都會是 true。

要從三方面來說,執行速度、空間占用和執行緒安全,直說結果,速度上string < stringbuffer < stringbuilder;空間上在需要對字串進行操作時,stringbuider = stringbuffer > string;執行緒安全性上, stringbuffer執行緒安全,string和stringbuilder都是不安全的,因為stringbuffer中大量方法都被synchronize包圍。

JAVA基礎練習之String

需求 練習string class stringdemo int beginindex 0,endindex str.length 1 while beginindex endindex str.charat beginindex if beginindex endindex while begin...

Java基礎Scanner和String類

1 scanner的使用 了解 1 在jdk5以後出現的用於鍵盤錄入資料的類。2 構造方法 a 講解了system.in這個東西。它其實是標準的輸入流,對應於鍵盤錄入 b 構造方法 inputstream is system.in scanner inputstream is c 常用的格式 sca...

java基礎 String類命令

1 regionmatches方法 regionmatches方法用於檢測兩個字串在乙個區域內是否相等 public boolean regionmatches int toffset,string other,it ooffset,int len public boolean regionmatc...