1

私は本当に Java メモリ管理についてスクワットを知らないので、これは完全に私のせいです。解決策の方向性を指摘する必要があります。

私は巨大なデータセットを扱っています。文字列を入力として受け取り、値を返すメソッドがあります。その値は、文字列の内容に基づいています。これをゆっくりと、きめ細かく、1 回限りで行うと、次のようになります。

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オブジェクトは、特定の単語のキー ペア情報を含む配列リストです。

ただし、そのメソッドをより大きな列挙スケールに適用しようとすると、analyze メソッドから不適切なデータが返されます。スケールに関しては、値は適切な範囲にありますが、想定されている文字列に対応していません。返されたデータは、少なくとも私の目には、単純にランダムです。列挙を試みるさまざまな方法を試しましたが、これは私が今持っているものです:

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その試みでは、同じ文字列が入力されたとしても、メソッドから返される結果に極端な矛盾があります。不整合を修正するにはどうすればよいですか? 同期と関係がありますか?

4

2 に答える 2

1

まず、矛盾を定義してください。つまり、予期しない値を取得していると思います。その場合は、ループ内の入力と出力を印刷して、渡していると思われるものを渡しているかどうかを確認してください。クエリ結果の 5 列目の値を渡していることがわかります。Did you remember that it is not 0-based index, but 1-based index?

第二に、Analyzer のインスタンス化をループ外に保つことは可能ですか?

Analyzer analysis = new Analyzer(dict);
while (rs.next()) {
            int id = rs.getRow();

            String entry = rs.getString("Use_Column_name_Here_to_be_SAFE");
            double val = analysis.analyzeString(entry);
            pst.setDouble(1, val);
            pst.setInt(2, id);
            System.out.println(id+": "+ val + " : " + entry);
            pst.executeUpdate();
}
于 2012-06-18T14:24:44.473 に答える
1

コードをデバッグするには、デバッガーでコードをステップ実行することをお勧めします。IDE では、次のボタンが実行されます。


私はJavaのメモリ管理についてしゃがむことを本当に知りません。

どう考えても関係ないと思います。

不整合を修正するにはどうすればよいですか?

矛盾の意味を明確にしてください。それは何を意味するかもしれません。問題が何であるかをよく理解するまで、それを修正することは非常に困難です。

同期と関係がありますか?

そのあなたのコード。あなたが知らないなら、誰も知りません。ないと思います。

ところで:私は別のものpstrsは何の関係もないと思います。;)

于 2012-06-18T14:24:53.087 に答える