• JAVA中的运算符


    Java语言支持如下运算符:

    算术运算符:

    算数运算符包括:
    + 加法运算,字符串连接运算
    - 减法运算
    * 乘法运算
    / 除法运算
    % 取模运算,两个数字相除取余数
    ++ -- 自增自减运算

    赋值运算符:=

    关系运算符:

    比较运算符包括
    == 比较符号两边数据是否相等,相等结果是true。
    < 比较符号左边的数据是否小于右边的数据,如果小于结果是true。
    > 比较符号左边的数据是否大于右边的数据,如果大于结果是true。
    <= 比较符号左边的数据是否小于或者等于右边的数据,如果小于结果是true。
    >= 比较符号左边的数据是否大于或者等于右边的数据,如果小于结果是true。
    != 不等于符号 ,如果符号两边的数据不相等,结果是true。
    Instanceof

    逻辑运算符:

    逻辑运算符包括:
    && 短路与 1. 两边都是true,结果是true 2. 一边是false,结果是false 短路特点:符号左边是false,右边不再运算
    ||短路或 1. 两边都是false,结果是false 2. 一边是true,结果是true 短路特点: 符号左边是true,右边不再运算
    取反 1. ! true 结果是false 2. ! false结果是true

    位运算符:&|^~>><<>>>(了解!!!)

    条件运算符:?

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


    算术运算符

    自增运算符:+``+

    自减运算符:--

    以上两种运算符可以称为一元运算符(因为他们可以一个数进行加减的变化)

    • ++/--:执行代码前,先自增,再赋值。
    • ++/--:先赋值,代码执行后,再自增。
    public static void main(String[] args) {
            int a=3;
            int b=a++;
            //执行这行代码后,先给b赋值,再自增。
            System.out.println(a);//4
            int c=++a;
            //执行这行代码前,先自增,再给b赋值。
            System.out.println(a);
            //a=5
            System.out.println(b);
            //b=3
            System.out.println(c);
            //c=5
        }						
    

    扩展:很多运算,我们都会使用一些工具类来操作。

    double pow = Math.pow(2,3);
    //Math.pow 幂运算
    System.out.println(pow);//8 2^3
    

    注意:

    再多个操作中,有一个数为比int大的数据类型,则数据结果就为改类型,如果没有比int打的数据类型大的数,结果都为int.

    小建议:当整数相除的时候,建议把其中一个整数转换成double类型

       public static void main(String[] args) {
            long a=123456789L;
            int  b=123;
            short c=10;
            byte d=8;
            System.out.println(a+b+c+d);//long
            System.out.println(b+c+d);//int
            System.out.println(c+d);//int
        }
    

    关系运算符

    关系运算符的结果为:false,true 是一个布尔值

        public static void main(String[] args) {
            //关系运算符返回的结果:正确,错误 布尔值
            int a=10;
            int b=20;
            int c=20;
    
            System.out.println(a>b);//fasle
            System.out.println(a<b);//true
            System.out.println(b==c);//rue
        }
    

    逻辑运算符

    &&(与),||(或),!(非:取反)

    逻辑与运算&&:两个变量都为真,结果才为true

    逻辑或运算||:两个变量其中一个为真,则结果才为真

    取反:结果如果是真,则为假,如果是假则为真

       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));
        }
    

    注意事项

    1. 与“&&”和或“||”有短路效果:如果根据左边已经可以判断出最终结果,那么右边的代码将不会执行
    2. 逻辑运算符只能用于boolean值。
    3. 与、或需要左右各一个布尔值,但是取反只要有一个的一个布尔值即可。
    4. 与、或、两种运算符,如果多个条件,可以连续写。
    int  c=5;
    boolean d=(c<4)&&(c++<4);
    System.out.println(d);//false
    System.out.println(c);//5
    

    位运算符:

    &:需要都为1结果才是1,否则就为0

    |:有一个为1结果就是1,其他时候为0

    ^:相同为0,不相同为1

    public static void main(String[] args) {
        /*A=0011 1100;
          B=0000 1101;
    
        A&B=0000 1100
        A|B=0011 1101;
        A^B(异或)=0011 0001;
        
        ~B(取反)=1111 0010
        */
    }
    
    面试题:

    2*8怎么运算最快

    答:int a=2<<3

    >>左移 /2
    <<右移 *2
    

    扩展赋值运算符

    不建议使用

    public static void main(String[] args) {
        int a=10;
        int b=20;
    
        a+=b;//a=a+b;
        a-=b;//a=a-b;
        System.out.println(a);
    }
    

    扩展:

    字符串连接符:+

    在加号的两侧只要出现了String类型,他就会其他都转换成String再进行连接

    • 如果String是在前面,后面的会拼接,
    • 如果String在后面,前面的就不会进行拼接,该干嘛干嘛
    面试题

    System.out.println(a+b+"");和System.out.println(""+a+b);有什么区别?

    public static void main(String[] args) {
            int a=10;
            int b=20;
            a+=b;//a=a+b;
            a-=b;//a=a-b;
            System.out.println(a);
            System.out.println("=====");
            System.out.println(a+b);
            System.out.println(""+a+b);//1020
            System.out.println(a+b+"");//30
            //1.在加号的两侧只要出现了String类型,他就会其他都转换成String再进行连接
            //2.如果String是在前面,后面的会拼接,
            //  如果String在后面,前面的就不会进行拼接,该干嘛干嘛
     }
    

    三元运算符

    • 三元运算符格式:
       int    i     =   (1==2 ?   100 : 200);
    数据类型  变量名   =  布尔表达式? true: flase
    

    三元运算符计算方式:

    1. 布尔类型表达式结果是true,三元运算符整体结果为结果1,赋值给变量。
    2. 布尔类型表达式结果是false,三元运算符整体结果为结果2,赋值给变量。
    public static void main(String[] args) { 
        int i = (1==2 ? 100 : 200); 
        System.out.println(i);//200 
        int j = (3<=4 ? 500 : 600); 
          //条件判断语句? true:flase
        System.out.println(j);//500 
    }
    
  • 相关阅读:
    使用python自带的http server共享文件
    vim常用快捷键与快捷操作
    wordpress 安装中文插件提示:To perform the requested action, WordPress needs to access your web server. Please enter your FTP cr
    python async异步编程,await后接task(三)
    虚拟机下ubuntu使用df命令查看磁盘空间小于实际空间
    python线程池
    使用Redis连接错误处理It was not possible to connect to the redis server(s);to create a disconnected multiple
    Sqlite数据库设置密码小工具
    [转]netcore一键部署到linux服务器以服务方式后台运行
    C#3种常见的定时器(多线程)
  • 原文地址:https://www.cnblogs.com/Tisto/p/12933355.html
Copyright © 2020-2023  润新知