Утечка памяти

0
25 апр 2016 17:00
Всем привет. Подскажите пожалуйста будет ли в таком случае утечка памяти (если не очищать arraylist)?
Есть класс А. В нем есть static класс B (в нем 3 string переменные, 1 функция и 1 статический класс С)

public class A {
B value;

static class B {
String str1,str2,str3;

static class C {
String val1,val2;

C (val1,val2) {
this.val1 = val1;
this.val2 = val2;
}
}

void parsStr(String Str) {
List <C> mas = new ArrayList <c> ();
//Тут например в цикле заполняем mas.add(new C(String val1,String val2))
// В конце получаем данные из ArrayList
str1 = mas.get(0).val1;
str2 = mas.get(0).val2;
srt3 = "sdfs";
}


// Функция make будет вызываться 100к раз
void make () {
value = parsStr("бла бла бла")
}

}

Ответов: 3

0
26 апр 2016 15:22
Собственно непонятно как будет очищаться этот лист, он полностью очистится когда выйдет за пределы функции parsStr, частично очистится (вроде же str1 и str2 ссылаются на объекты этого листа) или вообще GC его не очистит
0
26 апр 2016 08:05
С чего вдруг утечка? У вас же будут храниться ссылки на строки. ArrayList уходит
0
26 апр 2016 05:41
давным-давно, когда ява была молодой и медлительной, можно было создавать острава данных зацикленных на себе.
это уже давно пофиксили.
короче не парься - придёт мусорщик и выметет всё лишнее.
Модераторы: Нет
Сейчас эту тему просматривают: Нет