我需要知道何时finalize()调用该方法JVM.我创建了一个测试类,当finalize()通过覆盖它来调用方法时,该测试类会写入文件.它没有被执行.谁能告诉我它没有执行的原因?
我以前会问这个问题,但我在这里找不到......
我已经使用SWIG在C++类周围创建了一个JNI包装器.一切都很好,除了Java似乎永远不会调用类的finalize(),因此反过来,我的类的析构函数永远不会被调用.类的析构函数执行一些最终文件I/O,所以不幸的是,这不仅仅是一个小的内存泄漏.
通过Google搜索,似乎没有办法强制Java到GC并销毁对象.真正?
我知道我可以操作我的SWIG文件并创建一个可以调用C++析构函数的java函数,但是这个类被最终用户用在几种不同的平台/语言中,所以添加一个Java只会造成我们的技术不一致作家们不会喜欢.