ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

conn.closed()和conn == null的区别

2020-03-16 12:01:12  阅读:228  来源: 互联网

标签:判断 false closed null true conn


conn.closed()和conn == null的区别

今天,我在连接数据库时遇到了一个问题,所以分享出来.
出错1
出错2
没错,晴乐诗缘本人第一眼也没看出来是什么问题;
然后,我查阅了一系列的资料最终发现,是因为没有搞清楚conn.closed()和conn == null的区别
这是改过后正确的代码:
正确

首先贴出他们俩的区别

1、conn != null 这个是不确定上面的connection是否被初始化而判断的,因为很多时候写代码,使用懒加载模式,一般是先定义一个Connection conn=null,使用的时候才去初始化它的对象,这样可以减少内存的浪费。这个时候如果不确定conn是否被初始化的时候,最好在关闭前加上conn != null判断,不然直接关闭conn有可能报空指针错误。

2、conn.isClosed() 这个是判断当前连接是否被关闭,这个首先要保证Connection已经生成实例了。如果没有生成实例,就会报错,

那么我们的为什么要切换他们的顺序呢?

这里就涉及到 || 运算符的概念;(或运算):
|| 运算符的规则是,当第一个为true时,后面的条件不会判断,直接进入if,而当第一个条件为false时,才会判断第二个条件

第一个条件 第二个条件 结果
true true(不判断) true
true false(不判断) true
false true true
false false false

这是,因为我们在之前的代码中声明了Connection conn = null;
而并没有生成conn 的实例
所以当conn.closed在前面时,就会报出java.lang.NullPointerException的错误;
调换位置后,首先判断了conn == null,当他满足后,并不会判断后一个条件,所以,这样对程序进行了优化;

标签:判断,false,closed,null,true,conn
来源: https://blog.csdn.net/weixin_45297286/article/details/104895608

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有