1. 程式人生 > 其它 >Java基本運算子

Java基本運算子

Java基本運算子

Java語言支援如下運算子:

  • 算術運算子:+,-,*,/,%,++,--
  • 賦值運算子=
  • 關係運算符:>, <, >=, <=, ==, !=, instanceof
  • 邏輯運算子:&&(與), ||(或), !
  • 位運算子:&, |, ^, ~, >>, <<, >>>
  • 條件運算子 ?:
  • 擴充套件賦值運算子:+=, -=, *=, /=
long a = 123123123123123123l;
int b = 123;
short c  = 12;
byte d = 1;

System.out.println(a+b+c+d);//long
System.out.println(b+c+d);//int
System.out.println(c+d);//int

輸出結果:

123123123123123259
136
13

拓展

++ 和 --

++:自增

--:自減

二者都是一元運算子

//++ --
int a = 2;
int b = a++;
int c = ++a;


System.out.println(a);
System.out.println(b);
System.out.println(c);

輸出結果:4 2 4

a++相當於 a = a + 1,是在執行完當前行程式碼後,再自增

++a也是 a = a + 1,但是++a是在執行當前行之前,就已經自增了

Math類

Math類是Java的一個工具類,它提供了很多數學運算方法

例如:Math.pow(3,2)相當冪次運算3^2

位運算

位運算就是根據位進行運算

A = 0011 1100

B = 0000 1101


與運算:A&B = 0000 1100

或運算:A|B = 0011 1101

異或運算:A^B = 11001110

非運算:~B = 1111 0010

面試題:

2*8怎麼運算最快?(對於計算機):2<<3

二進位制中:
<< 相當於 *2
>> 相當於 /2

擴充套件運算子

a+=b 相當於 a = a+b

a-=b 相當於 a = a-b

面試題

System.out.println(""+a+b);
System.out.println(a+b+"");
上面兩行程式碼有什麼區別?

如過字串在前面,後面的則會拼接

如果字串再後面,依舊進行運算

三元運算子 ? :

x ? y : z

上面一行的程式碼意思為如果x==true,則結果為y,否則為z

優先順序