Может ли следующий код вызвать утечку памяти? Действительно ли использование 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 (который, в данном случае, я даже не уверен, КАК вы будете его использовать), это может вызвать утечку памяти. Есть ли ЛЮБОЙ случай, который кто-либо видит здесь, где это может вызвать утечку памяти или проблемы с производительностью...?