溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java常用類String類是什么

發(fā)布時間:2020-07-15 11:49:22 來源:億速云 閱讀:131 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關(guān)Java常用類String類是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

常用類 String

String 類代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作為此類的實例實現(xiàn)。

字符串是常量,它們的值在創(chuàng)建之后不能更改。字符串緩沖區(qū)支持可變的字符串。因為 String 對象是不可變的,所以可以共享。

String源碼

public final class String
implements java.io.Serializable, Comparable<String>, CharSequence {
}

String的成員變量

//String的屬性值
private final char value[];
//數(shù)組被使用的開始位置
private final int offset;
//String中元素的個數(shù)
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底層使用一個字符數(shù)組來維護的。

成員變量可以知道String類的值是final類型的,不能被改變的,所以只要一個值改變就會生成一個新的String類型對象,存儲String數(shù)據(jù)也不一定從數(shù)組的第0個元素開始的,而是從offset所指的元素開始。

(視頻教程推薦:java視頻教程)

創(chuàng)建字符串對象的方式

String s1 = "hello" ; 
String s2 = "world" ;
String s3 = "hello" ;
System. out. println(s1 == s3) ; //true

S1和S3的“hello”和s2的"world"存在的是方法區(qū)的常量池。

如圖:

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

看完上述內(nèi)容,你們對Java常用類String類是什么有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI