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

相关文章
|
1月前
|
Java
Java isBlank和isEmpty的区别
JavaisBlank和isEmpty的区别
17 0
|
1月前
|
存储 Java 数据库
java包装类的作用、基本类型和包装类型的区别
java包装类的作用、基本类型和包装类型的区别
31 0
java包装类的作用、基本类型和包装类型的区别
|
1月前
|
存储 Java 编译器
java和c++的主要区别、各自的优缺点分析、java跨平台的原理的深度解析
java和c++的主要区别、各自的优缺点分析、java跨平台的原理的深度解析
76 0
|
1月前
|
Java 编译器
java中一些方法及其区别
java中一些方法及其区别
|
1月前
|
Java 关系型数据库 MySQL
在Java的反射中,Class.forName和ClassLoader的区别
在Java的反射中,Class.forName和ClassLoader的区别
35 3
|
1月前
|
Java Spring 容器
[JavaWeb]——过滤器filter与拦截器Interceptor的使用、执行过程、区别
[JavaWeb]——过滤器filter与拦截器Interceptor的使用、执行过程、区别
|
1月前
|
设计模式 搜索推荐 Java
java接口和抽象类的区别,以及使用选择
java接口和抽象类的区别,以及使用选择
25 0
|
11天前
|
Java 关系型数据库 MySQL
大厂面试题详解:Java抽象类与接口的概念及区别
字节跳动大厂面试题详解:Java抽象类与接口的概念及区别
34 0
|
22天前
|
Java
java的 isEmpty 和 isBlank 区别?
java的 isEmpty 和 isBlank 区别?
8 0
|
1月前
|
Java Unix 程序员
【Java】Sleep和Wait的区别
【Java】Sleep和Wait的区别
16 0