2017-01-03 4 views
0

В следующем коде я отправляю сообщение (broadcastMsg) ко всему списку сокетов, указанному в clientSocketLister.Будет ли объект PrintWriter собираться в мусор, если мы используем метод flush(), но не close() в java?

Объект PrintWriter активирован с включенным автозапуском!

Мой вопрос: будет ли создатель PrintWriter, созданный в цикле for, собирать мусор, даже если для закрытия потока не существует метода close()?

Пожалуйста, помогите !!

for(int i = 0; i < size; i++) 
{ 
    Socket clientSocket = (Socket)clientSocketLister.get(i); 
    //PrintWriter with autoFlush enabled 
    PrintWriter writer = new PrintWriter(clientSocket.getOutputStream(), true); 
    writer.println(broadcastMsg); 
} 

ответ

0

Объект PrintWriter не получает право на GC, когда больше нет достижимые ссылки на него. Имел ли он или не вызвал close(), не имеет к этому никакого отношения.