オブジェクトが作成され、コンストラクタが呼び出されるときコンストラクタの呼び出しはどこに格納されますか?それはスタックまたはヒープ上にありますか?コンストラクタの呼び出しはどこに格納されますか?スタックまたはヒープ?
4
A
答えて
1
ヒープはオブジェクトを格納するためのものです。ヒープ上でコンストラクタを起動させる方法はありません。
これはスタック上で実行されます。
スタックはメソッド呼び出しで使用されます。メソッドスタックの作成に使用されます。コンストラクタはメソッドではありません。しかし、どのような方法でも、いつでも実行されるように、任意のロジックや割り当てを書くことができます。したがって、他の方法と同様にスタックに実装されます。
4
コンストラクタ呼び出しのパラメータとローカル変数は、コンストラクタが戻るまでスタックに格納されます。
コンストラクタが作成するオブジェクトは、ヒープに格納されます。
1 - ...あなたが持っていない限り有効「分析をエスケープ」、およびJITコンパイラは、オブジェクトが安全にスタックに割り当てることができると判断することができます。
1
スタックとヒープのJVMで
ランタイムデータ領域は、以下の通りである
1)ヒープ:オブジェクトの格納領域(JVMインスタンスごとに1つ)
2)Javaスタック:ストレージは、ローカルのためのものです変数、中間結果の結果(スレッドごとに1つ)
関連する問題
- 1. Objective Cはオブジェクト、ヒープまたはスタックをどこに格納しますか
- 2. Java-変数名または識別子はどこに格納されますか?スタックまたはヒープ?
- 3. ヒープまたはスタックに参照が格納されていますか?
- 4. 変数と参照はヒープまたはスタックにどこに格納されますか?
- 5. C#7.0で参照によって返される値は、スタックまたはヒープに格納されますか?
- 6. javaのコンストラクタの値はどこに格納されていますか?
- 7. コンストラクタはスタック上で常に呼び出されるのはなぜですか?
- 8. これはどのタイプのJavaコンストラクタ呼び出しですか?
- 9. スレッドのスタックには何が格納されていますか?
- 10. *これはコンストラクタを呼び出しますか?
- 11. スコープはスタックに格納されていますか?
- 12. オブジェクトはスタックに格納されていますか?
- 13. ベースクラスのコンストラクタは自動的に呼び出されますか?
- 14. MySQL-clusterを使用して格納されたテーブルデータは正確にどこに格納されますか?
- 15. ビュー用に呼び出されるコンストラクタはどれですか?
- 16. なぜこのコンストラクタが2回呼び出されますか?
- 17. クラスのオブジェクトのデータはどこに格納されますか?
- 18. setTimeoutを呼び出すと、呼び出しスタックがクリアされますか?
- 19. Scanner.next()のインデックスはどこに格納されていますか
- 20. Mavenのアーティファクトはどこに格納されますか?
- 21. インスタンス化されたオブジェクトはどこにzendフレームワークに格納されますか?
- 22. rvaluesはC++にどこに格納されていますか?
- 23. 変数はSQLサーバーにどこに格納されますか?
- 24. 関数を呼び出してタプルに格納されたパラメータを渡すか?
- 25. ポストグルのカーソル、格納されているデータはどこですか、DBへの呼び出し回数
- 26. jQuery配列に格納された関数を呼び出すにはどうすればよいですか?
- 27. PHPコンストラクタは呼び出されませんか?か何か?
- 28. QT - メインウィジェット - スタックまたはヒープ?
- 29. 識別フィールドはどこに格納されていますか?
- 30. eclipse args []はどこに格納されていますか?
便利なお読みください:https://stackoverflow.com/questions/2826222/jvm-heap-and-stack/7597480#7597480 – Dez
コンストラクタを呼び出すことは、「」という特別なメソッドを呼び出すのと同じです。他の方法。 –