java - Java 中方法一致性问题

标签 java memory-management synchronization enumeration

我真的不了解java内存管理,所以这完全是我的错,我只需要指出解决方案的方向。

我正在处理一个巨大的数据集。我有一个方法,它接受一个字符串作为输入并返回一个值。该值基于字符串的内容。如果我缓慢、精细、一次性地执行此操作:

while (!input.equals("#")) {

        System.out.print("Input input (logical redundancy): ");
        Scanner scan = new Scanner(System.in);
        input = scan.nextLine();

        Analyzer analysis = new Analyzer(new Dictionary());
        System.out.println(analysis.analyzeString(input));
    }

没有任何问题,并且完全一致。 Dictionary 对象是一个数组列表,其中包含某些单词的 key 对信息。

但是,如果我尝试在更大的枚举范围上应用该方法,那么我会从分析方法返回错误的数据。就比例而言,这些值在正确的范围内,但它们与应有的字符串不对应。至少在我看来,返回的数据只是随机的。我尝试了各种尝试枚举的方法,但这就是我现在所拥有的:

while (rs.next()) {
            int id = rs.getRow();
            Analyzer analysis = new Analyzer(dict);
            String entry = rs.getString(5);
            double val = analysis.analyzeString(entry);
            pst.setDouble(1, val);
            pst.setInt(2, id);
            System.out.println(val + " : " + rs.getString(5));
            pst.executeUpdate();
}

在该尝试中,即使输入相同的字符串,与 analyzeString 方法返回的结果也存在极大的不一致。我该如何解决不一致问题?这与同步有关吗?

最佳答案

要调试您的代码,我建议您使用调试器单步调试代码。在 IDE 中,它是运行旁边的按钮。

<小时/>

I really don't know squat about java memory management,

我怀疑这与此无关。

How can I fix the inconsistency?

澄清不一致的含义。这可能意味着任何事情。在您充分了解问题所在之前,修复它非常困难。

Does it have to do with synchronization?

这是你的代码。如果你不知道,没人知道。我怀疑不是。

顺便说一句:我认为 pstrs 与另一个无关。 ;)

关于java - Java 中方法一致性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11084805/

相关文章:

java - 似乎无法将 KStream<A,B> 转换为 KTable<X,Y>

iPhone/Objective-C - QuartzCore 库中的内存泄漏

c++ - 从 Qt 中的多个线程绘制

java - "ProcessBuilder.command"的参数语法

java 数组创建复杂性

algorithm - 以下递归代码片段的时间和空间复杂度是多少?

java - volatile 关键字 : is the variable I am using among two threads synchronized?

linux - 如何在 latest 和 latest-1 版本之间进行 dssc 差异

java - 如何在 Java 中重现 EXCEPTION_STACK_OVERFLOW 错误

iphone - 通过赋值自动释放前一个对象