Java基础04
作者:互联网
运算符
-
算数运算符 + - * / % -- ++
-
赋值运算符 =
-
关系运算符 >, <, >=, <=, ==, !=, instanceof
-
逻辑运算符&&, ||, !
-
位运算符&, |, ^, ~, <<, >>, >>>
-
条件运算符 ? :
-
偷懒赋值运算符 +=, -=, *=, /=
算数运算符
public class Demo01 {
public static void main(String[] args) {
int a = 10;
long b = 23213L;
short c = 23;
byte d = 122;
System.out.println(a+b+c+d);//long类型
System.out.println(a+c+d);//int类型
System.out.println(c+d);//int类型
}
}
在这里有long类型结果为long
如果没有long,结果都是int类型
自增自减
public static void main(String[] args) {
int x = 3;
int y = x++; //先执行y = x 然后再执行x = x + 1
int z = ++x; //先执行x = x + 1 然后再执行z = x
System.out.println(x);
System.out.println(y);
System.out.println(z);
}
//分别输出 5 3 5
可以看见自增/减运算符的位置会影响执行的顺序
关系运算符
public class Demo02 {
public static void main(String[] args) {
//关系运算符
int a = 10;
int b = 20;
System.out.println(a>b);
System.out.println(a<b);
}
}
//系统分别输出 false、true
通过关系运算返回的是一个布尔值
逻辑运算符
就是我们很常说的 与或非
短路运算
public class Demo03 {
public static void main(String[] args) {
int c = 5;
boolean flag = (c < 4)&&(c++ > 4);
System.out.println(flag);
System.out.println(c);
}
}
//系统输出 false 5
很明显 判断完c < 4为假直接结束了与运算,给flag赋了false
后续系统输出的5说明c并没有自增,也证明了c++ > 4没有被执行,这就是所谓的短路运算
位运算符
/**
* A = 0011 1100
* B = 0000 1101
* |||| ||||
* |||| ||||
* A&B 0000 1100
* A|B 0011 1101
* A^B 0011 0001
* ~B 1111 0010
*/
这里的位运算就和计算机组成原理位运算一样 参考着理解就行
拓展:2*8怎么做最为快速?
/*
* 2*8=16 2*2*2=16
*
* << *2
* >> /2
* 效率极高!
*
* 0000 0001 1
* 0000 0010 2
* 0000 0011 3
* 0000 0100 4
* 0000 1000 8
* 0001 0000 16
*/
System.out.println(2 << 3);
不难发现1每左移一位 就是在乘2,因此2*8直接看成2左移3位,
对于计算机来说,位运算是最具有效率的运算方式,因此就是2<<3位最快速的方法
三元运算符
一句话看懂 网恋 ? 双流机场-8000 : 无事发生
字符串拼接
int a = 10;
int b = 20;
System.out.println("" + a + b);
System.out.println(a + b + "");
//输出 1020 30字符串在前面,后面的加号就是拼接 字符串在后面,那前面的加号就是加运算了
优先级
优先级 | 运算符 | 结合性 |
---|---|---|
1 | ()、[]、{} | 从左向右 |
2 | !、+、-、~、++、-- | 从右向左 |
3 | *、/、% | 从左向右 |
4 | +、- | 从左向右 |
5 | <<、>>、>>> | 从左向右 |
6 | <、<=、>、>=、instanceof | 从左向右 |
7 | ==、!= | 从左向右 |
8 | & | 从左向右 |
9 | ^ | 从左向右 |
10 | | | 从左向右 |
11 | && | 从左向右 |
12 | || | 从左向右 |
13 | ?: | 从右向左 |
14 | =、+=、-=、*=、/=、&=、|=、^=、~=、«=、»=、>>>= | 从右向左 |
标签:Java,04,int,基础,System,运算符,println,左向右,out 来源: https://www.cnblogs.com/shiranai/p/15427142.html