我开发了一个持续运行的java程序,这个程序出现内存泄漏,程序在运行期间内存会不断增长直到抛出内存溢出异常。
我这个程序使用了死循环与jni技术。
我想问两个问题:
1、虚拟机会不会回收死循环内的对象(在该线程停止之前),如果不会,如何释放掉这些内存。
2、我知道native方法中的字符串与数组等内存需要手动回收,但是return的不需要,由虚拟机来处理,但我我不知道成员变量是不是需要回收内存,因为成员变量是虚拟机来管理的,但是在native方法中要对他们进行操作,如果要回收会不会导致成员变量值变成空而无法使用,因为native是用来赋值的,java里面要调用这些对象成员变量的值。 |
|