JavaSE-运算符

 

JavaSE-运算符

Java语言支持的运算符:优先级,建议用括号,代码易读

  • 算术运算符:+,-,*,/,%,++,--;

  • 赋值运算符:=;

  • 关系运算符:<,>,<=,>=,!=;

  • 逻辑运算符:&&,||,!;

  • 位运算符:&,|,^,~,>>,<<,>>>(了解);

  • 条件运算符:?;

  • 扩展赋值运算符:+=,-=,*=,/=;

算术运算符

  • 算术运算符:+,-,*,/,%,++,--;

     

//*************简单的运算符应用******************
public class Demo01 {
   public static void main(String[] args) {
       int a = 10;
       int b = 20;
       int c = 30;
       int d = 41;
       System.out.println(a+b);
       System.out.println(b-a);
       System.out.println(c*d);
       System.out.println(d/(double)c);//相除记得强制转换
       System.out.println(d%b);//取余,模运算
  }
}

//***********简单运算时的数值类型************************
public class Demo02 {
   public static void main(String[] args) {
       long a = 1218187218L;//记得加L
       int b = 1212;
       short c = 122;
       byte d =12;
       float e = 12.22f;//记得加F
       double f = 12.33212133d;
       //当数值有long,double,float类型时,输出肯定是long,double,float类型
       //当数值没有long,doublet,float类型时,输出的结果是int类型
       System.out.println(a+b+c+d);//输出是long
       System.out.println(b+c+d);//输出是int类型
       //下面这行代码会出错,查看出错原因,可以看出输出值是int类型
       //System.out.println((String)(c+d));
       System.out.println(c+d);//输出是int类型
       //尽量不要直接拿浮点型数值去做任何运算
       System.out.println(e+d);//输出是float类型,但结果有误差 24.220001
       System.out.println(d+f);//输出是double类型,但结果有误差 24.33212133
  }
}

//*************自增自减运算符*********************
public class Demo04 {
   public static void main(String[] args) {
       //++,-- 自增,自减,一元运算符
       int a = 3;
       int b = a++;//b=a++运算规则,先把a赋值给b,a再自增1;(b=a++表示为: b=a;a=a+1;)
       int c = ++a;//c=++a运算规则,a先自增1,再把a赋值给c,;(c=++a表示为: a=a+1;c=a;)
       System.out.println(a);
       System.out.println(b);
       System.out.println(c);
       //幂运算:Math工具包,多数运算都会用运算工具类
       double pow = Math.pow(4,2);
       System.out.println(pow);
  }
  }

赋值和关系运算符

  • 赋值运算符:=;

  • 关系运算符:<,>,<=,>=,!=;

public class Demo03 {
   public static void main(String[] args) {
       //关系运算符:<,>,==,!=,结果为布尔类型;
       int a = 20;//赋值运算
       int b = 10;
       System.out.println(a<b);
       System.out.println(a>b);
       System.out.println(a==b);
       System.out.println(a!=b);
  }
}

逻辑运算符

  • 逻辑运算符:&&,||,!;

public class Demo05 {
   public static void main(String[] args) {
   //逻辑运算符:与(&&),或(||),非(!)
    boolean a = true;
    boolean b = false;
    System.out.println("a&&b:"+(a&&b));//两个为真才为真,一个为真则为假
    System.out.println("a||b:"+(a||b));//一个为真即为真,两个为假才为假
    System.out.println("!(a&&b):"+!(a&&b));//如果是真,则为假
   //短路运算,逻辑与(&&)运算过程中,一旦符号前面为假,直接输出结果为假,后面不再运算
    int c = 2;
    int d = 4;
    System.out.println((c>3)&&(++d>4));
    System.out.println(d);
  }
}

位运算符

  • 位运算符:&,|,^,~,>>,<<,>>>(了解);

public class Demo06 {
   public static void main(String[] args) {
       //位运算符
       /*
       * A = 0011 1100
       * B = 1101 0001
       *
       *A&B =0001 0000 // 对应位同为1才为1,否则为0
       *A|B =1111 1101 // 对应位同为0才为0,否则为1
       *A^B =0001 0010 // 对应位相同为0,相异为1
       *~A =1100 0011 // 取反,对应位取反就好
       *
       * 2*8=2*2*2*2
       * 左移<<   右移>>,位运算在计算机中运行最快,因为都是0,1的组成
       * 2*8=2<<3
       * 2转为二进制 0000 0010 ,左移3位,0001 0000=16
       */
       System.out.println(2<<3);
  }
}

条件运算符

  • 条件运算符:?;x?y:z,如果x为真,结果为y,如果x假结果为z

  • 扩展赋值运算符:+=,-=,*=,/=; a+=b;//a=a+b

  • 字符串连接符 :+;字符串在前,后面类型自动转为字符串,字符串在后,前面字符类型正常运算再转字符串

public class Demo07 {
   public static void main(String[] args) {
       //扩展赋值运算符
       int a = 10;
       int b = 20;
       a+=b;//a=a+b
       a-=b;//a=a-b
       a*=b;//a=a*b
       a/=b;//a=a/b
       //*****字符串连接符,面试考的********
       //结果为:home1020,字符串在前,后面类型自动转为字符串
       System.out.println("home"+a+b);
       //结果为:30end,字符串在后,前面字符类型正常运算再转字符串
       System.out.println(a+b+"end");
       System.out.println("***********三元运算符:*************");
       //三元运算符:?
       //x?y:z,如果x为真,结果为y,如果x假结果为z
       //如果x为真,结果为y,如果x假结果为z
       int height = 80;
       String type = height>90?"pass":"loss";
       System.out.println(type);

  }
}

 

 

posted on 2021-03-09 14:54  唐唐唐11  阅读(52)  评论(0)    收藏  举报