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 ( ...
随机推荐
- Python 函数参数传递机制.
learning python,5e中讲到.Python的函数参数传递机制是对象引用. Arguments are passed by assignment (object reference). I ...
- SQLite 附加数据库(http://www.w3cschool.cc/sqlite/sqlite-attach-database.html)
SQLite 附加数据库 假设这样一种情况,当在同一时间有多个数据库可用,您想使用其中的任何一个.SQLite 的 ATTACH DTABASE 语句是用来选择一个特定的数据库,使用该命令后,所有的 ...
- 给定整数a1、a2、a3、...、an,判断是否可以从中选出若干个数,使得它们的和等于k(k任意给定,且满足-10^8 <= k <= 10^8)。
给定整数a1.a2.a3.....an,判断是否可以从中选出若干个数,使得它们的和等于k(k任意给定,且满足-10^8 <= k <= 10^8). 分析:此题相对于本节"寻找满 ...
- android连接打印机
android连接 网络打印,主要使用socket连接设备,发送指令给设备. 首先要有设备的IP,端口号一般默认的是9100 //打印设备网络IP etIp.setText("192.16 ...
- 14 Fragment 碎片总结
Fragment 碎片 一, Fragment是什么? Android 3.0以后出现的 Api11 以上 Activity的组成部分 Fragment(小的Activity) Fragment可以显 ...
- PGM:概率图模型Graphical Model
http://blog.csdn.net/pipisorry/article/details/51461878 概率图模型Graphical Models简介 完全通过代数计算来对更加复杂的模型进行建 ...
- Dynamics CRM2015 2015版本可用的OData Query Designer工具
2015后很多工具无法使用,包括2011版的OData Query Designer,这里介绍一款可用的工具,Dynamics XRM Tools for CRM 2015,下载地址:https:// ...
- xml特殊字符处理 如&
写了个request2XML的方法,每当数据中有'<'.'&'符号时,封装的XML就无法解析.发现了XML里的CDATA属性,问题迎刃而解!在XML文档中的所有文本都会被解析器解析 ...
- JQuery EasyUI combobox(下拉列表框)
下拉列表框 继承 $.fn.combo.defaults. 重写 $.fn.combobox.defaults. 组合框显示一个可编辑的文本框和下拉列表,用户选择一个或多个值.用户可以直接输入文 ...
- Cytoscape源码下载地址和编译办法
开发环境:Windows2008 R2 64位+Jdk1.7+Maven3.2.3 前提条件:安装好JDK1.7到C:\Program Files\Java\jdk1.7.0_67,下载好Maven并 ...