java中String是對象還是類?詳解java中的String


有很多人搞不懂對象和類的定義。比如說java中String到底是對象還是類呢?

有人說String 既可以說是類,也可以說是對象。

其實他這么說也沒問題, 類和對象其實都是一個抽象的概念。 我們可以把一類東西歸集在一起,起一個名字,什么類,專門做什么事的,但是我們也可以說它是一個對象……

所以說String 既可以說是類,也可以說是對象。 

但是如果你要深究,比如小編就餓深究了一下,我發現在java.lang中,這是個基礎類,你可以好好看lang包中的源碼。

public final class String extends Object implements Serializable,Comparable < String >,CharSequence

在java.lang中,String類代表字符串。Java程序中的所有字符串文字,例如"abc",都被實現為此類的實例。

字符串不變; 它們的值在創建后不能被更改。字符串緩沖區支持可變字符串。因為String對象是不可變的,它們可以被共享。例如:

  String str =“abc”;

相當於:

   char data [] = {'a','b','c'};
     String str = new String(data);

以下是一些如何使用字符串的示例:

   System.out.println( “ABC”);
     String cde =“cde”;
     System.out.println(“abc”+ cde);
     String c =“abc”.substring(2,3);
     String d = cde.substring(1,2);

該類String包括用於檢查序列的各個字符的方法,用於比較字符串,用於搜索字符串,用於提取子字符串,以及用於創建將所有字符翻譯為大寫或小寫的字符串副本。案例映射基於Character該類指定的Unicode標准版本。

Java語言為字符串連接運算符(+)提供特殊支持,並為其他對象轉換為字符串。通過StringBuilder(或StringBuffer)類及其append方法實現字符串連接。字符串轉換通過toString由ObjectJava中的所有類定義並由其繼承的方法 實現。有關字符串連接和轉換的其他信息,請參閱Gosling,Joy和Steele, Java語言規范。

除非另有說明,否則將null參數傳遞給此類中的構造函數或方法將導致NullPointerException拋出。

甲String表示在其中UTF-16格式的字符串增補字符由表示替代雙(見節的Unicode字符表示在Character類的更多信息)。索引值是指char代碼單位,所以補充字符在a中使用兩個位置String。

的String類提供使用Unicode代碼點(即,字符)處理,除了那些用於處理Unicode代碼單元(即,方法char的值)。

所以以后遇到什么問題,小伙伴們可以查文檔,看源碼。查文檔也可以知道它是類,看源碼就可以快速的了解這個是啥。

以后你看一個東西是否是interface,class,等等都可以使用類似這種方法。

類: 是對一個實物的主觀抽象以及定義,  對象   就是這個類所產生的具體的實例  ,String s=new String();這里的  String 是一個類,s是String類所產生的對象。。

構造方法摘要 

String() 
          初始化一個新創建的 String 對象,使其表示一個空字符序列。 
String(byte[] bytes) 
          通過使用平台的默認字符集解碼指定的 byte 數組,構造一個新的 String。 
String(byte[] bytes, Charset charset) 
          通過使用指定的 charset 解碼指定的 byte 數組,構造一個新的 String。 
String(byte[] ascii, int hibyte) 
          已過時。 該方法無法將字節正確地轉換為字符。從 JDK 1.1 開始,完成該轉換的首選方法是使用帶有 Charset、字符集名稱,或使用平台默認字符集的 String 構造方法。 
String(byte[] bytes, int offset, int length) 
          通過使用平台的默認字符集解碼指定的 byte 子數組,構造一個新的 String。 
String(byte[] bytes, int offset, int length, Charset charset) 
          通過使用指定的 charset 解碼指定的 byte 子數組,構造一個新的 String。 
String(byte[] ascii, int hibyte, int offset, int count) 
          已過時。 該方法無法將字節正確地轉換為字符。從 JDK 1.1 開始,完成該轉換的首選方法是使用帶有 Charset、字符集名稱,或使用平台默認字符集的 String 構造方法。 
String(byte[] bytes, int offset, int length, String charsetName) 
          通過使用指定的字符集解碼指定的 byte 子數組,構造一個新的 String。 
String(byte[] bytes, String charsetName) 
          通過使用指定的 charset 解碼指定的 byte 數組,構造一個新的 String。 
String(char[] value) 
          分配一個新的 String,使其表示字符數組參數中當前包含的字符序列。

總結一下(pz):類, 是對一個實物的主觀抽象以及定義,  對象   就是這個類所產生的具體的實例 。String s=new String();

這里的  String 是一個類,s是String類所產生的對象。。本質上,String是一個類,可如果說你要使用它時就是可實例化一個對象。

String是一個很特殊的類!不同於基本類型


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM