以下操作中,可能的解决java内存泄露问题的手段有:【多选】( ) 在程序中调用System.gc(); 关掉不再使用的网络/数据库连接; 在程序中调用finalize(); 清理集合类中的无用对象; 在程序中调用Runtime.getRuntime().runFinalization();
我的答案 BD , 首先内存泄露是由于某些无用对象无法回收,对象回收的条件是根搜索算法不可达,那么哪些可以作为根呢
?1.方法区中类静态变量引用的对象。 2
虚拟机栈栈帧中引用的对象。3本地方法栈栈帧中引用的对象。4方法区中常量引用的对象。从这些根出发,不可达的对象就是需要回收的对象。答案A和E 都是提示jvm进行垃圾回收,不能从根本上解决内存泄露。答案c只是在垃圾回收前做一些操作(而且不保证会被执行完)而已。