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;
}
没有输出:因为用的&& 第一个不满足条件则不在判断后面的条件。
修改代码如下:
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,不然结果为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来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。
java中&和&&的区别 位运算的更多相关文章
- Java 中>>和>>>的区别
Java 中>>和>>>的区别 Java中的位运算符: >>表示右移,如果该数为正,则高位补0,若为负数,则高位补1: >>>表示无符号右移 ...
- Java中equal和==区别及String创建过程
Java中equal和==区别 1.起因 在一段Java代码中,使用了两种实现方式. //第一种命令行输入 int main (String[] args) { if(args[0] == " ...
- Java中四舍五入保留两位小数
Java中四舍五入保留两位小数 方法一 四舍五入 double f = 3.15; long res = Math.round(f); #结果 res = 3 保留两位小数 double f = 3. ...
- .NET和JAVA中BYTE的区别以及JAVA中“DES/CBC/PKCS5PADDING” 加密解密在.NET中的实现
场景:java 作为客户端调用已有的一个.net写的server的webservice,输入string,返回字节数组. 问题:返回的值不是自己想要的,跟.net客户端直接调用总是有差距 分析:平台不 ...
- Java中&&和&的区别
Java中&&和&都是表示与的逻辑运算符,都表示逻辑运输符and,当两边的表达式都为true的时候,整个运算结果才为true,否则为false. &&的短路功能 ...
- Java I/O : Bit Operation 位运算
Writer :BYSocket(泥沙砖瓦浆木匠) 微 博:BYSocket 豆 瓣:BYSocket FaceBook:BYSocket Twitter ...
- Java 中 && 和 & 的区别
在java中&和&&都属于逻辑运算符,都是判断两边条件为真时为真,否则则为假. 在程序中: int i = 1; if ((i++ > 1) & (i++ > ...
- 【Java基础】14、位运算之——按位与(&)操作——(快速取模算法)
学习redis 字典结构,hash找槽位 求槽位的索引值时,用到了 hash值 & sizemask操作, 其后的scan操作涉及扫描顺序逻辑,对同模的槽位 按一定规则扫描! 其中涉及位运算 ...
- 在C#中对枚举进行位运算--枚举组合
由于枚举的基础类型类型为基本的数值类型,支持位运算,因此可以使用一个值表示多个枚举的组合,在定义枚举时需要指定枚举数为2的幂指数方便进行位运算,即枚举数为1,2,4,8…,或1,1<<1, ...
随机推荐
- [HNOI2001]软件开发
题目描述 某软件公司正在规划一项n天的软件开发计划,根据开发计划第i天需要ni个软件开发人员,为了提高软件开发人员的效率,公司给软件人员提供了很多的 服务,其中一项服务就是要为每个开发人员每天提供一块 ...
- bzoj 1558: [JSOI2009]等差数列
Description Solution 把原数组变为差分数组,然后剩下的就十分显然了 区间查询用线段树维护 修改操作就是区间加法和两个单点修改 一个等差数列实际上就是 开头一个数字+数值相等的一段 ...
- 洛谷P3233 [HNOI2014]世界树
虚树= = #include<cstdio> #include<cstdlib> #include<algorithm> #include<cstring&g ...
- 2014-10-30NOIP复习题1
Problem 1 Graph (graph.cpp/c/pas) [题目描述] 给出 N 个点,M 条边的有向图,对于每个点 v,求 A(v) 表示从点 v 出发,能到达的编号最大的点. [输入格式 ...
- Uva 437 巴比伦塔 && UVA10003
要求底面严格小于它下方立方体的长宽,求出最高情况,一块石头可以多次使用 用结构体记录一块石头的三种放置情况,按面积排序. dp[i] = max(dp[i],dp[j] + block[i].high ...
- poj 1113 凸包周长
Wall Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 33888 Accepted: 11544 Descriptio ...
- Ubuntu 16.04 Vim安装及配置
安装VIM 默认已经安装了VIM-tiny acewu@acewu-computer:~$ locate vi | grep 'vi$' |xargs ls -al lrwxrwxrwx 1 root ...
- SpringCloud学习之eureka集群配置
一.集群方案及部署思路: 如果是单节点的注册中心,是无法保证系统稳定性的,当然现在项目部署架构不可能是单节点的. 集群节点的部署思路:通过运行多个实例并请求他们相互注册,来完成注册中心的高可用性(结伴 ...
- I/O控制的主要功能
主要功能: 1. 解释用户的I/O系统调用.将用户I/O系统调用转换为I/O控制模块认识的命令模式. 2. 设备驱动.根据得到的I/O命令,启动物理设备完成指定的I/O操作. 3. 中断处理.对 ...
- Mysql参数汇总
凡是需要耐心. 参数为静态参数则黄色字体标记. 参数为全局变量则粗体标记. 参数为全局.会话变量则不标记. auto_increment_increment auto_increment_offset ...