Java运算符和表达式
运算符
分割符: , ; {} 赋值运算符: = 算术运算符: + , - , * , / , % , ++ , – 关系运算符: > , < , >= , <= , == , != 布尔逻辑运算符: ! , & , | , ^ , && , || 位运算符: & , | , , ~ , >> , << , >>> 扩展赋值运算符: += , ―= , *= , /= 字符串连接运算符: + 造型操作符: () 三目运算: ?: 运算符“+”除了用于数值类型的加法运算法,在字符串类型(String)数据中,它还是一个用于连接字符串的特殊的运算符。
package com03;
public class Demo1 {
public static void main ( String[ ] args) {
int a = 10 , b = 20 ;
int c = 0 ;
c = a;
a = b;
b = c;
System. out. println ( "a = " + a) ;
System. out. println ( "b = " + b) ;
System. out. println ( 45 + 3 + "ABC" + 8 + 3 ) ;
}
}
递增/递减运算符
对于需要对操作数进行加1或减1操作时,可以使用递增或递减运算符 递增:++ 递减:–
package com03;
public class Demo3 {
public static void main ( String[ ] args) {
int a = 10 ;
int b = 20 ;
int c = 0 ;
c = b++ - -- b + a++ - b;
System. out. println ( "a = " + a + " b = " + b + " c = " + c) ;
c = -- a - a++ + a;
System. out. println ( "a = " + a + " b = " + b + " c = " + c) ;
b = a-- + -- a - b-- ;
System. out. println ( "a = " + a + " b = " + b + " c = " + c) ;
a = a++ - -- b + c - ++ a;
System. out. println ( "a = " + a + " b = " + b + " c = " + c) ;
c = c-- + ++ c - a-- ;
System. out. println ( "a = " + a + " b = " + b + " c = " + c) ;
b = a++ + ++ a + -- a + a-- ;
System. out. println ( "a = " + a + " b = " + b + " c = " + c) ;
}
}
关系和布尔运算符
Java使用==号来判断两个值是否相等,而用!=来判断是否不等,用>、<来判断大于、小于而用>=、<=来判断大于等于小于等于逻辑运算符功能 !-- 逻辑非 & – 逻辑与 | – 逻辑或 ^ – 逻辑异或 &&-- 短路与 || – 短路或
package com02;
public class Test1 {
public static void main ( String[ ] args) {
int a = 201 ;
int b = 20 ;
boolean result = false ;
result = a != b;
System. out. println ( result) ;
boolean b1 = true ;
boolean b2 = true ;
System. out. println ( "与 : " + ( b1 & b2) ) ;
System. out. println ( "或 :" + ( b1 | b2) ) ;
System. out. println ( "与 : " + ( b1 && b2) ) ;
System. out. println ( "或 :" + ( b1 || b2) ) ;
System. out. println ( ) ;
b1 = true ;
b2 = false ;
System. out. println ( "与 : " + ( b1 & b2) ) ;
System. out. println ( "或 :" + ( b1 | b2) ) ;
System. out. println ( "与 : " + ( b1 && b2) ) ;
System. out. println ( "或 :" + ( b1 || b2) ) ;
System. out. println ( ) ;
b1 = false ;
b2 = true ;
System. out. println ( "与 : " + ( b1 & b2) ) ;
System. out. println ( "或 :" + ( b1 | b2) ) ;
System. out. println ( "与 : " + ( b1 && b2) ) ;
System. out. println ( "或 :" + ( b1 || b2) ) ;
System. out. println ( ) ;
b1 = false ;
b2 = false ;
System. out. println ( "与 : " + ( b1 & b2) ) ;
System. out. println ( "或 :" + ( b1 | b2) ) ;
System. out. println ( "与 : " + ( b1 && b2) ) ;
System. out. println ( "或 :" + ( b1 || b2) ) ;
a = 10 ;
b = 10 ;
b1 = 8 > 10 | a++ < 11 ;
b2 = 8 > 10 || b++ < 11 ;
System. out. println ( b1) ;
System. out. println ( b2) ;
System. out. println ( "a=" + a) ;
System. out. println ( "b=" + b) ;
b1 = false ;
b2 = ! b1;
System. out. println ( b1) ;
System. out. println ( b2) ;
}
}
位运算符
~ – 取反 & – 按位与 | – 按位或 ^ – 按位异或
package com02;
public class Test2 {
public static void main ( String[ ] args) {
int a = - 1 ;
int b = 13 ;
int result = 0 ;
System. out. println ( a) ;
System. out. println ( b) ;
result = a >>> 1 ;
System. out. println ( result) ;
}
}
赋值运算符
赋值运算符“=”是最常用的一种运算符。它将等于号右边的表达式的值赋给左边的变量。 可以将其它的运算符和赋值运算符结合起来,作为“扩展”的赋值运算符:+=,-=,*=,/=,%=,=,&=,|=,>>=,<<=,>>>=
package com01;
public class Test {
public static void main ( String[ ] args) {
int a = 17 , b = 4 ;
double d = 3 ;
int result = 0 ;
result = a % b;
System. out. println ( result) ;
}
package com02;
public class Test3 {
public static void main ( String[ ] args) {
int a = 10 ;
int result = 0 ;
result += a;
System. out. println ( result) ;
result -= a;
System. out. println ( result) ;
result *= a;
System. out. println ( result) ;
result /= a;
System. out. println ( result) ;
System. out. println ( true ? 4 : 5 ) ;
}
}
表达式
表达式是运算符和操作数的结合,它是任何一门编程语言的关键组成部分 表达式允许程序员进行数学计算、值的比较、逻辑操作以及在Java中进行对象的操作。 所有的数学运算都认为是从左到右结合的,在Java中,大部分运算也是从左到右结合的,只有单目运算符、赋值运算符和条件运算符例外 乘法和加法是两个可结合的运算,也就是说,这两个运算符左右两边的操作符可以互换位置而不会影响到结果 下面的表格说明了各个运算符的优先顺序,优先级高的运算符放置在表的上部,而在同一行的运算符拥有同样的优先顺序。(从上到下 从左到右) 除了单目运算符、赋值运算符以及条件运算符,其它的运算符都是从左到右结合的。
运算符说明
Java运算符
运算符说明
Java运算符
分隔符
. [] () , ;
等价
== !=
单目运算符
+ - ~ ! ++ expr --expr
按位与
&
创建或类型转换
New (type)expr
按位异或
^
乘法/除法
* / %
按位或
|
加法/减法
+ -
条件与
&&
移位
<< >> >>>
条件或
||
关系
< <= >= > instanceof
条件
?:
赋值
=