专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

Javase(&与&&的区别和联系)

1、相同点

&和&&都是逻辑与的运算符,当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。

2、不同点

(1)&&与&的不同点:

  • 如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算;但是,&即使在左边为false的情况下依旧会对右边的式子做出计算。
  • 当&进行运算的数据的类型非布尔型的时候会进行位运算

(2)&&的运用:

很多时候我们可能都需要用&&而不是&,例如:在验证用户登录时判定用户名不是null而且不是空字符串:

username != null &&!username.equals(" ");

左边判断数据库中是否有该用户名(用户不存在),右边则判断用户的用户名是否为空字符串(用户存在,但是用户名为空字符串)。

二者的顺序不能交换,更不能用&运算符,因为第一个条件如果不成立,根本不能进行字符串的equals比较,否则会产生NullPointerException异常(不先进行username的非空校验而是直接判断username是否是一个字符串,这样就是默认username不为空;而先进行非空校验,如果为空就不会进行是否是空串的校验,就避免了空指针异常的发生)。

(3)&的运用:位运算符

当&操作符两边的表达式不是布尔类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x34 & 0x0f的结果为0x04(需要将十六进制转换为二进制,然后逐位进行与运算即可)

3、null与“”的区别

null:代表声明了一个空对象,他没有地址,可以赋给任何对象,它是不占用内存的

“”:代表声明了一个对象实例,这个对象实例的值是一个长度为0的空字符串,也就是说地址没有内容,需要为其分配内存

文章永久链接:https://tech.souyunku.com/22827

未经允许不得转载:搜云库技术团队 » Javase(&与&&的区别和联系)

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们