相信大家都遇到过如下问题
虽然这个警告并不会对程序执行产生影响,但出于代码应该简洁正确的原则,还是应该尽量消除这些警告
出现该警告的原因:是因为声明了输入流System.in,即数据输入扫描器,错误警告意为:资源泄露,扫描器永远不会关闭。声明以后,系统会自动为其分配相应的内存空间,但在程序运行结束后,并没有释放这部分内存空间,导致空间一直被占用,这就造成了内存资源的浪费,所以出现警告
最常用的解决方法:在main()函数末尾处,也就是程序运行结尾,使用xx.close();函数结束该输入流,从而释放内存空间,如图中的解决方法为:在main()函数末尾加 sc.close();
系统提供的解决方法:
的系统提示要添加 @SuppressWarnings(“resource”),添加到main()函数中或者是整个类中,即
从字面意思理解,Suppress是抑制,压抑的意思,Warnings是警告,所以此语句意味压制警告,也就是说忽略警告。其实@SuppressWarnings(“resource”) 是javase提供的一个批注,作用是允许选择性的取消特定代码段中的警告,也就是忽略这些警告,如果你认为这个警告对于整个程序并无大碍,并且还不想看见这个警告,就可以使用该语句
以上就是一般的解决方案,本着资源最优利用和代码正确的原则,推荐使用xx.close();方法
希望对大家有所帮助!