Будет ли PrintWriter без присваивания переменной закрываться после использования?

Является

new PrintWriter(ExampleStream).print("Just Something");

такой же как

PrintWriter pw = new PrintWriter(ExampleStream);
pw.print("Just Something");
pw.close();

Так что PrintWriter закроется?

2 ответа

Решение

Нет.

И технически термин анонимный в Java относится к созданию локального класса без имени. То, что вы сделали, это просто создали экземпляр класса, не назначая его переменной.

Нет, они оба не одинаковые

Во втором примере ваш вопрос PrintWritter закроется немедленно, как только будет выполнен pw.close(). в то время как

В первом случае вашего вопроса, издатель не будет закрыт сразу. После вызова -> new PrintWriter(ExampleStream).print(), поскольку у вас нет ссылки на его объект, поэтому вы не можете снова использовать этот же объект, что означает, что он может быть удален сборщиком мусора. Как мы не можем сказать, когда будет запущен сборщик мусора, поэтому нет уверенности в том, когда этот объект будет удален. еще одна важная вещь, которую нужно иметь в виду, это то, что этот объект может быть удален сборщиком мусора, но этот процесс отличается от pw.close()

Другие вопросы по тегам