Java 运算符

Java 运算符

操作中的Java是一种用于执行操作的符号。例如:+,-,*,/等。 Java中有许多类型的运算符,如下所示:

一元运算符
算术运算符
移位运算符
关系运算符
按位运算符
逻辑运算符
三元运算符
赋值运算符

类型 示例
一元 expr++ ++expr
算术 * / % + -
移位 <<>> >>>
关系 < > <= >= instanceof == !=
按位 & ^ | >&&
逻辑 ||
三元 ? :
赋值 = += -= *= /= %= &= ^= |= <<= >>= >>>=

Java一元运算符

Java一元运算符仅需要一个操作数。一元运算符用于执行各种操作,即:

将值递增/递减
否定表达式
反转布尔值

Java一元运算符示例:++和-

class OperatorExample{
   public static void main(String args[]){
      int x=10;
      System.out.println(x++);//10 (11)
      System.out.println(++x);//12
      System.out.println(x--);//12 (11)
      System.out.println(--x);//10
   }
}
输出
10

12

12

10

Java运算符示例2:++ and --

class OperatorExample{
public static void main(String args[]){
int a=10;
int b=10;
System.out.println(a++ + ++a);//10+12=22
System.out.println(b++ + b++);//10+11=21
 
}}
输出
22

21

Java运算符示例: ~ and !

class OperatorExample{
public static void main(String args[]){
int a=10;
int b=-10;
boolean c=true;
boolean d=false;
System.out.println(~a);//-11 (minus of total positive value which starts from 0)
System.out.println(~b);//9 (positive of total minus, positive starts from 0)
System.out.println(!c);//false (opposite of boolean value)
System.out.println(!d);//true
}}
输出
-11

9

false

true

Java算术运算符

Java算术运算符用于执行加,减,乘和除。它们充当基本的数学运算。

Java算术运算符示例

class OperatorExample{
public static void main(String args[]){
int a=10;
int b=5;
System.out.println(a+b);//15
System.out.println(a-b);//5
System.out.println(a*b);//50
System.out.println(a/b);//2
System.out.println(a%b);//0
}}
输出
15

5

50

2

0

Java算术运算符示例:表达式

class OperatorExample{
public static void main(String args[]){
System.out.println(10*10/5+3-1*4/2);
}}
输出
21

Java左移运算符

Java左移位运算符<<用于将值中的所有位移位到指定次数的左侧。
class OperatorExample {
public static void main(String args []){
System.out.println(10 << 2 ); // 10 * 2 ^ 2 = 10 * 4 = 40
System.out.println(10 << 3 ); // 10 * 2 ^ 3 = 10 * 8 = 80
System.out.println(20 << 2 ); // 20 * 2 ^ 2 = 20 * 4 = 80
System.out.println(15 << 4 ); // 15 * 2 ^ 4 = 15 * 16 = 240
}}
输出
40

80

80

240

Java右移运算符

Java右移运算符>>用于将左操作数的值向右移动右操作数指定的位数。
class OperatorExample {
public static void main(String args []){
System.out.println(10 >> 2 ); // 10/2 ^ 2 = 10/4 = 2
System.out.println(20 >> 2 ); // 20/2 ^ 2 = 20/4 = 5
System.out.println(20 >> 3 ); // 20/2 ^ 3 = 20/8 = 2
}}
输出
2

5

2

Java移位运算符示例:>> vs >>>

Java右移运算符>>用于将左操作数的值向右移动右操作数指定的位数。
class OperatorExample {
public static void main(String args []){
    //对于正数,>>和>>>的作用相同
    System.out.println(20 >> 2 );
    System.out.println(20 >>> 2 );
    //对于负数,>>>将奇偶校验位(MSB)更改为0
    System.out.println(-20 >> 2 );
    System.out.println(-20 >>> 2 );
}}
输出
5

5

-5

1073741819

Java按位运算符示例:逻辑&&和按位&

如果第一个条件为假,则逻辑&&运算符不会检查第二个条件。仅在第一个条件为真时,它才检查第二个条件。 按位&运算符始终检查两个条件,无论第一个条件为true还是false。
class OperatorExample {
public static void main(String args []){
int a = 10 ;
int b = 5 ;
int c = 20 ;
System.out.println(a <b && a <c); // false && true = false
System.out.println(a <b&a <c); // false&true = false
}}
输出
false

false

Java按位运算符示例:逻辑&&与按位&

如果第一个条件为假,则逻辑&&运算符不会检查第二个条件。仅在第一个条件为真时,它才检查第二个条件。 按位&运算符始终检查两个条件,无论第一个条件为true还是false。
class OperatorExample {
public static void main(String args []){
int a = 10 ;
int b = 5 ;
int c = 20 ;
System.out.println(a <b && a ++ <c); // false && true = false
System.out.println(a); // 10,因为未检查第二个条件
System.out.println(a <b&a ++ <c); // false && true = false
System.out.println(a); // 11,因为检查了第二个条件
}}
输出
false

10

false

11

Java逻辑运算符示例:逻辑|| 和按位|

逻辑|| 如果第一个条件为真,操作员不会检查第二个条件。仅在第一个条件为假时才检查第二个条件。 按位| 操作员始终检查两个条件,无论第一个条件为真还是假。
class OperatorExample {
public static void main(String args []){
int a = 10 ;
int b = 5 ;
int c = 20 ;
System.out.println(a> b || a <c); // true || true=true
System.out.println(a> b | a <c); // true | true=true
// || vs |
System.out.println(a> b || a ++ <c); // true || true=true
System.out.println(a); // 10,因为未检查第二个条件
System.out.println(a> b | a ++ <c); // true | true=true
System.out.println(a); // 11,因为检查了第二个条件
}}
输出
true

true

true

10

true

11

Java三元运算符

Java Ternary运算符用作if-then-else语句的一种衬里替换,并且在Java编程中使用很多。它是唯一使用三个操作数的条件运算符。
class OperatorExample {
public static void main(String args []){
int a = 2 ;
int b = 5 ;
int min =(a <b)?a:b;
System.out.println(分钟);
}}
输出
11
另一个例子:
class OperatorExample {
public static void main(String args []){
int a = 10 ;
int b = 5 ;
int min =(a <b)?a:b;
System.out.println(分钟);
}}
输出
5

Java赋值运算符

Java赋值运算符是最常见的运算符之一。它用于将其右侧的值分配给其左侧的操作数。
class OperatorExample {
public static void main(String args []){
int a = 10 ;
int b = 20 ;
a + = 4 ; // a = a + 4(a = 10 + 4)
b- = 4 ; // b = b-4(b = 20-4)
System.out.println(a);
System.out.println(b);
}}
输出
14

16

Java赋值运算符示例2

class OperatorExample {
public static void main(String [] args){
int a = 10 ;
a + = 3 ; // 10 + 3
System.out.println(a);
a- = 4 ; // 13-4
System.out.println(a);
a * = 2 ; // 9 * 2
System.out.println(a);
a / = 2 ; // 18/2
System.out.println(a);
}}
输出
13

9

18

9

Java赋值运算符示例3

class OperatorExample{
public static void main(String args[]){
short a=10;
short b=10;
//a+=b;//a=a+b internally so fine
a=a+b;//Compile time error because 10+10=20 now int
System.out.println(a);
}}
输出
Compile time error

Java赋值运算符示例4

class OperatorExample{
public static void main(String args[]){
short a=10;
short b=10;
a=(short)(a+b);//20 which is int now converted to short
System.out.println(a);
}}
输出
20