我真的不了解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?
这是你的代码。如果你不知道,没人知道。我怀疑不是。
顺便说一句:我认为 pst
和 rs
与另一个无关。 ;)
关于java - Java 中方法一致性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11084805/