長い、長い時間の更新なしのブログ、物事が彼のために自分自身の、オフあまりにも多くのガードが起こるので、特に忙しい、まっすぐここで何かを追加しましたが、自分で理にかなって発見プロセスを送りたいです。
多くのJava開発者が誤解を招くされていることがポイント - 完了するために、早ければ2017年5月のように証明し、時間は多分、少し詳しく少し長いです、実際には、「変数が参照されている場合は、スタック上に保存されます」。忘れてしまいました。
私はここでの結論に話をしてみましょう:変数は、この変数は、内部に書かれた方法ではないことを、スタック上に保存されているかどうか、これは変数自体への参照であるかどうか。
次のサンプルコード:
パブリッククラスメイン{ パブリック静的無効メイン(文字列[] args){ テストテスト=新しいテスト(); System.out.println( "テスト - >" +試験)。 System.out.println( "T2->" + test.t2)。 test.fn(1,2)。 System.out.println( "I->" + test.t2.test2_age)。 } } パブリッククラスTest { int型test_age = 5; TEST2さt2 =新しいTEST2()。 公共int型のFN(INT A、INT B){ + bを返します。 } } クラスTest2を{ int型test2_age = 6; }
デバッグツールリファレンスRは、物品大文字https://rednaxelafx.iteye.com/blog/1847971を。コマンド内の記事が開かないと、私は次のように、間接的にオープンにプログラムを書いて、ここにいます:
輸入sun.jvm.hotspot.HSDB。 パブリッククラスOpenHSDB { パブリック静的無効メイン(文字列[] args){ HSDB.main(引数)。 } }
次に、以下のようHSDB頻繁に使用するコマンドは次のとおりです。
ヒープを見ます: 宇宙 検索は、ヒープからオブジェクト: scanoops 0x0f200000 0x15200000にTest2 結果 0x0f2d7c50にTest2 0x0f2d7c68にTest2 0x0f2d84e8にTest2 オブジェクトの具体的な内容を確認します。 0x0f2d7c50検査 後方参照を探します: revptrs 0x0f2d7c50 TLABでメインスレッドを確認します。 whatisは0x0f2d6d50
リサイクルは、コマンドJDB Javaプログラムの最初のステップ実行するには、以下の具体的な処理順序のスクリーンショット:
各テーマの具体的な説明、上の説明を参照してください。仮想マシンのバイトコード命令テーブルアドレスを。
終わり。