網頁

2021/3/6

Java 什麼是記憶體流失/內存泄漏? what is memory leak

Java memory leak(記憶體流失/內存泄漏)的意思如下。

Memory稱為「記憶體」(中國稱為「內存」),就是Java程式執行時暫存資料的地方。

而Java memory leak是指「不再被程式使用的heap記憶體無法被垃圾回收」。換句話說就是「Java物件無法被垃圾回收」。

Java受歡迎的原因之一就是JVM強大的記憶體管理特性,也就是垃圾回收機制(Garbage Collection)。而當Java程式中的物件無法被垃圾回收就會造成memory leak,也就是被物件占用的heap無法被垃圾回收清除並歸還給JVM的狀況。而記憶體不斷流失(不斷被無用的物件給佔用)會影響系統效能,最終導致記憶體耗盡/內存溢出,出現OutOfMemoryError錯誤。

不被參照的物件才會被垃圾回收,因此造成memory leak通常是錯誤的寫法使得物件即使不再被使用但仍持續被參照而無法被垃圾回收。


沒有留言:

張貼留言