私は C++ から Java に移行したばかりの学生です。
Java で、String 配列と Char 配列に別々のデータ型を定義する主な理由は何ですか? 2つの違いは何ですか?
私は C++ しか勉強したことがないので、今までは同じものだと思っていました。可能であれば明確にしてください。
私は C++ から Java に移行したばかりの学生です。
Java で、String 配列と Char 配列に別々のデータ型を定義する主な理由は何ですか? 2つの違いは何ですか?
私は C++ しか勉強したことがないので、今までは同じものだと思っていました。可能であれば明確にしてください。
String
不変です。Char
配列ではありません。文字列は下に char 配列で実装されますが、それを変更しようとするたびに (連結、置換など)、新しい String
オブジェクトが提供されます。
そのString
ため、定数Char
配列として動作しますが、非常に使いやすくする特定の構文シュガーも付属しています。たとえば、加算+
演算子は文字列連結演算子としてもオーバーロードされています。
Java ではString
、基本的に をラップする基本的なシステム クラスですchar[]
。ほとんどの用途で、配列を直接処理するよりも完全なクラスを使用する方が望ましい理由はいくつかあります。
String
s は不変です。some への参照を取得するString
と、それが決して変更されないことがわかります。String
s は、ベア配列では不可能な便利なメソッド ( など) を提供しlength()
、明確に定義された比較セマンティクスを持っています。+
。基本的に、クラスを使用して目的の動作とデータ構造を同じ場所に集め、String
文字列に対して実行する便利な操作で文字の配列をラップすることは、オブジェクト指向の良い実践です。
文字列オブジェクトを使用する利点は、すべてのメソッドを使用できることです。例えば:
stringExample1.equals(stringExample2);
String stringExample3 = stringExample1.replace(substring1, substring2);