运算符
- 算术运算符: + , - , * , / , % , ++ , - -
- 赋值运算符: =
- 关系运算符: > , < , >= , = = , != , instanceof
- 逻辑运算符: && , || , !
- 位运算符: & , | , ^ , ~ , >> , << , >>>
- 条件运算符: ? :
- 扩展赋值运算符:+=,=,=,/=
package operator;
public class Demo01 {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 10;
int d = 10;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);//输出为0,int型变量结果小数被抹了
System.out.println(a/(double)b);//输出为0.5
}
}
package operator;
public class Demo02 {
public static void main(String[] args) {
long a = 1000000000000L;
int b = 588;
short c = 17;
byte d =6;
//有long就转为long,没long都是int 就算变量没有int类型的也是int
System.out.println(a+b+c+d); //long
System.out.println(b+c+d); //int
System.out.println((double)c+d); //int
//运算结果的数据类型为参与运算的变量中的最高优先级的数据类型
}
}
package operator;
public class Demo03 {
public static void main(String[] args) {
//关系运算符产生的结果 true false 是个布尔值
int a = 10;
int b = 100;
int c = 205;
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
System.out.println(c%b); //取余 也称模运算
}
}
Math类
//幂运算: 如2^3 = 8 , 很多运算我们会使用一些工具类来运算
//如Math数学类
double pow = Math.pow(2, 3);
System.out.println(pow);
逻辑运算符、位运算
package operator;
public class Demo04 {
public static void main(String[] args) {
//逻辑运算符 与(&&) 或(||) 非(取反)
boolean a = true ;
boolean b = false ;
System . out . println (" a && b :"+(b&&a));//逻辑与运算:两个变量都为真,结果才 rue
System . out . println ("a || b :"+( a||b ));//逻辑或运算:两个变量有一个为真,则结果才 true
System . out . println ("!( a && b ):"+!(a&&b));//如果是真,变为假,如果是假则变为真/短路运算
int c = 5;
boolean d = ( c < 4 )&&( c++ < 4);
System . out . println ( d );
System . out . println ( c );
/*
* 位运算
*
* a = 0000 0011
* b = 0000 1100
*--------------------
* a & b = 0000 0000
* a | b = 0000 1111
* a ^ b = 0000 1111 相同为0 不同为1
* ~ b = 1111 0011 取反
*
*
* 二进制 效率及高!!!
* 2*8 = 16
* 2*2*2*2
* << 左移 *2
* >> 右移 /2
* */
}
}
三元运算符、字符串连接符
package operator;
public class Demo05 {
public static void main(String[] args) {
//三元运算符
// x ? y : z
//如果 x为真 则结果为y 若x为假 则结果为z
int score = 400;
String result = (score<350) ? "上班吧" : "wsh上岸啦!!!" ;
System.out.println(result);
//字符串连接符 +
int a = 10;
int b = 20;
System.out.println("String"+a+b);//:1020 先遇到String类型会把其他操作数也转换成String型的
System.out.println(a+b+"String");//:30 先运算结果为30 后变为String型了
}
}
运算符优先级
优先级 | 描述 | 运算符 |
---|---|---|
1 | 括号 | ()、[] |
2 | 正负号 | +、- |
3 | 自增自减,非 | ++、–、! |
4 | 乘除,取余 | *、/、% |
5 | 加减 | +、- |
6 | 移位运算 | <<、>>、>>> |
7 | 大小关系 | >、>=、<、<= |
8 | 相等关系 | ==、!= |
9 | 按位与 | & |
10 | 按位异或 | ^ |
11 | 按位或 | | |
12 | 逻辑与 | && |
13 | 逻辑或 | || |
14 | 条件运算 | ?: |
15 | 赋值运算 | =、+=、-=、*=、/=、%= |
16 | 位赋值运算 | &=、|=、<<=、>>=、>>>= |
注:表为博客园大佬的文章里看的,昵称: LinkerIsKnow
若侵删