1

次のコードでメモリ リークが発生する可能性はありますか? StringBuffer を使用すると、実際にメモリ使用量が改善されますか?

ちょっとした背景: ある同僚がメモリ リークに関する彼の理論を推し進めており、これは彼が (プロファイリングを一切行わずに) 問題のあるコードであると特定したコードであり、メモリ リークを引き起こす可能性があると彼は主張しています。私はこれに同意しないので、他の開発者に第三者の意見を求めようと思いました。

 List partCollection = new ArrayList()

 String partKeyID = null;
 String sPartNbr = null;
 String partDescription = null; 

 while(rsPartRes.next())
 {
        partKeyID = rsPartRes.getString("PART_KEY_ID"); 
        sPartNbr = rsPartRes.getString("PART_NBR"); 
        partDescription = rsPartRes.getString("PART_DESC");

        SomeValueObject someValueObject = new SomeValueObject();
        someValueObject.setPartKeyID(partKeyID);
        someValueObject.setSPartNbr(sPartNbr);
        someValueObject.setPartDescription(partDescription);

        partCollection.add(someValueObject);
 }

このコードでは、rsPartRes が ResultSet であり、100 以上のレコードを含むことができると想定します。基本的に、彼の懸念は、この結果セットをループしており、StringBuffer を使用していないため (この場合、どのように使用するかさえわかりません)、メモリ リークが発生する可能性があることです。これがメモリ リークやパフォーマンスの問題を引き起こす可能性があると思われるケースはありますか?

4

3 に答える 3