Java初学笔记2(运算符)

Java运算符

  • 算术运算符:+,-,*, /,%,++,--
  • 赋值运算符:=
  • 关系运算符:>, < , >= ,<= , == , != instanceof
  • 逻辑运算符:&&,||, !
  • 位运算符:&,|,^, ~ , >> , << , >>>(了解!!!)
  • 条件运算符: ? :
  • 扩展赋值运算符: += ,-=, *=,/=

自增,自减

public class Demo{
    
        public static void main(String[] args){
         //++ --      自增,自减     一元运算符
            int a =3;
             
            int b =a++;       //执行完这行代码后,先给b赋值,再自增
            //a++ a=a+1;
           System.out.prinln(a); //4
            //++a a=a+1;
            int c =++a;        //执行完这行代码前,先自增 ,再给c赋值
       
         System.out.prinln(a);  //5
         System.out.prinln(b);  //3
         System.out.prinln(c);  //5
            
            
            
         //幂运算  2^3  2*2*2
         double pow =Math.pow(2,3);//8.0
          System.out.prinln(pow);
    }
}

逻辑运算符

public class Demo{
    
        public static void main(String[] args){
            //  与(and)  或(or)   非(取反)
            boolean a=true;
            boolean b=false;
            
            System.out.prinln(a&&b);  //逻辑与运算,两个变量都为真,结果才为 true
            System.out.prinln(a||b); //逻辑或运算,两个变量有一个为真,结果才为true
            System.out.prinln(!(a&&b));//逻辑非运算,如果为真,则变为假,如果为假则为真
            
            
            //短路运算
            
           int c=5;
            boolean d=(c<4)&&(c++<4);
            
            
            System.out.prinln(c);   //5
            System.out.prinln(d);  //false
            /* 
            如果后面c++<4 执行的话,c的结果会变为6,但结果为5,说明前面为假的时候,后面不执行,短路
            */
        }
}

位运算

public class Demo{
    
        public static void main(String[] args){
            
            /*
            A = 0011 1100
            B = 0000 1101
---------------------------------------------------------    
           A&B= 0000 1100  //如果上面跟下面一位去比较,两个都为1他才为1
           A|B= 0011 1101 //如果上面跟下面有一个1,他为1否则为0
           A^B= 0011 0001 //如果上面跟下面相同,值为0,否则为1
           ~B=  1111 0010 //跟自身完全相反的
           
         如何使 2*8=16运算的更快    2*2*2*2 
           <<(左移)*2   >>(右移)/2
           相当于把数字按位向左和向右移动
           比如下面1向左移动 从2(0000 0010) ->4(0000 0100)
           0000 0000     0
           0000 0001     1 
           0000 0010     2
           0000 0100     4
           0000 1000     8
           0001 0000     16
           因为使用的是二进制运算,所以计算效率很高!!!
           */
             System.out.prinln(2<<3);
        }
}

扩展赋值运算符

public class Demo{
    
        public static void main(String[] args){
            
            int a=10;
            int b=20;
            
            a+=b;
             System.out.prinln(a); //30 a=a+b
            
            //字符串连接符 +,string
            
             System.out.prinln(a+b); //30
             System.out.prinln(""+a+b);//1020  字符串在前面,会拼接
            System.out.prinln(a+b+"");//30
            
        }
}

三元运算符

x?y:z

//如果x==true,则结果为y,否则结果为z

int score=80;

String type=score<60 ?"不及格":"及格"

优先级 运算符 结合性
1 ()、[]、{} 从左向右
2 !、+、-、~、++、-- 从右向左
3 *、/、% 从左向右
4 +、- 从左向右
5 «、»、>>> 从左向右
6 <、<=、>、>=、instanceof 从左向右
7 ==、!= 从左向右
8 & 从左向右
9 ^ 从左向右
10 | 从左向右
11 && 从左向右
12 || 从左向右
13 ?: 从右向左
14 =、+=、-=、*=、/=、&=、|=、^=、~=、«=、»=、>>>= 从右向左
posted @ 2020-10-06 19:01  hycgg  阅读(120)  评论(0)    收藏  举报