【java基础】运算符

运算符

operator

运算符优先级

Operators 操作员Precedence 优先级
postfix 后缀expr++ expr--
unary 一元的++expr --expr +expr -expr ~ !
multiplicative 〔数〕乘法的 / %
additive 添加剂+ -
shift 移动<< >> >>>
relational 关系的< > <= >= instanceof
equality 平等== !=
bitwise AND 按位 AND&
bitwise exclusive OR 按位异或^
bitwise inclusive OR 按位包含或|
logical AND 逻辑与&&
logical OR 逻辑或||
ternary 三进制的? :
assignment 赋值`= += -= *= /= %= &= ^=

赋值运算符

=

算术运算符

OperatorDescription 描述
+Additive operator (also used for String concatenation) 加法运算符(也用于字符串连接)
-Subtraction operator 减法运算符
*Multiplication operator 乘法运算符
/Division operator
%Remainder operator 余数运算符

一元运算符

OperatorDescription 描述
+Unary plus operator; indicates positive value (numbers are positive without this, however) 一元加运算符; 表示正值(数字为 但是,如果没有这个,就是正的)
-Unary minus operator; negates an expression 一元减运算符; 对表达式求反
++Increment operator; increments a value by 1 增量运算符; 将值增加1
--Decrement operator; decrements a value by 1 递减运算符; 将值递减1
!Logical complement operator; inverts the value of a boolean 逻辑补码运算符; 反转布尔值

++a 和 a++ 的区别是 对于复杂的表达式:++a会先递增,再运算;a++会先运算后递增

比较运算符

== >=

逻辑运算符

操作元是boolean型数据

操作符描述例子结合方向
&&,&称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。(A && B)为假。从左到右
| |称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。(A | | B)为真。从左到右
称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。!(A && B)为真。从右到左
&&:”短路“运算符,如左边式子为假,则不判断右边,整体为假
&:”非短路“运算符,判断两边的式子

三元运算符

 result = someCondition ? value1 : value2;//true 返回value1

类型比较运算符

instanceof

instanceof 运算符将对象与指定的类型进行比较。您可以使用它来测试对象是类的实例、子类的实例,还是实现特定接口的类的实例。

class InstanceofDemo {
    public static void main(String[] args) {

        Parent obj1 = new Parent();
        Parent obj2 = new Child();

        System.out.println("obj1 instanceof Parent: "
            + (obj1 instanceof Parent));
        System.out.println("obj1 instanceof Child: "
            + (obj1 instanceof Child));
        System.out.println("obj1 instanceof MyInterface: "
            + (obj1 instanceof MyInterface));
        System.out.println("obj2 instanceof Parent: "
            + (obj2 instanceof Parent));
        System.out.println("obj2 instanceof Child: "
            + (obj2 instanceof Child));
        System.out.println("obj2 instanceof MyInterface: "
            + (obj2 instanceof MyInterface));
    }
}

class Parent {}
class Child extends Parent implements MyInterface {}
interface MyInterface {}
/*
输出:
obj1 instanceof Parent: true
obj1 instanceof Child: false
obj1 instanceof MyInterface: false
obj2 instanceof Parent: true
obj2 instanceof Child: true
obj2 instanceof MyInterface: true
*/

在使用 instanceof 运算符时,请记住 null 不是任何事物的实例。

位运算符

A=60,B=13,针对二进制数

图解 Java 位运算 - 云+社区 - 腾讯云 (tencent.com)

操作符描述例子
如果相对应位都是1,则结果为1,否则为0(A&B),得到12,即0000 1100
|如果相对应位都是 0,则结果为 0,否则为 1 (如果相对应位只要有一位是1,则结果为 1,否则为 0)(A | B)得到61,即 0011 1101
^异或,如果相对应位值相同,则结果为0,否则为1(A ^ B)得到49,即 0011 0001
按位取反运算符翻转操作数的每一位,即0变成1,1变成0。(〜A)得到-61,即1100 0011
<<按位左移运算符。左操作数按位左移右操作数指定的位数。A << 2得到240,即 1111 0000
>>按位右移运算符。左操作数按位右移右操作数指定的位数。 移动得到的空位以符号位填充。A >> 2得到15即 1111
>>>按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。A>>>2得到15即0000 1111
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值