运算符
/**
* 运算符
*/
public class Demo03 {
public static void main(String[] args) {
//当存在long类型进行运算时,结果为long类型,不存在时,结果为int类型
//小数之间运算结果为double类型
long l = 2132545635435345L;
int i = 12;
short s = 34;
byte b1 = -2;
System.out.println(l+i+s+b1);//结果为long
System.out.println(i+s+b1);//结果为int
System.out.println(s+b1);//结果为int
System.out.println("========================");
//位运算
int a = 3;
int b = a++;//i++先赋值,再运算
System.out.println(a);
int c = ++a;//++i先运算,再赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println("========================");
//幂运算 2*2*2
double pow = Math.pow(2,3);
System.out.println(pow);
System.out.println("========================");
//短路运算 左边为假,右边直接不运算
int i2 = 5;
boolean b2 = (i2<4) && (i2++<4);
System.out.println(b2);
System.out.println(i2);
System.out.println("========================");
/**
* 位运算
* A 0000 0101
* B 0001 1001
* ------------------------------------------
* 与 A&B 0000 0001 都为1才为1,否则为0
* 或 A|B 0001 1101 只要有一个为1就为1,其他都为0
* 异或 A^B 0001 1100 相同为0,不相同为1
* 非 ~B 1110 0110 取反
*/
/**
* 经典面试题 2*8怎么算最快 位运算最快 效率高,直接和计算机底层打交道
* 0000 0000 0
* 0000 0001 1
* 0000 0010 2
* 0000 0011 3
* 0000 0100 4
* 0000 1000 8
* 0001 0000 16
*/
System.out.println(2<<3);
}
}