0

明確にしてください - リテラルから String オブジェクトを作成するこのプロセスを説明するために使用する単語は次のとおりです。

文字列 obj = "値";

私が理解しているように、ここでオートボクシングがあると言うのは正しくありません。これはプリミティブ型に対してのみ実際にあるためですが、このプロセスには他に特別なキーワードはありますか?

4

3 に答える 3

2

これは定義と呼ばれます。文字列変数を「宣言」し、特定の値に「初期化」しています。

より明確にするために、以下のリンクをチェックしてください:
http://ee.hawaii.edu/~tep/EE160/Book/chap14/subsection2.1.1.4.html

その一部を引用するには:
So far when we have ``declared'' a variable, we have meant that we have told the compiler about the variable; i.e. its type and its name, as well as allocated a memory cell for the variable (either locally or globally). This latter action of the compiler, allocation of storage, is more properly called the definition of the variable. The stricter definition of declaration is simply to describe information ``about'' the variable.

于 2013-10-15T15:12:59.827 に答える
1

このステートメントでは、実際に 2 つのことを行っています。typeの変数を宣言し、それを「値」に初期化しています。objString

後者の別の用語は割り当てです。初期化は、初めて行う割り当ての特定の形式です。

于 2013-10-15T15:22:41.763 に答える
-1

あなたが探しているのは初期化です

さらに、String クラスが持つことができる 2 つの初期化の違いを説明しようと思います。

文字列の場合、 と の間に違いがString obj = "value";ありますString obj = new String("value");

String obj = "value";

二重引用符を使用して文字列を作成すると、JVM は文字列プールを調べて、他の文字列が同じ値で格納されているかどうかを確認します。見つかった場合は、その String オブジェクトへの参照を返すだけです。それ以外の場合は、指定された値で新しい String オブジェクトを作成し、String プールに格納します。

String obj = new String("value");

new 演算子を使用すると、JVM は String オブジェクトを作成しますが、String プールには格納しません。intern() メソッドを使用して String オブジェクトを String プールに格納するか、プールに同じ値の String が既に存在する場合は参照を返すことができます。

参照: http://www.journaldev.com/1321/java-string-interview-questions-and-answers

于 2013-10-15T15:13:51.813 に答える