网站首页 > java教程 正文
运算符的分类
运算符的简介
运算符:对常量或者变量进行操作的符号
表达式:表达式是运算符与操作数的组合,其中操作数可以是常量、变量或其他表达式,不同运算符连接的表达式体现的是不同类型的表达式。
X=Y*(Z+10)
这就是个表达式,其中(Z+10)是字表达式
按功能分类 按操作数的个数分类
赋值运算符 单目运算符
算术运算符 双目运算符
关系运算符 三目运算符
逻辑运算符
- 赋值运算符
语法:变量名=表达式;
赋值运算符“=”的作用是将右边的值赋给左边的变量;
int age=20;
将20赋值给变量age
赋值运算符具有自右向左的结合性
int a,b,c; //同时声明三个变量
a=b=c=1; //自右向左赋值
- 算术运算符
Java中提供了算术运算符来实现数学上的算术运算功能
运算符 | 说明 | 举例 |
+ | 加法运算符,求操作数的和 | 5+2等于7 |
- | 减法运算符,求操作数的差 | 5-2等于3 |
* | 乘法运算符,求操作数的积 | 5*2等于10 |
/ | 除法运算符,求操作数的商 | 5/2等于2,5.0/2等于2.5 |
% | 取余(模)运算符,求操作数相除的余数 | 5%2等于1 |
参与除法运算的两个操作数都是整数时,表示整数除法;否则表示浮点除法
符合运算符
在java中有些表达式可以通过符合运算符进行简化
复合赋值运算符有赋值运算符和算术运算符组合而成,用于对变量自身执行算术运算,
例如:a=a+2;可以简化为:a+=2
运算符 | 说明 | 举例 |
+= | 加法运算 | int a=8; a+2 等同于a=a+2; a=10 |
-= | 减法运算 | int a=8; a-=2 等同于a=a-2; a=6 |
*= | 乘法运算 | int a=8; a*=2 等同于a=a*2; a=16 |
/= | 除法运算 | int a=8; a/=2 等同于a=a/2; a=4 |
%= | 模运算 | int a=8; a%=2 等同于a=a%2; a=0 |
复合赋值运算符的结合性是自左向右的例如:
int a=6;
a+=a+=6;等效于a=a+(a+6);
java表达式中使用圆括号与代数中的圆括号作用相同,能增强运算符的优先级,使用圆括号环能增强程序的可读性并使计算顺序清晰。
- 自增自减运算符
语法:
++变量名或变量名--;
--变量名 或者变量名--;
如果将自增或自减运算符放在变量之前,则称为前缀运算,前缀运算执行的是“先运算后使用”的处理过程
int a=5;
int b=++a; //等效于a=a+1; int b=a;
如果将自增或自减运算符放在变量之后,则称为后缀运算,前缀运算执行的是“先使用后运算”的处理过程
- 关系运算符
关系运算的结果为boolean类型
运算符 | 说明 | 举例 |
> | 大于 | 88>100,结果为false |
> | 小于 | 88<100, 结果为true |
>= | 大于等于 | 50>=60, 结果为false |
<= | 小于等于 | 50<=50, 结果为true |
== | 等于 | 50==60,结果为false |
!= | 不等于 | 50!=60,结果为true |
- 逻辑运算符
逻辑运算符:也叫短路运算符,它把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断的结果是true或false
运算符 | 说明 |
&& | 与运算,表示连接条件要同时成立 |
|| | 或运算,表示连接的条件有一个成立即可 |
! | 非运算,取反 |
- 三元运算符
语法:布尔表达式? 表达式1:表达式2
“?”是java中唯一的一个三目运算符,条件表达式的结果由布尔表达式决定,如果布尔表达式的值为true,则返回表达式1的值,否则返回表达式2的值。
int score=75;
String result=score>60?"及格":"不及格";
- instanceof
instanceof运算符的前一个操作数通常是一个引用类型变量,后一个操作数通常是一个类,它用于判断运算符前面的引用变量是否是运算符后面的类型,或其子类型的实例。
- 位运算符
位运算起源于C语言的低级操作,所谓的低级操作,是因为运算的操作对象是二进制位,但是这种低级操作对计算机 而言非常简单直接,友好高效的。
在简单的低成本处理器上,通常位运算比除法快得多,比乘法快几倍,有时比加法快得多
运算符 | 说明 | 举例 |
& | 与 | 操作数相同位都为1,那么结果为1 |
| | 或 | 操作数相同位有一位为1,那么结果为1 |
^ | 异或 | 操作数相同位不相同,结果为1 |
<< | 左移 | 各二进制数全部左移N位,高位丢失,低位补0 |
>> | 右移 | 各二进制位全部右移N位,若值为正,则在高位插入0,若值为负,则在高位插入1 |
>>> | 无符号右移 | 忽略符号位,空位都以0补齐,正数做>>>运算的时候和>>是一样的,区别在于负数运算 |
- 运算符优先级
顺序 | 说明 |
1 | 括号,如()和[] |
2 | 一元运算:++、-- |
3 | 算术运算:+ - * / % |
4 | 关系运算:>、<、<=、>=、==、!= |
5 | 逻辑运算:&&、|| |
6 | 条件运算和赋值运算:?:、=、*=、/=、+=、-= |
猜你喜欢
- 2024-09-27 「编程基础」零基础学习Java之运算符
- 2024-09-27 C语言中的“隐形”语法:三目运算符极致解析
- 2024-09-27 Java运算符之算术运算符和举例说明
- 2024-09-27 java运算符顺序(java中运算符的优先顺序)
- 2024-09-27 【学习笔记】分支结构的第三大板块:三目运算符
- 2024-09-27 【java】运算符基础 【java】运算符基础 #运算符
- 2024-09-27 java基本语法之运算符(java语言中的运算符有哪些)
- 2024-09-27 Spring SpEL三元运算符(sql三元运算符)
- 2024-09-27 Java中的运算符(java中的运算符是用来表示某种运算的符号)
- 2024-09-27 一起学JAVA 初识JAVA运算符(java ~运算符)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)