本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/44724267

本文主要介绍Java中常见的运算符,重点介绍了逻辑运算符和位运算符。希望对你有所帮助。

算术运算符

  (1)一元运算符: 

    正(+)、负(-)、加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常见运算符整理的更多相关文章

  1. Java常见Exception整理

    前言: 技术开发入坑近1年,摸打滚爬,各种升级打怪.因目前从事Java相关,故整理了一下并把常见的异常(Exception)贴出来,一来为了后续提醒自己,二来供即将入坑的朋友打一下预防针!A级(代码逻 ...

  2. java常见数据结构整理

    java中容器类数据结构主要在java.util包中. java.util包中三个重要的接口及特点:List(列表).Set(保证集合中元素唯一).Map(维护多个key-value键值对,保证key ...

  3. Java 常见BUG 整理

    1.BigDecimal初始化double 2.Integer   java对于-128到127之间的数,会进行缓存,这个范围的Integer对象是同一个! == 是ok,但是超出这个范围就不可以用 ...

  4. Java常见错误整理(一)

    1.配置完Java环境变量之后,仍然不能使用java命令. 解决方法: 如果是Windows10系统出现此问题,是因为个别Windows10系统不识别“JAVA_HOME”环境变量,将path中所有的 ...

  5. Java常见算法整理

    兔子问题(斐波那契数列规律) 台阶问题 (兔子问题变种,递归规律) 素数问题(判断素数.质数方式) 水仙花数问题(数字分解) 查找算法(二分查找) 排序算法(选择排序,冒泡排序,快速排序) 兔子问题, ...

  6. Java基础进阶整理

    Java学习笔记整理 本文档是我个人整理的,首先是想通过完成本文档更加扎实自己的基础加强对java语言的理解,然后就是想给入了门的同志们做下贡献. 当然,本文档主要是对java语言基础(当然还有很多基 ...

  7. 转 Python常见数据结构整理

    http://www.cnblogs.com/jeffwongishandsome/archive/2012/08/05/2623660.html Python常见数据结构整理 Python中常见的数 ...

  8. 尚学堂Java面试题整理

    博客分类: 经典分享   1. super()与this()的差别? - 6 -  2. 作用域public,protected,private,以及不写时的差别? - 6 -  3. 编程输出例如以 ...

  9. java常见文件操作

    收集整理的java常见文件操作,方便平时使用: //1.创建文件夹 //import java.io.*; File myFolderPath = new File(str1); try { if ( ...

随机推荐

  1. static 变量(静态变量)

    在C++的面向对象编程中,static还可以加在类的数据成员或成员函数之前.这样定义的数据成员或成员函数就被类所拥有,而不再属于类的对象. #include <iostream> usin ...

  2. 驱动中如何给ring3层应用程序提权

    为什么会有这个需求就不用我多说了吧:) 目前在驱动中提权我知道的有三种办法 1. 该方法来源于stoned bootkit,主要原理是把services.exe的EPROCESS中的Token值取出来 ...

  3. BeanUtils 读取数据

    前两篇文章都是关于setProperty的,下面来说一个关于getProperty 的小案例.如下: MyClass.java package beanutils; public class MyCl ...

  4. 保存图片到SD卡

    添加SD卡写权限 方法 public void saveMyBitmap(String bitName, Bitmap mBitmap) { File f = new File("/sdca ...

  5. Android7.0 多窗口你值得拥有

    Android7.0 多窗口你值得拥有 什么是多窗口分屏? 多窗口分屏其实在国内并不陌生,已经有一些手机和平板搭载了"分屏多任务"和"APP窗口化"功能,但这些 ...

  6. Error处理:Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack tra

    [2014-04-20 20:59:23 - MyDetectActivity] Dx  trouble writing output: already prepared [2014-04-20 20 ...

  7. input事件--->按键事件的基本实现

    本程序基于TINY4412开发板,程序已经验证过,完全正确: 那么,如何来写这样的一个驱动程序呢? 1.分配一个input_dev结构体 2.设置 3.注册 4.硬件相关的代码,比如中断,定时器,休眠 ...

  8. 取KindEditor中的textarea的值区不到的解决方案,固定kindEditor的高度

     可以通过下面的方式取到textarea的值 var content = $(document.getElementsByTagName('iframe')[0].contentWindow.do ...

  9. 流密码和RC4

    定义:流密码是对称密码算法,从明文输入流逐位或逐字节产生密文输出. 实例:使用最广泛的流密码是RC4. 流密码结构: 流密码类似于”一次一密”,不同的是”一次一密”使用的是真正的随机数流,而流密码使用 ...

  10. 【算法导论】第i小的元素

    第i小的元素       时间复杂度:O(n). 基本思想:和快速排序的思想相似,也是对数组进行递归划分,但是有所差别的是,快速排序会递归处理划分的两边,而随机化的选择算法只选择一边.       具 ...