-2

オブジェクトの作成に関係なく、オブジェクトを介してそれらにアクセスせずに、Javaでクラスをロードするときに、次のメソッド、変数、ブロックのどれがロードされるのか疑問がありますか??

1. static variables 
2. static methods 
3. final variables,methods 
4. static blocks 
5. instance ({..... })blocks
6. main()
7. constructors (argumented and default)
8. instance variables 

Javaでクラスをロードするときにロードされるのはどれですか?? *(ロードの順序は必要ありません。Javaでのクラスのロードの前または一緒にロードされているものを知りたいだけです)

4

2 に答える 2

1

JVM がクラスをロードするとき、.classファイルに含まれるすべてのものをロードします。これは、上でリストしたすべてのものです。もちろん、これは実際に実行されるすべてを意味するわけではありません。

EDIT:クラスの各部分(フィールド、メソッドなど)が異なる部分であり、別々にロードされると思われるようです。これはそうではありません。.class ファイルにはすべてのクラス パーツが含まれており、.class がメモリに読み込まれると同時に読み込まれます。おそらく、リフレクションがどのように使用されているかClass、 、MethodContructorおよびそのようなクラスがある場所で混乱が生じるでしょう。これらは実際には、JVM が .class ファイルを解析してリフレクションなどの機能を許可するときに作成される仮想パーツです。

于 2013-09-26T11:56:43.173 に答える