zoukankan      html  css  js  c++  java
  • 3.16Java运算符

    3.16Java运算符

    本章内容

    • 算术运算符

    • 关系运算符

    • 位运算符

    • 逻辑运算符

    • 赋值运算符

    • 其他运算符


    算术运算符

    所包含的算术运算符如下:

    重点关注如下几个算术运算符:

    public class Test{
       
       public static void main(String[] arguments){
           int a = 10;
           int b = 25;
           System.out.println("a%b =" + (b%a));
           System.out.println("a++ =" + (a++));
           System.out.println("a-- =" + (a--));
           //注意 b++与++b的不同
           System.out.println("b++ =" + (b++));
           System.out.println("++b =" + (++b));
      }
    }
    自增自减运算符

    实例:

    public class selfAddMinus{
       public static void main(String[] arguments){
           int a = 3;//定义一个局部变量
           int b = ++a;//自增运算
           int c = 3;
           int d = --c;//自减运算
           System.out.println("自增运算后的值" + b);
           System.out.println("自减运算后的值" + d);
      }
    }

    解析:

    • int b = ++a;

      • 拆分过程:a = a + 1 =4; b = a = 4,最后结果为:b = 4,a = 4

    • int d = --c;

      • 拆分过程:c = c - 1 =2;d = c = 2,最后结果为:d = 2,c = 2

    最关键的两句话
    前缀自增自减法(++a,--a):

    先进行自增或者自减运算,在进行表达式运算

    后缀自增自减法(a++,a--):

    先进行表达式运算,再进行自增或者自减运算

    实例:

    public class selfAddMInus{
       public static void main(String[] arguments){
           int a = 5;
           int b = 5;
           int x = 2*++a;
           int y = 2*b++;
           System.out.println("自增运算符前缀运算后a=" + a +",x=" + x);//先进行自增或者自减运算,在进行表达式运算
           System.out.println("自增运算符后缀运算后b="+ b +",y=" +y);
      }//先进行表达式运算,再进行自增或者自减运算
    }

    关系运算符

    实例:

    public class TestNo1{
       
       public static void main(String[] arguments){
           int a = 10;
           int b = 20;
           System.out.println("a == b =" + (a == b));
           System.out.println("a != b =" + (a != b));
      }
    }
    //注意关系运算符返回的值是boolean

    位运算符

    特点:

    • Java定义了位运算符,应用与整数类型(int)、长整数型(long)、短整数型(short)、字符型(char)、字节型(byte)等类型

    • 位运算符作用再所有的位上,按位运算

    实例:

    /*
    下面声明的是十进制数
    */
    //A = 60 B = 13它们的二进制表示如下:
    /*
    A = 00111100;
    B = 00001101;
    */
    public class TestNo2{
       
       public static void mian(String[] arguments){
           int a = 60;/*60十进制数转为二进制=00111100*/
           int b = 13;/*13十进制数转为二进制=00001101*/
           int c = 0;
           c = a & b; /*12 = 00001100*/
           System.out.println("a & b =" + c);
           
           c = a | b;
           System.out.println("a | b =" + c);
           
           c = a ^ b;/*49 = 00110001*/
           System.out.println("a ^ b =" + c);
           
           c = ~a;/*-61 = 11000011*/
           System.out.println("~a =" + c);
           
           c = a;
           System.out.println("a>>2 =" + c);
           
           c = a << 2;     /* 240 = 1111 0000 */
        System.out.println("a << 2 = " + c );

        c = a >> 2;     /* 15 = 1111 */
        System.out.println("a >> 2 = " + c );
     
        c = a >>> 2;     /* 15 = 0000 1111 */
        System.out.println("a >>> 2 = " + c );
      }
    }

    逻辑运算符

    实例:

    public class TestNo3{
       
       public static void main(String[] arguments){
           boolean a = true;
           boolean b = false;
           System.out.println("a && b =" + (a && b));
           System.out.println("a || b =" + (a || b));
           System.out.println("!(a && ) =" +!(a && b));
      }
    }

    短路逻辑运算符

    特点:

    当使用与逻辑运算符时,在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断第二个操作了。

    public class LuoJi{
       public static void main(String[] arguments){
           int a = 5;
           boolean b = (a<4) && (a++<10);
           System.out.println("使用短路裸机运算符的结果为" + b);
           System.out.println("a的结果为" + a):
      }
    }
    /*
    解析:
    该程序使用到了短路逻辑运算符(&&),首先判断 a<4 的结果为 false,则 b 的结果必定是 false,所以不再执行第二个操作 a++<10 的判断,所以 a 的值为 5。
    */

    赋值运算符

     


    条件运算符(?:)

    特点:

    • 也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值

    作用:

    • 决定哪个值应该赋值给变量

    实例:

    public class TestNo3{
       
       public static void main(String[] arguments){
           int a,b;
           a = 10;
           //如果a = 1成立,则设置b为20,否则为30
           b = (a == 1)?20 : 30;
           System.out.println("Value of b is:" + b);
           
           //如果a = 10成立,则设置b为20,否则为30
           b = (a == 10)?20 : 30;
           System.out.println("Value of b is:" + b);
      }
    }

    instanceof(n.实例)运算符

    特点:

    • 该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)

    • instanceof运算符使用格式:

      • ( Object reference variable ) instanceof ( class/interface type )
    • 如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。

      • String name = "James";
        boolean result = name instanceof String;//name是String类型,所以返回真
    • 如果被比较的对象兼容于右侧类型,该运算符仍然返回true。

      • class Vehicle{}

        public class Car extends Vehicle{
           public static void main(String[] arguments){
               Vehicle a = new Car();
               boolean result = a instanceof Car;
               System.out.println(result);
          }
        }

    Java运算符优先级

     

    It's a lonely road!!!
  • 相关阅读:
    Windows Live Writer Testing
    基于本地文件系统的LocalDB
    【笔记】动画显示窗体
    winform无边框窗口拖动
    关于js的内存机制
    flex-basis
    Cookie、session和localStorage、以及sessionStorage之间的区别
    关于报文
    关于http与https Tcp的三次握手四次握手
    关于前后端分离与不分离
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/14545804.html
Copyright © 2011-2022 走看看