运算符是一些特殊符号,主要用于数学函数、一些类型的赋值语句和逻辑比较方面。
1. 赋值运算符
赋值运算符以符号“ = ”表示,它是一个二元运算符(对两个操作数处理),其功能是将右方操作数所含的值赋给左方的操作数。例:int a = 100;该表达式是将 100 赋值给变量 a 。
左方的操作数必须是一个变量,而右边的操作数则可以是任何表达式,包含变量、常量、有效的表达式。
由于赋值运算符“ = ”处理时会先取得右边表达式处理后的结果,因此一个表达式中若含有两个以上的“ = ”运算符,会从最右边的“ = ”开始处理。
public class Eval{ //创建类
public static void main(String [] args){ //主方法
int a,b,c; //声明 int 型变量 a,b,c
a = 15; //将 15 赋值给 a
c = b = a+4; //将 a 与 4 的和赋值给 b ,然后再赋值给变量 c
System.out.println("c 值为:"+c); //将 c 的值输出
System.out.println("b 值为:"+b); //将 b 的值输出
}
}
结果为: c 值为:19 b 值为:19
1.2 算术运算符
Java中的算术运算符主要有 + (加)、- (减)、* (乘)、/ (除)、% (求余),他们都是二元运算符。
运算符 | 说明 | 实例 | 结果 |
+ | 加 | 12.45f + 15 | 27.45 |
- | 减 | 4.56 - 0.16 | 4.4 |
* | 乘 | 5L * 12.45f | 62.25 |
/ | 除 | 7 / 2 | 3 |
% | 取余数 | 12 % 10 | 2 |
+ 、 - 可以做完数据的正负符号 ,进行除法运算时,0 不能做除数。
public class Arith{ //创建类
public static void main(String [] args){ //主方法
float number1 = 45.56f; //声明 float 型变量并赋值
int number2 = 152; //声明 int 型变量并赋值
System.out.println("和为:"+number1+number2); //将变量相加之和输出
System.out.println("差为:"+(number2 - number1)); //将变量相减之差输出
System.our.println("积为:"+number1* number2); //将变量相乘的积输出
System.out.println("商为:"+numer1/number2); //将变量相除的商输出
}
}
结果为:和为:45.56152 差为:106.44 积为:6925.12 商为:0.29973686
1.3 自增和自减运算符
自增、自减是单目运算符,可放在操作元之前,也可放在操作元之后。操作元必须是一个整形或浮点型变量。自增、自减运算符的作用是使变量的值增 1 或减 1 。放在操作元前面的自增、自减运算符,会先将变量的值加 1 (减 1 ),然后再使该变量参与表达式的运算。放在操作元后面的自增、自减运算符。会先使变量参与表达式的运算,然后再将该变量加 1 (减 1 )。
++a ( --a ) //表示在使用变量 a 之前,先使 a 的值加(减)1
a++ ( a-- ) //表示在使用变量 a 之后,使 a 的值加(减)1
假设 a = 4
b = ++a; //先将 a 的值加 1 。然后赋值给 b ,此时 a 值为 5 ,b 值为 5
b = a++; //先将 a 的值赋给 b ,在将 a 的值变为 5 ,此时 a 值为5,b 值为 4
1.4 比较运算符
比较运算符属于二元运算符,用于程序中的变量之间、变量与自变量之间以及其他类型的信息之间的比较。比较运算符的运算结果是 boolean 型。当运算符对应的关系成立时,运算结果为 true ,否则为 false 。
运算符 | 作用 | 举例 | 操作数据 | 结果 |
> | 比较左方是否大于右方 | 'a' > 'b' | 整形、浮点型、字符型 | false |
< | 比较左方是否小于右方 | 156 < 456 | 整形、浮点型、字符型 | false |
== | 比较左方是否等于右方 | 'c' == 'c' | 基本数据类型、引用型 | true |
>= | 比较左方是否大于等于右方 | 479 >= 426 | 整形、浮点型、字符型 | true |
<= | 比较左方是否小于等于右方 | 12.45 <= 45.5 | 整形、浮点型、字符型 | true |
!= | 比较左方是否不等于右方 | 'y' != 't' | 基本数据类型、引用型 | true |
publice class Compare{ //创建类
public static void main(String [] args){ //主方法
int number1 = 4 ; //声明 int 型变量 number1
int number2 = 5 ; //声明 int 型变量 number2
System.out.println("numer1 > number2 返回值为:"+(number1 > number));
System.out.println("numer1 == number2 返回值为:"+(number1 == number));
System.out.println("numer1 != number2 返回值为:"+(number1 != number));
System.out.println("numer1 >= number2 返回值为:"+(number1 >= number));
System.out.println("numer1 <= number2 返回值为:"+(number1 <= number));
}
}
结果为:
numer1 > number2 返回值为: false
numer1 == number2 返回值为: false
numer1 != number2 返回值为: true
numer1 >= number2 返回值为: false
numer1 <= number2 返回值为: true
1.5 逻辑运算符
返回类型为布尔值的表达式,如比较运算符,可以被组合在一起构成一个更复杂的表达式。这是通过逻辑运算符来实现的。逻辑运算符包括 &(&&)(逻辑与)、||(逻辑或)、!(逻辑非)。逻辑运算符的操作元必须是 boolean 型数据。在逻辑运算符中,除了“!”是一元运算符之外,其他都是二元运算符。
运算符 | 含义 | 用法 | 结合方向 |
&& 、 & | 逻辑与 | op1 && op2 | 左到右 |
|| | 逻辑或 | op1 || op2 | 左到右 |
! | 逻辑非 | !op1 | 右到左 |
结果为 boolean 型的变量或表达式可以通过逻辑运算符组合为逻辑表达式。
表达式1 | 表达式2 | 表达式1 && 表达式2 | 表达式1 || 表达式2 | !表达式1 |
true | true | true | true | false |
true | false | false | true | false |
false | false | false | false | true |
false | true | false | true | true |
短路:逻辑表达式从左端的表达式可推断出整个表达式的值。 “&&”属于短路运算符。
非短路:始终执行逻辑运算符两边的表达式。 “&”属于非短路运算符。
public class Calculation{ //创建类
public void main(String [] args){ //主方法
int a = 2; //声明 ing 型变量 a
int b = 5; //声明 int 型变量 b
boolean result = ((a>b) && (a!=b)); //声明 boolean 型变量,保存应用逻辑运算符“&&”后的返回值
boolean result2 = ((a>b) || (a!=b)); //声明 boolean 型变量,保存应用逻辑运算符“||”后的返回值
System.out.println(result); //将变量 result 输出
System.out.println(result2); //将变量 result2 输出
}
}
结果为: false true
1.6 位运算符
位运算符除按位与和按位或运算符外,其他只能用于处理整数的操作数。位运算符是完全针对位当面的操作。
左边最高位是符号位,最高位是 0 表示整数,若 1 表示负数。
1.6.1 “按位与”运算
“按位与”运算的运算符为“ & ”,为双目运算符。
运算规则:如果两个数据 a 、 b 对应位都是 1 ,则结果位为 1 ,否则为 0 。
如果两个操作数的精度不同,则结果的精度与精度高的的操作数相同。
1.6.2 “按位或”运算
“按位或”运算的运算符为“ | ”,为双目运算符。
运算规则:如果两个数据 a 、 b 对应位都是 0 ,则结果位为 0 ,否则为 1 。
如果两个操作数的精度不同,则结果的精度与精度高的的操作数相同。
1.6.3 “按位取反”运算
“按位取反”运算也称“按位非”运算,的运算符为“ ~ ”,为单目运算符。
运算规则:将操作数二进制中的1 修改为 0 ,0 修改为 1 。
1.6.4 “按位异或”运算
“按位异或”运算的运算符是“ ^ ”,为双目运算符。
运算规则:当两个操作数的二进制表示相同(同时为 0 或同时为 1 )时,结果为 0 ,否则为 1 。
如果两个操作数的精度不同,则结果的精度与精度高的的操作数相同。
1.6.5 移位操作
移位运算符:<< 左移 ; >> 右移 ; >>> 无符号右移
左移:将左边的操作数在内存中的二进制数据左移右边操作数指定的位数,左边移空的部分补 0 。
右移:如果最高位为 0 ,左移空的位填入 0 ;如果最高位为 1,右移空的位填入 1 。
无符号右移:最高位无论是 0 还是 1 ,左侧被移空的高位都填入 0 。
移位运算符适用的数据类型:byte 、short 、char 、int 和 long 。
1.7 三元运算符
格式: 条件式 ? 值1 : 值2
运算规则:若条件式的值为 true ,则整个表达式取值1,否则取值2.
三元运算符等价于 if ... else 语句。
1.8 运算符优先级
由高到低的顺序:(1). 增量和减量运算;(2).算术运算;(3).比较运算;(4).逻辑运算;(5).赋值运算
优先级 | 描述 | 运算符 |
1 | 括号 | () |
2 | 正负号 | + 、 - |
3 | 一元运算符 | ++ 、 -- 、! |
4 | 乘除 | * 、 / 、 % |
5 | 加减 | + 、 - |
6 | 移位运算 | >> 、 >>> 、 << |
7 | 比较大小 | < 、 > 、 >= 、 <= |
8 | 比较是否相等 | == 、 != |
9 | 按位与运算 | & |
10 | 按位异或运算 | ^ |
11 | 按位或运算 | | |
12 | 逻辑与运算 | && |
13 | 逻辑或运算 | || |
14 | 三元运算符 | ? 、 : |
15 | 赋值运算符 | = |
对于学习Java,看书,看视频,看官方文档,看API,多练,多想。
要时刻学习,更新很快,要学习新技术,好好加油,祝终成大神。