1. JVM はどのような状況で GC を実行しますか? アプリケーションが新しいオブジェクトを割り当てるとき、GC 世代のバジェット サイズがしきい値に達した場合 (GC の 0 世代目がいっぱいになった場合など)、コードが System.GC.Collect() を積極的にかつ明示的に呼び出します。システムはメモリ不足、CLR の AppDomain のアンロード、CLR のシャットダウンを報告し、極端な場合にはシステム パラメータ設定の変更も GC リサイクルを引き起こす可能性があります
2、OutOfMemoryErrorとStackOverflowとは何ですか スタックを拡張するときに仮想マシンが十分なメモリ領域を適用できない場合、OutOfMemoryError 例外がスローされます。これは通常、配列、ArrayList、HashMap などに適用されたデータの量が大きすぎることが原因で発生します。
スレッドによって要求されたスタックの深さが仮想マシンで許可される最大の深さよりも大きい場合、これは通常、多数の再帰操作によるスタック メモリの不足が原因で発生します。
一般に、OutOfMemoryError 例外はシングルスレッド プログラムでは生成できません。スタックはスレッドに対してプライベートであり、スレッドが多いとメソッド領域がオーバーフローするため、マルチスレッド メソッドを使用する場合にも OutOfMemoryError が発生します。
3. JVMスタックスペースが割り当てられすぎるとどのような問題が発生しますか
4. JVM で無限ループとデッドロックを検出する方法 デッドロック:
無限ループ:
5. 説明BIO、NIO、NIO2、AIO
6. NIO パッケージのポーリングと選択の違いは何ですか? 7、
HTTP/1.1の基本8. TCP プロトコルにおける 3 つのハンドシェイクと 4 つのウェーブ
以上がJava 面接の質問と回答 (4)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。