Non, les deux ne sont pas la même affaire
Dans le deuxième exemple de votre, question PrintWritter sera immédiatement se rapprocher pw.close moment() se sont exécutées.
Dans le premier cas de votre question, l'imprimeur ne sera pas fermé immédiatement. Après avoir appelé -> new PrintWriter (ExampleStream) .print() puisque vous n'avez aucune référence à son objet, vous ne pouvez donc plus utiliser ce même objet, ce qui signifie qu'il est éligible pour être supprimé par garbage collector. Comme nous ne pouvons pas dire quand le garbage collector fonctionnera c'est pourquoi il n'y a aucune certitude sur quand cet objet sera enlevé. une chose plus importante à garder à l'esprit est que même si cet objet peut être supprimé par le garbage collector mais que ce processus n'est pas le même que pw.close()
Pourquoi pensez-vous que ce serait le cas? – Tunaki
Peut-être parce AutoCloseable? Je ne suis pas vraiment sûr de ce que fait cette interface. – nickkoro
Cette interface est utile pour l'instruction try-with-resources. Voir ici https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html – Tunaki