Java学习笔记(六)运算符

一、运算符

Java中运算符分成以下几类,且与C语言逻辑大致相同:

  • 算术运算符(arithmetic operator)
  • 关系运算符(relational operator)
  • 位运算符(bitwise operator)
  • 逻辑运算符(logical operator)
  • 赋值运算符(assigning operator)
  • 其他运算符
(一)、算术运算符
算术运算符作用例子
+加法1+1等于2
-减法1-1等于0
*乘法1*2等于2
/除法(求商)1/2等于0
%取模1%2等于1
++自增a++或++a
自减a–或--a

p.s. 注意在自增自减处,a++和++a中a虽然结果都是自增,但是在某些语句产生的效果却是不同的。如当a=1时,语句while(++a<2)和while(a++<2),前者是a先自增再与2进行比较,后者是a先与2比较再自增,故这两句中仅有后者的循环会执行。

(二)、关系运算符
关系运算符作用例子
==是否相等1==2返回false
!=是否不相等1!=2返回true
>是否大于1>2返回false
<是否小于1<2返回true
>=是否大于等于1>=2返回flase
<=是否小于等于1<=2返回true
(三)、位运算符
位运算符作用例子
&按位与,对应位都为1,则为1,否则为0
|按位或,对应位都为0,则为0,否则为1
^按位异或,对应位都不同,则为1,否则为0
~按位取反,按位翻转每一位
<<按位左移,将指定数字左移(乘以2的n次方)
>>按位右移,将指定数字右移(除以2的n次方)
>>>按位右移补零(同上,只不过会把空缺部分补零)

具体例子如下,假设byte A值1为10(二进制形式为1010),byte B值为12(二进制形式为1100)。

package day5;

public class operator {
       public static void main(String[] args)
       {
              byte A = 10;//0000 1010
              byte B = 12;//0000 1100
              System.out.println("A:"+Integer.toBinaryString(A));
              System.out.println("B:"+Integer.toBinaryString(B));
              System.out.println("A&B:"+Integer.toBinaryString(A&B));
              System.out.println("A|B:"+Integer.toBinaryString(A|B));
              System.out.println("A^B:"+Integer.toBinaryString(A^B));
              System.out.println("A>>1:"+Integer.toBinaryString(A>>1));
              System.out.println("A<<1:"+Integer.toBinaryString(A<<1));
              System.out.println("A>>>1:"+Integer.toBinaryString(B>>>1));
       }
}

调试信息如下,数据均以二进制输出:

A:1010
B:1100
A&B:1000
A|B:1110
A^B:110
A>>1:101
A<<1:10100
A>>>1:110
(四)、逻辑运算符
逻辑运算符作用例子
&&逻辑与操作符A&&B,若A为true则返回B,若A为false则返回A(即两个操作数都为true时才为true)
!逻辑非操作符!A,若A为true则返回false,若A为flase则返回true
(五)、赋值运算符

赋值运算符的作用即将算数的程序表达进行简化。

赋值运算符作用例子
=赋值操作符A=B,将B的值赋给A
+=加和操作符A+=B,即A=A+B
-=减和操作符A-=B,即A=A-B
*=乘和操作符A*=B,即A=A*B
/=除和操作符A/=B,即A=A/B
%=取模和操作符A%=B,即A=A%B
<<=左移位赋值操作符A<<=B,即A=A<<B
>>=右移位赋值操作符A>>=B,即A=A>>B
&=按位与赋值操作符A&=B,即A=A&B
|=按位或赋值操作符A|=B,即A=A|B
^=按位异或赋值操作符A=B,即A=AB
(六)、其他运算符
1、条件运算符

条件运算符也被称为三元运算符,通过判断布尔类型的值来选择哪个选项。

variable x = (expression) ? value if true : value if false

如下面例子,如果1>2则将1赋给value,否则将2赋给value。

    byte value = (1>2)?1:2;
2、instanceof运算符

该运算符用于操作对象实例,检查该对象是否是一个特定类型类类型或接口类型)。

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

如下面例子,判断变量myName是否为String类型。

  String myName = "seanOY";
  boolean result = myName instanceof String;
  System.out.println(result);
(七)运算符优先级

当多个运算符同时出现在一个表达式时,就需要程序员去考虑它的运行顺序,下面写出各运算符的优先级,从优先级高到低。

运算符类型操作符关联性
后缀() [] .→(从左到右)
一元++ – ! ~←(从右到左)
乘性* / %
加性+ -
移位>> >>> <<
关系> >= < <=
相等== !=
按位与&
按位异或^
按位或|
逻辑与%%
逻辑或||
条件? :
赋值= += -= *= /= %= >>= <<= &= ^= |=
逗号,

参考链接:
菜鸟教程-Java 运算符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值