2014-01-29 28 views

回答

3

當JVM停止(中止或退出)時,操作系統將回收所有與該進程相關的內存。這包括在您的本機代碼中分配的任何內存。

1

將會發生所有與普通C代碼一樣的事情。這個內存將被泄露,除非smth會回收它。對於大多數現代操作系統來說,這意味着當進程退出時資源將被釋放。卸載JVM意味着什麼。

1

避免這個問題的常用方法是讓C分配的內存與一些java對象強烈關聯,並在該對象上有一個終結器,它調用JNI方法釋放內存。這樣,垃圾收集器和庫的用戶就會清理乾淨的內容,不需要記住調用清理JNI方法。