java - for循环造对象,造了很多重复的s对象,为什么不报错?
大家讲道理
大家讲道理 2017-04-18 09:51:15
0
7
556

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全員に返信(7)
迷茫

リーリー

いいねを押す +0
刘奇
  1. まず、s は int 型であり、Object 型ではなく基本型であるため、「重複した s オブジェクトを多数作成する」ということはありません

  2. ここで作成されるのは int 型の変数です。この変数はスタックに保存されます

  3. ループ回数を Integer.MAX_VALUE に設定してもエラーは報告されません。具体的な理由は不明ですが、実際には毎回同じメモリ領域が使用されるようにコンパイラがコードを最適化します。毎回新しいメモリ領域を開く代わりに

いいねを押す +0
小葫芦

整数を試すことができます (笑)

いいねを押す +0
阿神

1. 最初に理解する必要があるのは、コード内の s と i は、C 言語のポインターに相当する単なるオブジェクトへの参照であるということです。サインのスペース。
2. for をループするたびに、同じ名前の参照を宣言することになります。そうすると、コンパイラは同じ名前のこれらの参照を区別できるため、何度ループしても、実際には の名前は 1 つだけになります。 ' 参照。最初の for ループで初期化され、後続の各ループでこの参照に同じ名前の値が割り当てられます。
3. 出力結果を確認したい場合は、ローカル変数の有効なドメインに system.out を入れます。

いいねを押す +0
Peter_Zhu

1. このコードはオブジェクトを作成しません。Int はオブジェクトではなく、基本的なデータ型です。
2. このコードはコンパイラーによって最適化され、その結果は int s = 9; の形式になると思います。

を確認するには、これを実行します。
いいねを押す +0
刘奇

Java コンパイラを使用しているためです。

いいねを押す +0
刘奇

int はどこから来たのでしょうか?

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート