intなどのプリミティブ型の配列の場合は0になりますが、Stringやカスタムクラスなどのオブジェクトとしては0のままですか?ヌル?または何?
4 に答える
これは常に要素タイプのデフォルト値ですnull
。クラスタイプの場合は0、数値タイプの場合は0、'\0'
およびchar
の場合は0false
ですboolean
。(NULL
Javaには存在せず、0は参照の意味のない値です。これはメモリ内の物理的な表現である可能性がありますが、それ自体は参照値ではありません。)
配列の作成方法についてはJLSのセクション15.10.1を、さまざまなタイプのデフォルト値の詳細についてはセクション4.12.5を参照してください。
オブジェクト配列の要素はに初期化されnull
ます。パイのようにシンプル。
オブジェクトへの参照はすべてに初期化されnull
ます。ここでは、Javaがプリミティブデータ型(オブジェクトへの参照を含む)を初期化する方法を確認できます。
要点をまとめると:
Data Type Default Value (for fields)
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char '\u0000'
any object null
boolean false
既定の型の原則を少し理解するために、オブジェクトの決定的な既定値とは何かを考えてみましょう。
- intの場合、 0などの任意の数値が意味を持ちます
- booleanの場合、 falseなどの論理値は意味があります。
- charの場合、 '\0' のような任意の記号が意味を持ちます
- ...
この型には有効な値の明確な範囲が存在します (たとえば、 {false, true} )。したがって、任意の値をデフォルト値として使用できます。
オブジェクトの場合、有効な値の明確な範囲はありません。オブジェクトは任意のメンバー変数を保持したり、いくつかのメソッドを提供したりできますが、オブジェクトには特定の「値」はありません。