既然 Java 的垃圾回收机制能够自动的回收内存,怎么还会出现内存泄漏的情况呢
伊谢尔伦
伊谢尔伦 2017-04-18 10:49:43
0
10
823

既然 Java 的垃圾回收机制能够自动的回收内存,怎么还会出现内存泄漏的情况呢

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全員に返信(10)
Ty80

メモリ リソースは限られています。ガベージ コレクションは、プログラムの実行に役立つ「ガベージ」のみをリサイクルします。

いいねを押す +0
小葫芦

メモリ オーバーフローには 2 つの状況があります。1 つは無限再帰の呼び出しなどのスタック オーバーフローです。ヒープ オーバーフローもあります。つまり、new から出てくるオブジェクトはすぐには破棄されず、常に new になります。

いいねを押す +0
黄舟

不適切に書かれたプログラムの中には、GC メカニズムが有効になる前に無限にオブジェクトを作成するものがあるからです。

いいねを押す +0
大家讲道理

一般的に言えば、Java におけるメモリ リークとは、プログラムで不要になった割り当てられたメモリを再利用できないという事実を指します。
ガベージ コレクション メカニズムは、オブジェクトとルート オブジェクトの到達可能性によってメモリをリサイクルできるかどうかを決定します。ただし、プログラミング エラーやその他の理由により、期限切れのオブジェクト参照が依然として保持されており、ガベージ コレクターは関連する領域を再利用できません。

いいねを押す +0
伊谢尔伦

マンホールを占拠してうんちをしなければ、彼にできることは何もありません。
私の同僚が書いたブログを読むことをお勧めします: http://blog.csdn.net/zhanggan...

いいねを押す +0
Peter_Zhu

一部のオブジェクトは実際には不要ですが、常に参照され、リサイクルできません

いいねを押す +0
PHPzhong

今のところ、人が作ったものは人そのものを超えることはできません。Java の GC アルゴリズムは人によって書かれていますが、命をかけて GC で再利用できないコードを書く人もいるでしょう。

いいねを押す +0
小葫芦

これは中国那么大,为什么还有人在朝阳区懵逼と同じです。

いいねを押す +0
PHPzhong

私自身の理解なので、間違っていたらご指摘ください。
JDK6 では、String のメソッドは subString と呼ばれ、部分文字列を生成するために使用されます。生成を高速化するために、String にはコンストラクター
String(int offset, int count, char value[]) {

リーリー

}
は元の String 配列を直接指します。定数プール内の新しい String 文字列が毎回生成されることは誰もが知っています。ただし、この参照により、元の文字列はリサイクルされなくなります。 subString の値が彼を指すためです。これによりメモリリークが発生します。

JVM は、プログラマからの干渉をあまり受けずに単独で GC を実行しますが、一部の誤った操作により、使用する必要のなくなった一部のオブジェクトが参照を保持しており、メモリ リークが発生します。

いいねを押す +0
洪涛

JVM: プログラマーはゴミを保持しており、それが私にとって非常に恥ずかしいことです。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート