0

intなどのプリミティブ型の配列の場合は0になりますが、Stringやカスタムクラスなどのオブジェクトとしては0のままですか?ヌル?または何?

4

4 に答える 4

10

これは常に要素タイプのデフォルト値ですnull。クラスタイプの場合は0、数値タイプの場合は0、'\0'およびcharの場合は0falseですboolean。(NULLJavaには存在せず、0は参照の意味のない値です。これはメモリ内の物理的な表現である可能性がありますが、それ自体は参照値ではありません。)

配列の作成方法についてはJLSのセクション15.10.1を、さまざまなタイプのデフォルト値の詳細についてはセクション4.12.5を参照してください。

于 2012-09-30T22:57:00.830 に答える
6

オブジェクト配列の要素はに初期化されnullます。パイのようにシンプル。

于 2012-09-30T22:57:06.207 に答える
3

オブジェクトへの参照はすべてに初期化され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
于 2012-09-30T23:00:39.670 に答える
0

既定の型の原則を少し理解するために、オブジェクトの決定的な既定値とは何かを考えてみましょう。

  • intの場合、 0などの任意の数値が意味を持ちます
  • booleanの場合、 falseなどの論理値は意味があります。
  • charの場合、 '\0' のような任意の記号が意味を持ちます
  • ...

この型には有効な値の明確な範囲が存在します (たとえば、 {false, true} )。したがって、任意の値をデフォルト値として使用できます。

オブジェクトの場合、有効な値の明確な範囲はありません。オブジェクトは任意のメンバー変数を保持したり、いくつかのメソッドを提供したりできますが、オブジェクトには特定の「値」はありません

于 2012-10-01T00:04:24.873 に答える