Java软件低级错误:短路运算和非短路运算的区别
解读:
逻辑或(||):如果左操作数结果为false,则继续计算右操作数;如果左操作数结果为true,则对右操作数的运算已经没有必要,直接返回结果true,忽略右操作运算。
逻辑与(&)、逻辑或(|):不管左操作数的运算结果如何,都一律计算右边的操作数。
SysRecord sr = sds != null ? sds.getParamSet() : null;
rs = (sr != null & sr.getInt(0) == 0) ? sds.getResultSet() : null;
上面的代码有可能会造成空指针错误,代码中使用的是非短路与(&),也就是不管左边的sr != null的结果如何,都一律运算右边的sr.getInt(0) == 0,那如果遇到sr为null值的情况,则一样也会调用到sr.getInt(0),显然就会出现空指针异常。解决这个问题的最好选择是改用短路运算与(&&),如下面代码段所示。
SysDataSet sds = con.csCommonSP("P_GETFILE");
SysRecord sr = sds != null ? sds.getParamSet() : null;
rs = (sr != null && sr.getInt(0) == 0) ? sds.getResultSet() : null;
转载于:https://blog.51cto.com/wadejames/578668
Java软件低级错误:短路运算和非短路运算的区别相关推荐
- 解释一下java的短路运算,Java短路运算符和非短路运算符详解
Java短路运算符和非短路运算符详解 时间:2017-09-15 来源:互联网 你了解Java短路运算符和非短路运算符吗?短路运算符就是我们常用的"&&". ...
- java 阻塞与非阻塞_简述JAVA同步、异步、阻塞和非阻塞之间的区别
同步和异步,阻塞和非阻塞是大家经常会听到的概念,但是它们是从不同维度来描述一件事情,常常很容易混为一谈. 1. 同步和异步 同步和异步描述的是消息通信的机制. 同步 当一个request发送出去以后, ...
- 短路逻辑运算符和非短路逻辑运算符
没想到毕业工作后还会有随堂测试[旺财],有题如下: 根据下面的代码: String s = null; 会抛出NullPointerException异常的有(). if( (s!=null) &am ...
- java 的 非短路_Java 短路运算符和非短路运算符
短路运算符就是我们常用的"&&"."||",一般称为"条件操作". class Logic{ public ststic v ...
- java魔鬼数字指什么_Java软件低级错误(五):魔鬼数字
¨解读 在代码中使用魔鬼数字(没有具体含义的数字.字符串等)将会导致代码难以理解,应该将数字定义为名称有意义的常量. 将数字定义为常量的最终目的是为了使代码更容易理解,所以并不是只要将数字定义为常量就 ...
- Java |与|| 、与 ,或与非的使用和区别
目录 前言 一."与"和"或"的定义区别 二.&.&& 使用和区别 三.|.||的使用和区别 前言 在平时的开发工作当中,经常会使用到i ...
- 面试题系列——1.科大讯飞java软件开发
面试题系列--1.科大讯飞 java软件开发 面试官问题: 1.equal和的区别 a.比较两个基本数据类型时用,因为只有类才有eqaul方法 b.比较对象为引用数据类型时,都是比较的对象的地址.所以 ...
- 新java十大低级错误
1 前言 为了规范大家的编程行为,借鉴前人的编程经验,避免低级错误的不断发生,特发布MDSP产品Java十大低级错误,供所有Java开发人员学习. 2 Java十大低级错误 1 ...
- Java编程10大低级错误
今天面试时HR问我一个关于数据库性能调优的问题,对于我的回答引发了她的另一个问题:Java 10大低级错误 知不知道?这个在以前公司的时候还真的提过这个问题,但是我实在是...在网上搜了一下,拿来分享 ...
- java 职场厚黑学之一职场十大低级错误
原文地址:http://down.51cto.com/data/1899748 如有侵犯,请告知,及时删除 ...
最新文章
- mac修改默认python版本_Anaconda/MacOS:更改默认python版本
- IOS学习动画二之 Core Animation (3)
- SQL(Oracle)日常使用与不常使用函数的汇总
- 你必须知道的23个最有用的Elasticseaerch检索技巧
- caffe 中的超参
- 软件工程导论复习知识点
- 安航云酒店管理系统面试话术
- 重装电脑系统前,如何设置BIOS ?
- 自然语言处理 情绪识别
- 网站403错误解决方案
- Word学习笔记:P5-标尺和定位点要如何使用
- 网页万能命令[wn.run/]
- 【小样本实体识别】Few-NERD——基于N-way K-shot的实体识别数据集和方法介绍
- 登录psn 服务器无响应,链接psn服务器超时
- php用户抽奖次数怎么做,获取用户剩余抽奖次数
- Windows Linux 实用技巧
- Wince Linux 屏幕校准
- 【安卓逆向】护眼软件去广告教程(简单详细)软件名护眼宝
- 数据结构实验1单链表
- 深入c语言pdf,深入体验C语言项目开发1.pdf
热门文章
- JMX系列之JmxMBeanServer
- webgl 包围盒子
- (01背包 排序+特判)饭卡(hdu 2546)
- Oracle笔记(九) 表的创建及管理
- AjaxControlToolKit(整理)三.......(35个控件)简单介绍
- Windows窗体编程基础学习:更改TabControl 的外观(如qq用的)
- glassfish 自定义 jaas realm
- nginx搭建高性能流媒体技术
- requestLayout invalidate postInvalidate
- Android ListView的背景和黑色边缘化的问题