为了账号安全,请及时绑定邮箱和手机立即绑定

关闭流的问题

if(socket != null)
   socket.close();
   既然不为空,为什么还要关闭?


正在回答

3 回答

没有上下文的代码只能猜测,强答一发。socket.close()这个方法调用是需要具体的对象的如Socket socket = new Socket(8888);如果没有对象只有引用,那么就会初始化为null,在null这个无意义的数据上是无法产生有意义的结果的。有点偏题。。。。socket如果不为空,那么一定有一个Socket对象被打开,当使用完后资源没有close就会占用资源,可能造成别的程序无法访问资源。。。但是这个if是感觉没必要的,在null上调用close是没有意义的,个人见解,欢迎指教

0 回复 有任何疑惑可以回复我~
#1

L雨泽 提问者

非常感谢!
2017-04-18 回复 有任何疑惑可以回复我~
#2

慕少7573967

不对吧,你这样回答,你可以尝试为空时候的异常。
2017-09-28 回复 有任何疑惑可以回复我~

当为空的关闭时会出现异常,你自己可以尝试下的。当为空的时候,代表未成功创建

0 回复 有任何疑惑可以回复我~
我的理解是socket 不为空说明有内容,当socket关闭的时候,输入输出流也会跟着关闭,借鉴学缓冲流时的缓冲输入流在关闭的时候会将所有缓冲区的数据全部写入文件,当输入输出流关闭的时候,内存中相应的数据才会得到处理?我也不知道对不对?求指教
0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关闭流的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信