当前位置: 首页 > news >正文

【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
http://www.lryc.cn/news/13310.html

相关文章:

  • 带噪学习-概述
  • Scratch少儿编程案例-多彩打地鼠
  • 为什么拔掉计算机网线还能ping通127.0.0.1?
  • Android kotlin 内、外部存储根目录及测试(可以实现仿微信未读消息数提示数字)
  • Android 7.0 OTA升级(高通)
  • 工作负载之DeployMent
  • 淘宝tmall页面数据获取,API接口对接程序
  • 基于粒子群优化算法的电动汽车充放电V2G研究(Matlab代码实现)
  • java并发编程原理2 (AQS, ReentrantLock,线程池)
  • 研报精选230219
  • 【PPPoE】PPPoE拨号流程
  • django项目实战(django+bootstrap实现增删改查)
  • Lesson4---Python语言基础(2)
  • NCHW - NHWC - CHWN 排列
  • 2019蓝桥杯真题矩阵切割(填空题) C语言/C++
  • Java线程池的创建以及原理
  • Java集合学习之Map
  • java 基于maven多模块合并打包部署
  • Kubernetes是个什么东东?
  • 【go语言grpc之client端源码分析三】
  • Android 基础知识4-2.6LinearLayout(线性布局)
  • 补充前端面试题(三)
  • .net开发安卓入门-自动升级(配合.net6 webapi 作为服务端)
  • 分享111个HTML艺术时尚模板,总有一款适合您
  • spring之Spring AOP基于注解
  • LeetCode题目笔记——6362. 合并两个二维数组 - 求和法
  • 【C#基础】C# 常用语句讲解
  • 腾讯云——负载均衡CLB
  • 6.关于系统服务的思考—— native vs java
  • SQL语句创建视图: