String は Java のオブジェクトですか、それともクラスですか? Javaの文字列の詳しい説明

零下一度
リリース: 2017-05-22 11:01:21
オリジナル
2054 人が閲覧しました

オブジェクトやクラスの定義を理解していない人がたくさんいます。たとえば、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 [] = {&#39;a&#39;,&#39;b&#39;,&#39;c&#39;};
     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 メソッドを通じて実装されます。文字列変換は、ObjectJava のすべてのクラスによって定義され、継承される toString メソッドを通じて実装されます。文字列の連結と変換の詳細については、Gosling、Joy、および Steele、Java 言語仕様を参照してください。

特に明記されていない限り、このクラスのコンストラクターまたはメソッドに null 引数を渡すと、NullPointerException がスローされます。

UTF-16 でフォーマットされた文字列が、倍精度で置き換えられた補助文字で表される文字列表現 (詳細については、「Character クラスの Unicode 文字表現」セクションを参照してください)。インデックス値は文字コード単位を参照するため、補助文字は文字列内の 2 つの位置を使用します。

String クラスは、Unicode コード単位 (つまり、char 値) を処理するためのメソッドに加えて、Unicode コード ポイント (つまり、文字) を処理するためのメソッドを提供します。

そのため、今後問題が発生した場合は、ドキュメントとソースコードを確認できます。

ドキュメントを確認すればそれがクラスであることもわかりますし、ソースコードを見ればそれが何であるかをすぐに理解できます。 将来的には、これと同様のメソッドを使用して、何かがインターフェイス、クラスなどであるかどうかを確認できるようになります。

クラス: 物理オブジェクトの主観的な抽象化と定義です。オブジェクトは、このクラスによって生成される特定のインスタンスです。ここで、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 は非常に特別なクラスです。基本的な型とは異なります

1. Java の String クラスのサンプル チュートリアルを共有します


2.

Java の String クラスのサンプル チュートリアルをまとめます3. Java でよく使用されるクラスのメソッドは何ですか? Java の String クラスの一般的なメソッドをまとめます

Java String のソース コードの解釈を共有します

以上がString は Java のオブジェクトですか、それともクラスですか? Javaの文字列の詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!