Java常见运算符整理
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/44724267
本文主要介绍Java中常见的运算符,重点介绍了逻辑运算符和位运算符。希望对你有所帮助。
算术运算符
正(+)、负(-)、加1(++)和减1(--)4个。
加1、减1运算符只允许用于数值类型的变量,不允许用于表达式中。加1、减1运算符既可放在变量之前(如++i),也可放在变量之后(如i++),两者的差别是:如果放在变量之前(如++i),则变量值先加1或减1,然后进行其他相应的操作(主要是赋值操作);如果放在变量之后(如i++),则先进行其他相应的操作,然后再进行变量值加1或减1。
例如:
int i=6,j,k,m,n;
j = +i; //取原值,即j=6
k = -i; //取负值,即k=-6
m = i++; //先m=i,再i=i+1,即m=6,i=7
m = ++i; //先i=i+1,再m=i,即i=7,m=7
n = j--; //先n=j,再j=j-1,即n=6,j=5
n = --j; //先j=j-1,再n=j,即j=5,n=5
在书写时还要注意的是:一元运算符与其前后的操作数之间不允许有空格,否则编译时会出错。二元运算符用的较少暂不讨论。
关系运算符
逻辑运算符
/** * * @author liqq */ @Test public void testLogic() { // && 逻辑与 (短路) 对于a&&b 当a为false时,不需要判断b是否为false System.err.println(false && true); // false System.err.println(false && false); // false System.err.println(true && true); // true System.err.println(); // || 逻辑或(短路) 对于a||b 当b为true时,不需要判断b是否为true System.err.println(false || true); // true System.err.println(true || true); // true System.err.println(false || false); // false System.err.println(); // !逻辑非 System.err.println(!true); // false System.err.println(!false); // true System.err.println(); // ^ 逻辑异或 (相同为false,不同为true) System.err.println(false ^ true); // true System.err.println(true ^ true); // false System.err.println(false ^ false); // false System.err.println(); // & 逻辑与(不短路) 对于a&b 当a为false时,仍需要判断b是否为false System.err.println(false & true); // false System.err.println(true & true); // true System.err.println(false & false); // false System.err.println(); // | 逻辑或(不短路) 对于a|b 当a为true时,仍然需要判断b是否为true System.err.println(false | true); // true System.err.println(true & true); // true System.err.println(false & false); // false System.err.println(); }
位运算符
位运算符共有7个,分别是:位与(&)、位或(|)、位非(~)、位异或(^)、右移(>>)、左移(<<)、0填充的右移(>>>)。
/** * @author liqq */ @Test public void testBit() { // 位与(&) 和逻辑与类似 System.err.println(1 & 0); // 0 System.err.println(1 & 1);// 1 System.err.println(0 & 0);// 0 System.err.println(); // 位或(|)和逻辑或类似 System.err.println(1 | 0);// 1 System.err.println(1 | 1);// 1 System.err.println(0 | 0);// 0 System.err.println(); // 位非(~) System.err.println(~0); // -1 System.err.println(~1);// -2 System.err.println(); // 位异或(^) 相同为0,不同为1 System.err.println(1 ^ 0);// 1 System.err.println(1 ^ 1);// 0 System.err.println(0 ^ 1);// 1 System.err.println(); // 右移(>>)右移数值变小,每移动一位数值减半 System.err.println(2 >> 1);// 1 System.err.println(2 >> 2);// 0 System.err.println(8 >> 1);// 4 System.err.println(8 >> 2);// 2 System.err.println(); // 左移(<<)左移数值变大,每移一位数值增倍 System.err.println(2 << 1);// 4 System.err.println(2 << 2);// 8 System.err.println(8 << 1);// 16 System.err.println(8 << 2);// 32 System.err.println(); // 0填充的右移(>>>)无符号,右边空出的位以0填充 System.err.println(8>>>2);//2 System.err.println(-14 >>> 2); //1073741820 /*(即二进制的 11111111 11111111 11111111 11110010), 向右移两位后等于 1073741820 (即二进制的 00111111 11111111 11111111 11111100)*/ System.err.println(); }
Java常见运算符整理的更多相关文章
- Java常见Exception整理
前言: 技术开发入坑近1年,摸打滚爬,各种升级打怪.因目前从事Java相关,故整理了一下并把常见的异常(Exception)贴出来,一来为了后续提醒自己,二来供即将入坑的朋友打一下预防针!A级(代码逻 ...
- java常见数据结构整理
java中容器类数据结构主要在java.util包中. java.util包中三个重要的接口及特点:List(列表).Set(保证集合中元素唯一).Map(维护多个key-value键值对,保证key ...
- Java 常见BUG 整理
1.BigDecimal初始化double 2.Integer java对于-128到127之间的数,会进行缓存,这个范围的Integer对象是同一个! == 是ok,但是超出这个范围就不可以用 ...
- Java常见错误整理(一)
1.配置完Java环境变量之后,仍然不能使用java命令. 解决方法: 如果是Windows10系统出现此问题,是因为个别Windows10系统不识别“JAVA_HOME”环境变量,将path中所有的 ...
- Java常见算法整理
兔子问题(斐波那契数列规律) 台阶问题 (兔子问题变种,递归规律) 素数问题(判断素数.质数方式) 水仙花数问题(数字分解) 查找算法(二分查找) 排序算法(选择排序,冒泡排序,快速排序) 兔子问题, ...
- Java基础进阶整理
Java学习笔记整理 本文档是我个人整理的,首先是想通过完成本文档更加扎实自己的基础加强对java语言的理解,然后就是想给入了门的同志们做下贡献. 当然,本文档主要是对java语言基础(当然还有很多基 ...
- 转 Python常见数据结构整理
http://www.cnblogs.com/jeffwongishandsome/archive/2012/08/05/2623660.html Python常见数据结构整理 Python中常见的数 ...
- 尚学堂Java面试题整理
博客分类: 经典分享 1. super()与this()的差别? - 6 - 2. 作用域public,protected,private,以及不写时的差别? - 6 - 3. 编程输出例如以 ...
- java常见文件操作
收集整理的java常见文件操作,方便平时使用: //1.创建文件夹 //import java.io.*; File myFolderPath = new File(str1); try { if ( ...
随机推荐
- 【Android】给Android Studio设置代理
先打开我们的Android Studio,点击工具栏的file下的settings,如下图 之后再搜索框上面输入Proxy,然后按第四步提示点击,如下图 之后就进入了设置代理的界面了,如下图 默认情况 ...
- Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/44171115 大家好,欢迎继续回到Android属性动画完全解析.在上一篇文章当中 ...
- The Zen Programmer
专注 何为专注 关于 休息 怎么睡觉 心无杂念 我的体会 自我分析 初学者心态 无我 不要设置职业目标 敏事慎言 正念 做自己的老板 玩物养志 结语 最近在研读Christian Grobmeier ...
- Android状态栏透明(沉浸式效果)
Android状态栏透明(沉浸式效果) 默认效果 沉浸式效果 方式一 源码 下载地址(Android Studio工程):http://download.csdn.net/detail/q487880 ...
- Linux命令—压缩及其他
(1)为了更好的传送和保存文件,需要对某些文件和目录进行压缩和解压缩操作,Linux 提供了强大的压缩.解压缩命令,常用的tar命令. (2)在Linux中,如果要使用储存设备(硬盘.光驱.移动 ...
- Android高级控件(六)——自定义ListView高仿一个QQ可拖拽列表的实现
Android高级控件(六)--自定义ListView高仿一个QQ可拖拽列表的实现 我们做一些好友列表或者商品列表的时候,居多的需求可能就是需要列表拖拽了,而我们选择了ListView,也是因为使用L ...
- (Android自定义View)来来来,一起再撸一个Material风格loadingView。
本文同步自博主的个人博客wing的地方酒馆 很久很久以前,撸了一款loadingview(点击这里回顾),当时觉得还不错,现在看看觉得好丑啊!!! 于是想再撸一个,无意间在这里看到一个很不错的效果,于 ...
- [ExtJS5学习笔记]第二十二节 Extjs5中使用beforeLabelTpl配置给标签增加必填选项星号标志
本文地址:http://blog.csdn.net/sushengmiyan/article/details/39395753 官方例子:http://docs.sencha.com/extjs/5. ...
- Spark技术内幕:Executor分配详解
当用户应用new SparkContext后,集群就会为在Worker上分配executor,那么这个过程是什么呢?本文以Standalone的Cluster为例,详细的阐述这个过程.序列图如下: 1 ...
- Android简易实战教程--第十六话《SharedPreferences保存用户名和密码》
之前在Android简易实战教程--第七话<在内存中存储用户名和密码> 那里是把用户名和密码保存到了内存中,这一篇把用户名和密码保存至SharedPreferences文件.为了引起误导, ...