JavaSE-03运算符
算术运算符
+ - * / % ++ --
//加减乘除 取余 自增 自减
运算遵循四则运算规则,可以使用任意嵌套的小括号。四则运算规则和初等数学一致。
//运算细节
public class ArithmeticOperator{
public static void main(String[] args){
// / 除
System.out.println(10 / 4); //2 整型/整型=整型
System.out.println(10.0 / 4); //2.5 double/整型=double
double d =10 / 4; //2->double 2.0
System.out.println(d);
// % 取余 公式 a % b = a - a/b *b
System.out.println(10 % 3); // 1
System.out.println(-10 % 3); // -1
System.out.println(10 % -3); // 1
System.out.println(-10 % -3); // -1
// ++ 的使用
int i = 10;
i++;//11
++i;//12
System.out.println("i="+i);
//表达式使用
int j = 8;
int k = ++j; //k=9 先自增在赋值
int j1 = 8;
int l = j1++; //l=8 先赋值在自增
System.out.println("k=" + k + " l=" + l);
}
}
关系运算符
== != > < >= <=
主要用于布尔运算。
public class Test {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println("a == b = " + (a == b) );
System.out.println("a != b = " + (a != b) );
System.out.println("a > b = " + (a > b) );
System.out.println("a < b = " + (a < b) );
System.out.println("b >= a = " + (b >= a) );
System.out.println("b <= a = " + (b <= a) );
}
}
/*
a == b = false
a != b = true
a > b = false
a < b = true
b >= a = true
b <= a = false
*/
逻辑运算符
与运算:短路与 && 、逻辑与 &
或运算:短路或 || 、逻辑或 |
非运算:!
异或:^ 左右两边 1 true 1 false 为 ture
public class Test {
public static void main(String[] args) {
boolean a = true;
boolean b = false;
System.out.println("a && b = " + (a&&b));
System.out.println("a || b = " + (a||b) );
System.out.println("!(a && b) = " + !(a && b));
}
}
短路与符号左边为假则不会运算右边的算式
短路或符号左边为真则不会运算右边的算式
赋值运算符
= += -= *= /= %=
进行计算赋值
三元运算符
类似于if..else..
public class Test {
public static void main(String[] args){
int a , b;
a = 10;
// 如果 a 等于 1 成立,则设置 b 为 20,否则为 30
b = (a == 1) ? 20 : 30;
System.out.println( "Value of b is : " + b );
// 如果 a 等于 10 成立,则设置 b 为 20,否则为 30
b = (a == 10) ? 20 : 30;
System.out.println( "Value of b is : " + b );
}
}
位运算
操作符 | 描述 | 例子 |
---|---|---|
& | 如果相对应位都是1,则结果为1,否则为0 | (A&B),得到12,即0000 1100 |
| | 如果相对应位都是 0,则结果为 0,否则为 1 | (A | B)得到61,即 0011 1101 |
^ | 如果相对应位值相同,则结果为0,否则为1 | (A ^ B)得到49,即 0011 0001 |
〜 | 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。 | (〜A)得到-61,即1100 0011 |
<< | 按位左移运算符。左操作数按位左移右操作数指定的位数。 | A << 2得到240,即 1111 0000 |
>> | 按位右移运算符。左操作数按位右移右操作数指定的位数。 | A >> 2得到15即 1111 |
>>> | 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 | A>>>2得到15即0000 1111 |
优先级
在Java的计算表达式中,运算优先级从高到低依次是:
()
!
~
++
--
*
/
%
+
-
<<
>>
>>>
&
|
+=
-=
*=
/=
instanceof 运算符
用于判断该对象是否是一个特定类型
String name = "James";
boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回true
本文来自博客园,作者:九天揽月丶,转载请注明原文链接:https://www.cnblogs.com/-meditation-/articles/16290833.html