JavaDay02:运算符

运算符

  1. 赋值运算符=,优先级别最低
  2. 算术运算符 + - * / %,使用时会统一数据类型
    除数不能为0
    浮点数不能作为准确的精度运算,如:
double c =(double) 5/2 ;
System.out.println(c);  //2.5
System.out.println(0.1+0.2);  //0.30000000000000004

当byte,short进行运算的时候,先提升为int再进行运算
+也可作为字符串的拼接,字符串跟任意类型拼接的结果都是字符串,如:

int b = 1+2+3 ;
System.out.println(b);   //6
System.out.println("1"+18);     //118
System.out.println(18-1+"1");   //171
System.out.println(b+"1");   //61
  1. 自增自减运算符:++(–)写在后面是先使用后自增,写在前面是先自增再使用
int r = ++t + t++  +  ++t  +  ++t ;
System.out.println(r);   //29
  1. +=运算符 s += 1;—>s = s+1; 两者有区别:
short s = 1 ;
s += 2;//不报错,为short型
System.out.println(s);
s = s+2  ;//报错,2为int型--->s+2也为int型,需要强转
System.out.println(s);
  1. 比较运算符: > < >= <= == !=,比较运算的结果是boolean类型的
System.out.println(5>3);//true
System.out.println(5<3);//false
  1. 逻辑运算符: && || ! & |,运算结果为boolean类型,操作数也为boolean类型
    &&:当2个操作数都是true的时候才是true,否则结果是false
    ||:当2个操作数有一个是true的时候就是true,否则结果是false
    &&与||具有短路功能:
int i = 1 ;
System.out.println(true && i++>3);
System.out.println(i); //2
		
int j = 1 ;
System.out.println(false && j++>3);//短路
System.out.println(j); //1
int j = 1 ;
System.out.println(true || j++>3);//短路
System.out.println(j); //1

System.out.println(false || j++>3);
System.out.println(j); //2
  1. ^ << ~ & | 运算符
    & | 作为逻辑运算的时候跟&& || 逻辑一样,只是没有短路功能:
int i = 1 ;
System.out.println(false & i++>3);//false,没有短路
System.out.println(i);//2
System.out.println(5&3);//101&011-->001
System.out.println(5|3);//101|011-->111
System.out.println(5^3);//逻辑异或,相异为1
		
System.out.println(~5);//按位取反
//00000000000000000000000000000101
//11111111111111111111111111111010 
System.out.println(0b11111111111111111111111111111010);
		
System.out.println(4<<1);//左移一位:0100--->1000
System.out.println(16>>2);//4
System.out.println(16>>>2);//直接右侧补0--->4
  1. 条件运算符:条件判断?表达式1:表达式2
    条件判断必须是一个boolean
System.out.println(5<3?"hello":"bye");//bye
System.out.println(5>3 ? 9 : 3.1);//9.0

你可能感兴趣的:(JavaBase,java)