java中&和&&的区别 位运算-阿里云开发者社区

开发者社区> 分享达人> 正文

java中&和&&的区别 位运算

简介: 1.1. 逻辑与的运算符功能 1.1.1. 测试&& public static void main(String[] args) { int x=5; if (x==6 && saySpringok()) { } } private static boolean saySpringok() { System.out.println("saySpringok"); return false; } 没有输出:因为用的&& 第一个不满足条件则不在判断后面的条件。
+关注继续查看

1.1. 逻辑与的运算符功能

1.1.1. 测试&&

public static void main(String[] args) {
int x=5;
if (x==6 && saySpringok()) {
}
}
 
private static boolean saySpringok() {
System.out.println("saySpringok");
return false;
}


没有输出:因为用的&& 第一个不满足条件则不在判断后面的条件。

修改代码如下:

public static void main(String[] args) {
int x=5;
if (x==5 && saySpringok()) {
}
}
 
private static boolean saySpringok() {
System.out.println("saySpringok");
return false;
}


输出saySpringok

1.1.2. 测试&

public static void main(String[] args) {
int x=5;
if (x==3 & saySpringok()) {
}
}
private static boolean saySpringok() {
System.out.println("saySpringok");
return false;
}


输出saySpringok

修改第一个表达式为true测试如下:

public static void main(String[] args) {
int x=5;
if (x==5 & saySpringok()) {
}
}
private static boolean saySpringok() {
System.out.println("saySpringok");
return false;
}


输出saySpringok

1.1.3. 总结

&&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false

区别:

&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式以及后面的表达式。(如果遇到true就一直向下判断条件直到遇到false的表达式返回)

&不具有短路的功能,逻辑运算表达式条件都会执行。

1.2. 位运算符

&&不支持位运算符 &支持位运算。

 

两个运算的操作数位都为1,结果为1不然结果为0,例如下面的程序段。

// 101
int a=5;
//111
int b=7;
//101 是5 结果是5
System.out.println(a&b);
//100
int c=4;
//100  结果是4
System.out.println(a&c);


1.2.1. 总结

0x0f 15 二进制 1111

我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4bit位,例如,0x31 & 0x0f的结果为0x01

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
一文快速搞定Redis_数据类型及JavaApi操作
大家好,我是**ChinaManor**,直译过来就是中国码农的意思,我希望自己能成为国家复兴道路的铺路人,大数据领域的耕耘者,平凡但不甘于平庸的人。
7 0
【大数据组件】一篇文章让你快速入门Docker
Docker 是什么? Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。 Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。
15 0
【技术干货】40页PPT分享万亿级交易量下的支付平台设计(6)
【技术干货】40页PPT分享万亿级交易量下的支付平台设计(6)
8 0
【技术干货】40页PPT分享万亿级交易量下的支付平台设计(2)
【技术干货】40页PPT分享万亿级交易量下的支付平台设计(2)
7 0
【技术干货】40页PPT分享万亿级交易量下的支付平台设计(4)
【技术干货】40页PPT分享万亿级交易量下的支付平台设计(4)
5 0
【技术干货】40页PPT分享万亿级交易量下的支付平台设计(3)
【技术干货】40页PPT分享万亿级交易量下的支付平台设计(3)
5 0
冬季实战营第一期学习报告
通过五天学习与实操,对ECS云服务器入门、快速搭建LAMP环境、部署MySQL数据库、回顾搭建Docker环境和Spring Boot以及使用PolarDB和ECS搭建门户网站操作,对本期学习与实操的认识。
7 0
Java classloader详解
Java程序并不是一个可执行文件,而是由很多的Java类组成,其运行是由JVM来控制的。而JVM从内存中查找到类,而真正将类加载进内存的就是ClassLoader,可以说我们每天都在接触ClassLoader,但是很多时候我们没有明白其执行的流程和原理。
5 0
冬季实战营第一期:从零到一上手玩转云服务器实验报告
第一期主要进行了六次实验,分别是《动手实操ECS云服务器》、《动手实操快速搭建LAMP环境》、《使用ECS服务器部署MySQL数据库》、《通过workbench远程登录ECS,快速搭建Docker环境》、《从零搭建Spring Boot的Hello World》以及《使用PolarDB和ECS搭建门户网站》。首先远程登陆ECS实例,搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。然后配置及远程访问MySQL。冯晓帅老师在直播上带大家通过workbench登录ECS并快速搭建Docker环境,运行Spring Boot,最后安装WordPress并搭建博客。
8 0
冬季实战营第一期:从零到一上手玩转云服务器学习总结
冬季实战营第一期:从零到一上手玩转云服务器学习总结
6 0
+关注
分享达人
开源爱好者,喜欢钻研新技术。Activiti权威指南一书作者。
131
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载