以下代码在运行时虽然不会有异常但是左侧会一直有一个小叹号警告
Resource leak: 'sc' is never closed
资源泄露:‘sc'从未被关闭
Scanner对象相当于在计算机与外界之间建立了一个联系,这样就可以传入参数,感觉像是C语言中的scanf()
如果在使用后调用close()方法就不会有警告了,但是要注意关掉以后将无法在使用Scanner,几即便再次声明了一个新的Scanner对象,但可以选择重新初始化Scanner对象,再进行输入就像以下情况
这样就不会抛出异常了,但还是要慎重关闭Scanner。
Scanner的close()方法会关闭System.in,也就是Scanner对象被初始化时所传入的参数,System.in是一个final常量 只能初始化一次,一旦初始化后就不能被赋值
之所以要关闭是因为System.in在第一次声明中会打开InputStream,而输入流是非常占据内存的,所以要及时关闭以提早释放内存
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)