Java программирование и сборка мусора - PullRequest
0 голосов
/ 28 октября 2019

У меня есть вопрос из лекции об обсуждении сбора мусора. Я не могу понять, какая строка вызывает сборку мусора.

Я пытался использовать компилятор для запуска программирования, и вывод

#1: [C001, C002]
#2: [C001, C002, C001]
#3: [C001, C002, C001]

Я знаю, что есть строка, которая вызывает сборку мусорано я не могу понять это. В то же время профессор потребовал от нас нарисовать диаграмму, показывающую, как идут объекты и данные, списки.

import java.util.ArrayList;

public class Main {

    public static void main(String[] args) {

        Customer a = new Customer("C001");
        Customer b = new Customer("C002");

        ArrayList<Customer> list1 = new ArrayList<Customer>();
        list1.add(a);
        list1.add(b);
        System.out.println("#1: " + list1.toString()); Icdddd

        ArrayList<Customer> list2 = new ArrayList<Customer>();
        list2 = list1;
        list2.add(a);
        System.out.println("#2: " + list1.toString()); 
        System.out.println("#3: " + list2.toString()); 
    }

}

Ответы [ 2 ]

3 голосов
/ 28 октября 2019

Нет строки, которая вызывает сборщик мусора, потому что сборщик мусора не может быть вызван вами как программистом. Однако после list2 = list1; ссылка ArrayList, созданная ArrayList<Customer> list2 = new ArrayList<Customer>();, имеет значение , отвечающее требованиям для сбора мусора.

0 голосов
/ 29 октября 2019

итак, наконец, профессор сказал, что ответ list2 = list1;которые вызывают сборку мусора, тогда как строка 7 избыточна

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...