Java运算符分为:算术运算符,赋值运算符,比较运算符,逻辑运算符,位于运算符和三元运算符。
- 算术运算符
-运用做算术运算的符号
运算符 | 释义 | 注意 | 举例 |
---|---|---|---|
+ | 加法运算符 | 表示整数;表示算数的加法;表示字符串的拼接 | (1)、+3(表示正3)(2)、10+20=30 (3)、“Hello”+“World”=“HelloWorld” |
- | 减法运算符 | 表示减法 | 30-20=10 |
* | 乘法运算符 | 表示乘法 | 10*20=300 |
/ | 除法运算 | 如果是两个整数相除,那么结果还是一个整数 ;如果任意一个操作的数是小数,那么结果就是小数 | (1)int a = 10;int b = 3 则a/b=3(2)30/2.00=15.00 |
% | 取模运算(取余运算),获取两数相除的余数 。 作用:获取余数:判断是否整除;判断奇偶。 | 注意,取余的结果的符号只和%前面的操作的数的符号有关 | (1)、int a = 10;int b = 3;a%b=1 |
++ | 自增运算符 | 在某个变量的基础上,自增1 | 注意:(1)当a++和++a作为一个语句出现时,没有任何区别,都表示一个自增的动作(2)当a++和++a作为一个表达式存在时,是有区别的。a++是先获取a的值,然后再自增;++a是先自增,然后再获取a的值 |
– | 自减运算符 | 在某个变量的基础上,自减1 | 同自增 |
int a = 2;
int b = a++;//2
int c = ++a;//3
int a = 2;
int b = 15;
int sum = a + b;//17
int sim = b - a;//13
int j = a * b;//30
int c = b / a;//7(整数类型相除还是整数,会直接舍弃小数点后面的)
double d = b / 2.2;//6.8181818181818175(如果任意一个操作的数是小数,那么结果就是小数)
int y = b % a;//1
- 赋值运算符
-用于给变量进行赋值的运算符
运算符 | 释义 | 分类 |
---|---|---|
= | 将运算符右边的值赋给左边的变量 | 基本的赋值运算符 |
+=、-=、*=、/= 、%= | 将符号左右两边的值进行算术运算,将结果赋给符号左边的变量 | 扩展的赋值运算符 |
//结果为每个式子单独运算的结果,不是连续运算的结果
int a = 2;
int b = 4;
b = a;// b=2
b += 2;// b=3
b -= 2;// b=2
b *= 2;// b=8
b /= 2;// b=2
b %= 2;// b=0
- 比较运算符
-用于比较两个数据是否相等,比较两个数据大小关系的运算符
运算符 | 释义 | 分类 |
---|---|---|
==、!= | ==:相等、!=不等 | 可以比较任意类型的数据 |
> 、>=、<、<= | 大于、大于等于、小于、小于等于 | 可以比较数值类型(整数类型、小数类型、字符类型) |
运算结果:boolean类型,要么是true、要么是false。
int a = 2;
int b = 4;
boolean bo1 = a==b;//false
boolean bo2 = a!=b;//true
boolean bo3 = a>b;//false
boolean bo4 = a>=b;//false
boolean bo5 = a<b;//true
boolean bo6 = a<=b;//true
- 逻辑运算符
-用于处理逻辑值的运算符
处理的数据:逻辑值;处理的结果:逻辑值
- 位移运算符
对于数据在内存中的表示,进行按照位来移动,以此来达到对数据进行运算的目的。
运算符 | 释义 |
---|---|
<<(左移运算符) | 每次移动一位,会将原来的数字扩大2倍 |
>>(右移运算符) | 每次移动一位,会将原来的数字缩小为原来的二分之一 |
>>> (无符号右移) | 每次移动一位,会将原来的数字缩小为原来的二分之一 |
//结果为每个式子单独运算的结果,不是连续运算的结果
int a = 4;
int b ;
b=a>>1;//2
b=a>>>1;//2
b=a<<1;//8
“>>>”这个运算符只针对正数操作。效率高于右移运算符。
总结:运算要比直接乘以二或者除以二效率要高很多
- 三元运算符
元:可以操作的数据或者表达式
格式: 表达式1?表达式2 :表达式3
注意:表达式1必须为boolean类型,计算结果只能是true或false。
举例:
//表达式1?表达式2 :表达式3
int i = (1 == 2 ? 100 : 200);
System.out.println(i);// 200
int j = (3 <= 4 ? 500 : 600);
System.out.println(j);// 500
//表达式1 为true时,就选择 表达式2,为false就选择 表达式3