java运算符那些事
&& 逻辑与
&&先运算&&左边的算式,如果为假,则直接停止,后面不管有多少运算式都不再运算,如果为真则继续判断后面的式子,只有所有的条件全部成立,才会执行下面的程序
int a=5;
int b=10;
if(a>6&&b++>10) {
System.out.println("全部都为真");
}
System.out.println("a="+a+";b="+b);
运行结果:
a=5;b=10
这里的b=10,因为a>6不成立,所以后面的语句b++>10不再进行判断
& 按位与
(1)、&的运算规则为是先将两边的数转化为二进制,然后运算最终值,运算规则全都为真则结果为真,否则结果为假,1&1=1 , 1&0=0 , 0&1=0 , 0&0=0

3&5的结果为1
(2)、不短路与,作用和&&相同,但不会短路
int a=5;
int b=10;
//这里将&&替换成&
if(a>6&b++>10) {
System.out.println("全部都为真");
}
System.out.println("a="+a+";b="+b);
运行结果:
a=5;b=11
这里的b=11,因为a>6虽然不为真,但是后面的b++10任然会进行判断,所以b=11
|| 逻辑或
逻辑或运算规则是一个为真则为真,后续不需要再计算,一个为假再计算右边的表达式
int a=5;
int b=10;
if(a>4||b++>10) {
System.out.println("a="+a+";b="+b);
}
运行结果:
a=5;b=10
这里的b=10,因为a>4已经为真,而逻辑或只要有一个为真则为真,所以不需要再进行后面的语句判断,直接执行下一步
| 按位或
(1)、|按位或和&按位与计算方式都是转化为二进制再计算,不同的是运算规则(一个为真则为真),1|0=1, 1|1=1, 0|1=1, 0|0=0
6|2:6的二进制位0000 0110 , 2的二进制位0000 0010 , 110|010为110,最终值0000 0110,故6|2等于6
(2)、不短路或,作用和||相同,但是不会短路
int a=5;
int b=10;
//这里将||替换成|
if(a>4|b++>10) {
System.out.println("a="+a+";b="+b);
}
运行结果:
a=5;b=11
这里的b=11,因为虽然a>4为真,整个表达式已经为真,但是仍然会进行后面b++>10的判断,所以最终输出结果为b=11
^ 异或
异顾名思义就是不同,^运算规则是相同为0,不同为1,1^0 = 1 , 1^1 = 0 , 0^1 = 1 , 0^0 = 0
5^9:5的二进制位是0000 0101 , 9的二进制位是0000 1001,也就是0101 ^ 1001,结果为1100 , 00001100的十进制位是12
<< 左移运算符
5<<2:5<<2的意思是5的二进制左移2位,右边补0,5的二进制数是0000 0101,左移两位后是0001 0100,正数左边第一位补0,负数左边第一位补1
>> 右移运算符
5>>2:5>>2的意思是5的二进制右移2位,左边补0,5的二进制数是0000 0101,左移两位后是0000 0001,正数左边第一位补0,负数左边第一位补1
java运算符那些事的更多相关文章
- Java——运算符那些事
&& 逻辑与 &&先运算&&左边的算式,如果为假,则直接停止,后面不管有多少运算式都不再运算,如果为真则继续判断后面的式子,只有所有的条件全部成立,才会 ...
- Java的哪些事
Java的哪些事--------------------------------------------------Java学习分2个方面: Java语法与Java类库 Java: A simple, ...
- Java笔记2-数据类型,变量,Java运算符
我们编写软件,目的是为了高效的操作(增,删,改,查)数据. 数据类型 1.基本类型(8种)byte 字节型 -128~127short 短整型 -32768~32767int 整型 -21474836 ...
- Java运算符优先级(转)
转自:http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 说明 ...
- 【转】Java运算符优先级
原文网址:http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 ...
- java运算符优先级与流程控制
1. Java 的方法Method (函数 Function), 功能, 动作 1) 方法就是函数: y=f(x)=3x+6; 2) 方法的语法 (修饰词)(返回值类型)(方法名)(参数列表){ ...
- Java基本语法-----java运算符的优先级与结合性
这是本人以前的上学期间java 运算符这块知识的总结的,截图存到了word里,大家将就看下吧(不会用Markdown的表格 不然就在写一遍了 T T). [正在看本人博客的这位童鞋,我看你气度不凡,谈 ...
- Java 基本语法---Java运算符
Java 基本语法---Java运算符 0. 概述 Java中的运算符主要分为以下几种: 算术运算符 赋值运算符 关系运算符 逻辑运算符 条件运算符 位运算符 其他运算符 1. 算术运算符 操作符 描 ...
- [转]Java 运算符的优先级
Java 运算符的优先级(从高到低) 优先级 描述 运算符 1 括号 ().[] 2 正负号 +.- 3 自增自减,非 ++.--.! 4 乘除,取余 *./.% 5 加减 +.- 6 移位运算 &l ...
随机推荐
- BZOJ2716天使玩偶
不会KD-tree怎么办?CQD硬搞. 建立正常的平面直角坐标系,首先我们只考虑在目标点左下角的点对目标点的贡献,由于左下点的横纵坐标都小于目标点,那么曼哈顿距离就可以化简了,绝对值去掉后,得到$x2 ...
- 报错:使用java api连接redis集群时报错 READONLY You can't write against a read only slave.
报错: READONLY You can’t write against a read only slave. 报错原因: 因为连接的是从节点,从节点只有读的权限,没有写的权限 解决方案: 进入red ...
- 【转载】 什么是P问题、NP问题和NPC问题
原文地址: http://www.matrix67.com/blog/archives/105 转载地址: https://www.cnblogs.com/marsggbo/p/9360324.htm ...
- ISO/IEC 9899:2011 条款6.2.8——对象的对齐
6.2.8 对象的对齐 1.完整的对象类型具有对齐要求,对齐要求是对该类型对象可以在哪个地址进行分配的放置限制.一个对齐是一个实现定义的整数值,表示一个给定对象可以分配在相继两个地址之间跨多少字节的位 ...
- python下multiprocessing和gevent的组合使用
python下multiprocessing和gevent的组合使用 对于有些人来说Gevent和multiprocessing组合在一起使用算是个又高大上又奇葩的工作模式. Python的多线程受制 ...
- VS2015编译gdal库 debug
nmake -f makefile.vc DEBUG=1nmake /f makefile.vc installnmake /f makefile.vc devinstal E:\Visual Stu ...
- IFC数据模型构件控制
控制ifc构件的隐藏与显示.着色 osg::ref_ptr<osg::Geode> geode1 = new osg::Geode(); osg::ref_ptr<osg::Stat ...
- 阶段5 3.微服务项目【学成在线】_day09 课程预览 Eureka Feign_05-Feign远程调用-客户端负载均衡介绍
2 Feign远程调用 在前后端分离架构中,服务层被拆分成了很多的微服务,服务与服务之间难免发生交互,比如:课程发布需要调用 CMS服务生成课程静态化页面,本节研究微服务远程调用所使用的技术. 下图是 ...
- 阶段5 3.微服务项目【学成在线】_day18 用户授权_04-方法授权-方法授权实现
2.3 方法授权实现 2.3.1资源服务添加授权控制 1.要想在资源服务使用方法授权,首先在资源服务配置授权控制 1)添加spring-cloud-starter-oauth2依赖. 2)拷贝授权配置 ...
- bat 脚本之 使用函数
bat 脚本之 使用函数 摘自:https://blog.csdn.net/peng_cao/article/details/73999076 2017年06月30日 15:06:37 pengcao ...