これらのうちの1つが「instanceKlassはJavaクラスのVMレベル表現です」と記述されています。もう1つは、「klassOopはJavaクラスのC++に相当します」ということです。その違いは何ですか?なぜ我々はそれらの両方が必要なのですか、2対1を組み合わせることはできますか? http://hg.openjdk.java.net/jdk7u/jdk7u60/hotspot/file/ba66650acf63/src/share/vm/oops/instanceKlass.hpp http://hg.openjdk.java.net/jdk7u/jdk7u60/hotspot/file/ba66650acf63/src/share/vm/oops/klassOop.hppklassoopとinstanceklassの実際の違いは何ですか?
0
A
答えて
1
instanceKlass
がKlass
の特定の子孫であるので、klassOop
対Klass
を比較することがより正確だろう。
JDK 7クラスのメタデータは、Permanent Generation of Java Heapに格納されていました。 Javaヒープクラスのすべてのオブジェクトと同様に、メタデータにはオブジェクトヘッダーがあります。 klassOop
は、基本的にC++ Klass
オブジェクトをJavaヒープオブジェクト(OOP)にラップするラッパーでした。
_________________
| |
| mark_word | <-- OOP header
| klass_field |
| _______________ |
|| ||
|| C++ vtbl ptr || <-- InstanceKlass data
|| subtype cache ||
|| instance size ||
|| java mirror ||
|| super ||
|| access_flags ||
|| name ||
|| ... ||
||_______________||
|_________________|
はJDK 8のでこれ以上永続的な世代が存在しないともはやklassOop
エンティティがあります。すべてのクラスメタデータは、通常のC++オブジェクトとしてメタスペースに格納されます。
HotSpot JVMの内部を調べたい場合は、代わりにjdk8u
リポジトリを調べることをお勧めします。
関連する問題
- 1. 実際には、ドッカーランドッドとドッカーランドの違いは何ですか?
- 2. ACTION_GET_CONTENTとACTION_OPEN_DOCUMENTの実際の違いは何ですか?
- 3. Response.Writeと<%= %>の実際の違いは何ですか?
- 4. Apache TajoとApacheハイブの実際の違いは何ですか
- 5. RTMFPとBitTorrentの実際の違いは何ですか?
- 6. imagick :: INTERLACE_JPEG/INTERLACE_PLANE/INTERLACE_LINEの実際の違いは何ですか?
- 7. SeleniumのmouseMove()と実際のマウスの動きの違いは何ですか?
- 8. 組み込みEJBコンテナと実際のサーバコンテナの違いは何ですか
- 9. check_call check_outputコールとサブプロセスモジュールのPopenメソッドの実際的な違いは何ですか?
- 10. Django REST Framework:実際にvalidate_ <fieldname>との違いは何ですか?
- 11. ルーピングの際にMS-DebugとTASMの違いは何ですか?
- 12. TomcatとWebsphereにデプロイする際の違いは何ですか?
- 13. UIAccessibilityLayoutChangedNotificationとUIAccessibilityScreenChangedNotificationの実際の違いは?
- 14. VirtualizingStackPanelのVirtualizationModeプロパティのRecycling/Standardの実際の違いは何ですか?
- 15. 実際にDOMStringとは何ですか?
- 16. 実際にreduxとは何ですか?
- 17. 実装でのセマフォとmutexの違いは何ですか?
- 18. Playの実行と開始の違いは何ですか?
- 19. asInvokerとhighestAvailableの実行レベルの違いは何ですか?
- 20. Angular 2 Component定義でngOnInitとコンストラクタを使用することの実際的な違いは何ですか?
- 21. valgrindと正常実行の違いは何ですか?
- 22. 「コンパイル時間」と「実行時間」の違いは何ですか?
- 23. Activity.runOnUiThread(実行可能アクション)とHandler.post()の違いは何ですか?
- 24. 実行フローとフローチェックの違いは何ですか?
- 25. FlyweightとSingletonパターンの実用的な違いは何ですか?
- 26. インテントを送信する際の "setComponent"と "setClassName"の違いは何ですか?
- 27. 文字列を初期化する際の '...'と '...'の違いは何ですか?
- 28. Reflect.ownKeys(obj)とObject.keys(obj)の違いは何ですか?実際の単純なケースでそれらをテストする
- 29. Aureliaでの双方向バインディングとTwoWayバインディングの実際的な違いは何ですか?
- 30. difftimeと ' - 'の違いは何ですか?
ありがとうございます。 –