小编ami*_*ham的帖子

可能通过FinalizerReference泄漏内存

我有一个小的Android应用程序,我试图寻找内存泄漏,所以我点击"转储Java堆",并在列表上第一类是FinalizerReference(的java.lang.ref).它有超过500个实例,每个实例都有一个'next'和'prev'到另一个FinalizerReference.

我知道FinalizerReference来自实现Object.finalize()的对象,但我的应用程序中没有实现它的对象.我怎样才能找出泄漏发生的原因并修复它?

在此输入图像描述

java android memory-leaks

22
推荐指数
1
解决办法
7048
查看次数

Java的'=='运算符是双精度数

此方法返回'true'.为什么?

public static boolean f() {
   double val = Double.MAX_VALUE/10;
   double save = val;
   for (int i = 1; i < 1000; i++) {
       val -= i;
   }
   return (val == save);
}
Run Code Online (Sandbox Code Playgroud)

java floating-point equals-operator

9
推荐指数
1
解决办法
369
查看次数

在有向图中查找所有根

我需要找到一种算法,用于在有向图中找到所有根,在O(n + m)中.

我有一个查找单个根的算法:

  1. 在V中的某些v上运行DFS(v).如果结果是单个生成树,则v是根.否则,结果就是一片树林.然后:
  2. 在最后一棵树的根目录上运行DFS(u).如果结果是单个生成树,则u是根.否则,图中没有根.

现在,如果我想找到所有的根,那么每次在最后一棵树的不同顶点上运行上述算法O(n)次的最佳方法是什么?假设我找到了一个根,如果存在另一个根,那么它必须在最后一棵树上,那么如果我继续运行上述算法直到收到"没有根存在"或者直到遍历所有顶点,那么它是O(n + m)吗?

提前致谢 !

algorithm tree directed-graph root

5
推荐指数
1
解决办法
9612
查看次数