运算符是一些特殊符号,主要用于数学函数、一些类型的赋值语句和逻辑比较方面。
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中的算术运算符主要有 + (加)、- (减)、* (乘)、/ (除)、% (求余),他们都是二元运算符。
Java 算术运算符 运算符说明实例结果+加12.45f + 1527.45-减4.56 - 0.164.4*乘5L * 12.45f62.25/除7 / 23%取余数12 % 102+ 、 - 可以做完数据的正负符号 ,进行除法运算时,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 返回值为: true1.5 逻辑运算符
返回类型为布尔值的表达式,如比较运算符,可以被组合在一起构成一个更复杂的表达式。这是通过逻辑运算符来实现的。逻辑运算符包括 &(&&)(逻辑与)、||(逻辑或)、!(逻辑非)。逻辑运算符的操作元必须是 boolean 型数据。在逻辑运算符中,除了“!”是一元运算符之外,其他都是二元运算符。
逻辑运算符 运算符含义用法结合方向&& 、 &逻辑与op1 && op2左到右||逻辑或op1 || op2左到右!逻辑非!op1右到左结果为 boolean 型的变量或表达式可以通过逻辑运算符组合为逻辑表达式。
使用逻辑运算符进行逻辑运算 表达式1表达式2表达式1 && 表达式2表达式1 || 表达式2!表达式1truetruetruetruefalsetruefalsefalsetruefalsefalsefalsefalsefalsetruefalsetruefalsetruetrue短路:逻辑表达式从左端的表达式可推断出整个表达式的值。 “&&”属于短路运算符。
非短路:始终执行逻辑运算符两边的表达式。 “&”属于非短路运算符。
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,多练,多想。
要时刻学习,更新很快,要学习新技术,好好加油,祝终成大神。
