finalize

    1热度

    1回答

    好吧,有一个C方法调用一个指针来释放内存区域。 我不希望我的java绑定用户明确地调用这个方法,因为在java中它没有任何意义,这基本上是一个数据结构。 所以,我只是做了一个finalize()重写放在那里的c调用。 无论如何,人们说这是不好的依靠敲定...你有什么更好的主意?

    3热度

    3回答

    我有一个棘手的问题,在我的一些代码中出现。我有一个缓存管理器,可以从缓存中返回项目或调用委托来创建它们(代价高昂)。 我发现我遇到了问题,我的方法的最终部分在其他线程上运行。 这里有一个减少版 public IEnumerable<Tuple<string, T>> CacheGetBatchT<T>(IEnumerable<string> ids, BatchFuncT<T> factory_f

    3热度

    3回答

    我正在阅读Any Exception thrown by finalize method is ignored by GC thread and it will not be propagated further,但忽略GC异常的原因是什么? 该对象的终止也终止,这是否意味着该对象始终保留在内存中?

    0热度

    1回答

    我有一个垃圾收集是我应用程序中的主要瓶颈的情况。会发生什么情况是某些清理费用昂贵的对象 - 它们包含其他对象的数组。所以我想我会尝试回收这些物体。通常情况下,我不知道他们什么时候可以自由回收,所以我想我会重写Finalize,此时我会将它们放入缓存中以供下次需要创建时使用。问题解决了。或者是?

    0热度

    1回答

    我在一个dll(包括一个COM对象)中有一个问题:当dll被卸载时,一些定稿部分被执行,而另一些则不被执行。 在调试器中我可以设法找到System FinalizeUnits()中的问题。这个函数的伪码 - 为了您的方便: procedure FinalizeUnits; var Count: Integer; Table: PUnitEntryTable; P:

    1热度

    3回答

    我在Java7中实现了一个类。它不会继承/实现任何东西。它使用Tess4J,所以我认为最后释放资源将会很好。所以我推翻这样的finalize()方法: @Override protected void finalize() throws Throwable { try { TessAPI1.TessBaseAPIDelete(handle); }

    6热度

    2回答

    我已阅读的关于java finalize方法的所有内容均表示使用而不是。看起来它几乎不能保证被调用,即使它出现问题也可能出现问题。 还有一些问题提出了什么时候使用它,似乎普遍的共识是从不。 我从来没有用它自己(因为警告不主要),我还没有看到它的任何地方使用。 是否有任何适合的情况?有没有别的办法的情况? 如果不是,那为什么呢?是否有内部类使用它并要求方法可用?或者它只是不应该在那里的东西? 我不在

    0热度

    1回答

    如何获得等待定稿的所有对象的列表?这样我就可以手动完成它。 目前我没有得到直接的方法来获取所有对象等待定稿。

    0热度

    1回答

    在下面定义的类中,我使用公共属性来保存Excel.Application对象实例(这是我在单例类中的尝试)。 每当Finalize例程运行,并调用RestoreApp(),它的一个InvalidComObjectException(下面粘贴)上访问该Application对象的构件的第一次尝试抛出。 我写了这个简单的测试程序来揣摩什么锣上,我核实,我可以访问此属性之前被称为Finalize的方法,

    -2热度

    1回答

    class FDemo { int x; FDemo(int i) { x = i; } protected void finalize() { System.out.println("Finalizing " + x); } void generator(int i) { FDemo o = n