美文网首页程序员Java 杂谈
关于System.out.close()的一点记录

关于System.out.close()的一点记录

作者: 飞来来 | 来源:发表于2017-12-10 21:17 被阅读98次

    我们都知道平常在写代码的时候会写出System.out.println("")这种输出语句,我们都是知道这是一种输出流,而涉及到输出输入流的,一般都需要关闭,也就是调用close()。那么为什么在用到System.out.println()这种语句的时候一般不会调用System.out.close()语句?在生产上使用System.out.println()会不会产生大量句柄,导致资源泄露呢?

    答案其实很简单,我们查看源码会发现,其实out是PrintStream的一个静态实例,如下图:


    如果使用的流是静态的,那么无论调用多少次都不会有影响,也不会导致资源泄露的问题。当然如果是通过new PrintStream()实例化的流,那么就需要自己调用close来关闭流。

    那么如下图的代码执行后,会输出哪些语句呢?


    当然在System.out.close()后,流被关闭了,后续所有的输出语句在执行后都不会输出到控制台了。

    相关文章

      网友评论

        本文标题:关于System.out.close()的一点记录

        本文链接:https://www.haomeiwen.com/subject/kohjixtx.html