java中判空

一、概述

  java中判等似乎很简单,==用来判断对象引用(内存地址)是否相同,equals用来判断值是否相同。你可以试用String对象轻松区分这一点。

  那么在null判等(也就是判空操作)时呢?

  可以通过如下代码明白两个判等的比较:

        String name = null;if(null==name){System.out.println("null==name");//通过}if(name==null){System.out.println(name);System.out.println("name==null");//通过
        }String list = null;if(!"demo".equals(list)){System.out.println("demo.equals(list)");//通过}//编译器会在此处提示一个警告:Null pointer access: The variable list can only be null at this locationif(!list.equals("demo")){System.out.println("list.equals(demo)");//不通过}

  1.通过红色字体代码证明了String类型在==判等时

   谁放前,谁放后是一样的。而null==xxxx这样的写法,我觉得只是一个规范习惯的方式,保证你不会少写=,因为你写null=xxx编译器肯定会给你报错。

   那么,除了String类型的对象,其他类型的对象呢?是否在试用==时也是谁放前谁放后没有区别呢?

  NullEquals e = null;if(e==null){System.out.println("e==null");//通过
   }if(null==e){System.out.println("null==e");//通过}

   结果也一样,证明了null判等这件事上,哪中对象是无所谓的,谁放前放后都可以。

  2.通过蓝色字体的代码证明了使用equals方法时,必须将非空的对象放在前面,null的对象一定不能放在前面。

    所以这里要养成"".equals()方法来判空的操作

二、注意

  这两个判等操作墨守成规的,你实现某个类,重写它的equals方法最好也是用来判断他们的值是否相等,否则其他程序员在使用时容易误会。

总结:判空时,养成null在前是个好习惯

   判等时,为了避免被判断对象可能为空,所以把肯定不为空的对象放到前面是个好习惯

注:以上代码都经过测试

 

转载于:https://www.cnblogs.com/brolanda/p/4702416.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/492004.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浙大神经中心李晓明教授团队在《自然-神经科学》发文发现恐惧情绪的新环路...

左起:余小丹,沈晨杰,付佳毓,王浩,李晓明,李春悦,郑迪来源 : 浙江大学神经科学研究所北京时间4月29日23时,浙江大学医学院李晓明教授课题组在《自然-神经科学》(Nature Ne…

MTK+Android编译

1. 修改recovery代码 比如mediatek\custom\itek82_wet_kk\recovery\inc\cust_keys.h ./mk r k ./mk recoveryimage 更新recovery.img2.修改factory代码 factory mode related program and resources are built-in to system.img ./mk mm mediate/factory ./mk snod这会生成生成…

人工智能的社会、伦理与未来

来源:澎湃新闻人工智能的创新与社会应用方兴未艾,智能社会已见端倪。为了推动人工智能的社会、伦理与未来研究,构筑国内相关研究的网络与平台,中国社科院科学技术和社会研究中心、国家社科基金重大项目“智能革命与人类深度科技化…

Debug Assertion Failed _CrtlsValidHeapPointer(block) realloc堆引发的错误

应用场景 二级指针的应用中堆的处理 问题描述&#xff1a; realloc后出现堆错误 #include"algorithm.h"//数组插入元素 int insert(int **pp ,int &n,int tmp, int pos) {if (0 < pos&&pos < n){int *po *pp;//保存 旧一级指针int *pnNULL;//…

POJ 3928 amp; HDU 2492 Ping pong(树阵评价倒数)

主题链接&#xff1a; PKU:http://poj.org/problem?id3928 HDU:http://acm.hdu.edu.cn/showproblem.php?pid2492 Description N(3<N<20000) ping pong players live along a west-east street(consider the street as a line segment). Each player has a unique skill…

观点 | 李飞飞最新访谈:我每天都在对AI的担忧中醒来

来源&#xff1a;AI科技评论是的&#xff0c;最近这些年&#xff0c;无人机可以说是爆发式发展。以前&#xff0c;它仅用于神秘的军事用途。如今&#xff0c;却在我们的日常生活中见怪不怪。人工智能对人类会产生什么影响&#xff0c;一直是值得讨论的话题&#xff0c;它会更好…

数字图像处理 图像变换

数字图像基础参考资料一、人眼视觉特性二、图像基本知识1.图像类别2.图像输入3.图像输出三、图像处理1.图像类型转化2.图像变换点变换代数运算几何运算参考资料 一、人眼视觉特性 韦伯率:50%概率感觉到亮度变化时的 ΔII\frac{\Delta I}{I}IΔI​为韦伯率。 韦伯-费希纳定律&a…

超乎想象!关于5G无人机的最强科普!

来源&#xff1a;鲜枣课堂/xzclasscom说到无人机&#xff0c;大家一定都非常熟悉。是的&#xff0c;最近这些年&#xff0c;无人机可以说是爆发式发展。以前&#xff0c;它仅用于神秘的军事用途。如今&#xff0c;却在我们的日常生活中见怪不怪。我们身边出现了越来越多的无人机…

linux处置服务Iptables

一&#xff1a;Iptables防火墙服务 iptables分为两个部分&#xff1a;一个部分在内核中实现&#xff0c;一个为用户接口命令iptables,用户通过该命令来改动防火墙的功能。所以&#xff0c;iptables要使用对应的功能。必需要在内核中加入对应的模块。modprobe加入模块 1&#xf…

相关与卷积、各种误差

相关和卷积相关自相关性质卷积公式物理意义性质相关 自相关 自相关函数就是信号x(t)x(t)x(t)和它的时移信号 x(tτ)x(t\tau )x(tτ) 的乘积平均值。它是时移变量 τ\tauτ 的函数。 “自相关”这种数据处理方法&#xff0c;可以发现隐藏在杂乱信号中的有用信息。这个能力是…

报表reprot

if (contextMenuStrip1.Items[i].Text.Trim() "打印"){//1.在报表上绘制数据列&#xff0c;print.列名称&#xff08;如果是直接在数据源中连接数据库去拖数据列&#xff0c;不能共用&#xff09;//2注册的dt,print 表名.调用找到时根据表名//数据区域的类型DataBan…

5G全产业链最新解读

来源&#xff1a;中创产业研究院摘要&#xff1a;自5G概念的提出&#xff0c;各国相关技术的研发以及产业布局也在如火如荼进行之中。与此同时我国5G在标准研发上正逐渐成为全球领跑者&#xff0c;有望在2019年实现5G技术的试商用&#xff0c;在2020年实现正式商用。本文将围绕…

函数参数传递、数组指针、二级指针、左值、引用

数组和指针的区别 数组内地址一定连续&#xff0c;指针则不一定连续。数组赋值要么初始化就设定&#xff0c;要么循环元素赋值。而指针随时可以赋值(改变指向)。数组的存储空间&#xff0c;不是在静态区就是在栈上。指针位置随意。sizeof&#xff08;数组名&#xff09; 元素个…

下一个汽车万亿市场打开!氢能源时代正到来

来源&#xff1a;智东西内参看点&#xff1a;中国氢能汽车产业产值有望突破万亿元大关。氢能汽车是以氢为主要能量作为移动的汽车。氢能被视为全球最具发展潜力的清洁能源之一&#xff0c;并被不少国家、车企及学者认为是“终极新能源汽车解决方案”。伴随着汽车保有量持续增长…

高斯噪声和椒盐噪声

clear all;clc;close all; imimread(1.jpg); % oim; [w, h ,z]size(im); imrgb2gray(im); oim;%原图备份 figure;seq0; seqseq1;subplot(2,2,seq);imshow(im);title(原图);posaxis;xlabel(,position,[(pos(1)pos(2))/2 pos(4)]);%高斯噪声 gaunormrnd(0,0.1,w,h); im1im2double…

去苹果浏览器默认样式

去苹果浏览器默认样式 input,textarea,button { -webkit-appearance: none; border-radius:0px; border:none;}转载于:https://www.cnblogs.com/mcdnf/p/5158248.html

李彦宏/王坚/王传福等上榜“中国工程院2019院士增选候选人”引争议,实至名归吗?...

来源&#xff1a;物联网智库导 读五一小长假前一天&#xff0c;中国工程院网站公布了2019年工程院院士增选有效候选人名单。经中国工程院主席团审定&#xff0c;最终确定的有效候选人共531位。值得注意的是&#xff0c;BAT微软比亚迪等高管均上榜。此次中国工程院531名候选人的…

矩阵转置函数——指针自增的陷阱

#include"algorithm.h"int** transpose(int**po, int &m, int &n) {int*p (int*)malloc(m*n*sizeof(int));//转置矩阵空间int**pn (int**)malloc(n*sizeof(int*));//转置矩阵数组指针//指针备份int *save po[0];int *nSave p;//布置转置矩阵// [1 2 3 4 …

号称能自动编程60年,“进化计算”究竟进化到哪一步了?

大数据文摘出品来源&#xff1a;ponderwall编译&#xff1a;stats熊、钱天培大胆想象一下&#xff0c;如果计算机可以自行编写程序&#xff0c;这会为人类带来什么样的变化&#xff1f;与其辛苦研究计算机解决问题的方法论&#xff0c;敲出精准的代码&#xff0c;不如告诉计算机…

动态规划——数塔问题

从原点&#xff08;顶层&#xff09;出发&#xff0c;只能向左或者向右&#xff0c;找到一条路径使得路径上的数字和最大: #include<stdio.h> //#include"algorithm.h" #define N 100int max(int a, int b) {return a > b ? a : b; }int main() {int a[N…