Java随记:运算符

计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。我们可以把运算符分成以下几组:

  • 算术运算符
  • 关系运算符
  • 位运算符
  • 逻辑运算符
  • 赋值运算符
  • 其他运算符

算术运算符

算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。下表列出了所有的算术运算符。

操作符 描述
+ 加法 - 相加运算符两侧的值
- 减法 - 左操作数减去右操作数
* 乘法 - 左操作数减去右操作数
/ 除法 - 左操作数除以右操作数
% 取模 - 左操作数除右操作数的余数
++ 自增 - 操作数的值增加1
-- 自减 - 操作数的值减少1
算术运算符案例:
int a = 100;
int b = 5;
int sum;
//加法运算
sum = a + b;
System.out.println("加法运算:" + sum);
//减法运算
sum = a - b;
System.out.println("减法运算:" + sum);
//乘法运算
sum = a * b;
System.out.println("乘法运算:" + sum);
//除法运算
sum = a / b;
System.out.println("除法运算:" + sum);
//取模运算sum = a % b;
System.out.println("取模运算:" + sum);
//自增运算sum = a ++;
System.out.println("自增运算:" + sum);
//自减运算sum = -- b;
System.out.println("自减运算:" + sum);

关系运算符

运算符 描述
== 检查如果两个操作数的值是否相等,如果相等则条件为真。
!= 检查如果两个操作数的值是否相等,如果值不相等则条件为真。
> 检查左操作数的值是否大于右操作数的值,如果是那么条件为真。
< 检查左操作数的值是否小于右操作数的值,如果是那么条件为真。
>= 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。
<= 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。
关系运算符例子
if(a == b){
    System.out.println("a == b : " + (a == b));
}else {
    System.out.println("a != b : " + (a != b));
}
if (a > b){
    System.out.println("a > b  :  " + (a > b));
}else {
    System.out.println("a < b : " + (a < b));
}
if (a >= b){
    System.out.println("a >= b : " + (a >= b));
}else {
    System.out.println("a <= b" + (a <= b));
}

位运算符

Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。
位运算符作用在所有的位上,并且按位运算。

操作符 描述
& 按位与操作符,当且仅当两个操作数的某一位都非0时候结果的该位才为1。
按位或操作符,只要两个操作数的某一位有一个非0时候结果的该位就为1。
^ 按位异或操作符,两个操作数的某一位不相同时候结果的该位就为1。
~ 按位补运算符翻转操作数的每一位。
<< 按位左移运算符。左操作数按位左移右操作数指定的位数。
>> 按位右移运算符。左操作数按位右移右操作数指定的位数。
>>> 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。
位运算案例:
int a = 60; /* 60 = 0011 1100 */ 
     int b = 13; /* 13 = 0000 1101 */
     int c = 0;
     c = a & b;       /* 12 = 0000 1100 */
     System.out.println("a & b = " + c );

     c = a | b;       /* 61 = 0011 1101 */
     System.out.println("a | b = " + c );

     c = a ^ b;       /* 49 = 0011 0001 */
     System.out.println("a ^ b = " + c );

     c = ~a;          /*-61 = 1100 0011 */
     System.out.println("~a = " + c );

     c = a << 2;     /* 240 = 1111 0000 */
     System.out.println("a << 2 = " + c );

     c = a >> 2;     /* 15 = 1111 */
     System.out.println("a >> 2  = " + c );
  
     c = a >>> 2;     /* 15 = 0000 1111 */
     System.out.println("a >>> 2 = " + c );

逻辑运算符

操作符 描述
&& 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。
|| 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。
! 称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。
逻辑运算案例:
     boolean a = true;
     boolean b = false;
     System.out.println("a && b = " + (a&&b));
     System.out.println("a || b = " + (a||b) );
     System.out.println("!(a && b) = " + !(a && b));

赋值运算符

操作符 描述
= 简单的赋值运算符,将右操作数的值赋给左侧操作数
+= 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数
-= 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数
*= 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数
/= 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数
%= 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数
<<= 左移位赋值运算符
>>= 右移位赋值运算符
&= 按位与赋值运算符
^= 按位异或赋值操作符
|= 按位或赋值操作符

条件运算符

条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。

variable x = (expression) ? value if true : value if false
条件运算符案例
//条件运算符
sum = a > b ? a : b;
System.out.println(sum);

instanceOf 运算符

该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。
instanceof运算符使用格式如下:

( Object reference variable ) instanceOf  (class/interface type)

案例:

String name = "小明";
Boolean flay = name instanceof String;
System.out.println(flay);

Java运算符优先级

类别 操作符 关联性
后缀 () [] .(点操作符) 左到右
乘性 * / % 从右到左
加性 + - 左到右
移位 >> >>> << 左到右
关系 >>= <<= 左到右
相等 == != 左到右
按位与 & 左到右
按位异或 ^ 左到右
按位或 左到右
逻辑与 && 左到右
逻辑或 || 左到右
条件 ?: 从右到左
赋值 = += -= *= /= %= >>= <<= &= ^= |= 从右到左
逗号 , 左到右
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 关键字 1.1 关键字的概述 Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或...
    哈哈哎呦喂阅读 673评论 0 0
  • 表达式 表达式是由数字、运算符、数字分组符号(如括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合...
    劼哥stone阅读 588评论 0 4
  • 谨记: 上帝在缔造每个人的时候,给予每个人的一切都是相同的,然而,人与人却是存在如此大的差距,记着上帝为你关上了一...
    长风留言阅读 5,058评论 0 5
  • 乐骁游戏由国内IT精英和有成功创业经验的专业团队组成,专注于手机游戏的开发、发行和运营,是中国领先的手机游戏公司,...
    乐骁游戏阅读 633评论 0 1
  • 我来到你的十年之前 我们只是想知道 那时的城市是否和我想象中一样 有六分之一的风雪 六分之二的雨水 和六分之三的炽...
    鲨鱼也曾给海唱过歌阅读 246评论 0 0