首頁> Java> Java入門> 主體

Java常用類別String類別的詳細介紹

王林
發布: 2020-07-14 16:44:21
轉載
2495 人瀏覽過

Java常用類別String類別的詳細介紹

常用類別 String

(推薦教學:java入門教學

String 類別代表字串。 Java 程式中的所有字串字面值(如 “abc” )都作為此類別的實例實作。

字串是常數,它們的值在創建之後不能更改。字串緩衝區支援可變的字串。因為 String 物件是不可變的,所以可以共享。

String原始碼

public final class String implements java.io.Serializable, Comparable, CharSequence { }
登入後複製

String的成員變數

//String的属性值 private final char value[]; //数组被使用的开始位置 private final int offset; //String中元素的个数 private final int count; //String类型的hash值 private int hash; // Default to 0 private static final long serialVersionUID = -6849794470754667710L; private static final ObjectStreamField[] serialPersistentFields = new ObjectStreamField[0];
登入後複製

從原始碼看出String底層使用一個字元陣列來維護的。

成員變數可以知道String類別的值是final類型的,不能被改變的,所以只要一個值改變就會產生一個新的String類型對象,儲存String資料也不一定從陣列的第0個元素開始的,而是從offset所指的元素開始。

(影片教學推薦:java影片教學

建立字串物件的方式

String s1 = "hello" ; String s2 = "world" ; String s3 = "hello" ; System. out. println(s1 == s3) ; //true
登入後複製

S1和S3的「hello」和s2的"world"存在的是方法區的常數池。

如圖:

Java常用類別String類別的詳細介紹

所以s1==s3

s1 = new String ("hel1o") ; s2 = new String ("hel1o") ; System.out.println(s1 == s2) ; //false System.out.println (s1.equals (s2) ) ; // true
登入後複製

s1和s2是透過new得到兩個String對象,存在著堆中,地址是不一樣的。 s1和s2是兩個引用,所以比較的是位址,s1 != s2。

String的equals是重寫了Object的equals,不是跟Object一樣比較位址,而是比較值,所以s1.equals (s2) 是true。

3.char c[]= { 's', 'u' , 'n',',', 'j', 'a', 'v' ,'a'} ; String s4 = new String(c) ; String s5 = new String(c,4,4) ; System.out.println(s4) ; //sun java System.out.println(s5) ; //java
登入後複製

以上是Java常用類別String類別的詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!