• Java 操作符与运算符详解


    一.赋值操作符

    1 有哪些赋值操作符

     


    2 需要注意的地方
    1)
    a+=b; ==> a = a+b;
    a-=b; ==>a = a-b;

    a =-b;//注意这里-不要写在=的后面

    2)
    short s = 7;
    s = s+3;//出错,在作算术运算的时候,会将小类型提升为大类型运算
    s += 3;//没有任何问题

    说明:
    E1 op= E2; a += 3;
    编译器会将它编译成=> E1 =(T)(E1 op E2);
    s+=3 => s = (short)(s+3);

    二.算术运算符

     


    注意的地方


    int i = 8/3;// i得到2 ,不是2.333333333
    int i = 8/0; //编译没问题,运行出错,整型相除,0不能作为除数
    double d = 8.0/0; //没问题,得到正无穷大
    double d = 8/0;//整型相除,0不能作为除数

    int i = 8%3; //余2,i就是2



    请各个位数之和:
    //求各个位数之和
    int i = 9829;
    //得到各位数


    int geWei = i/1%10;
    int shiWei = i/10%10;
    int baiWei = i/100%10;//38
    int qianWei = i/1000%10;



    三.自加自减

    自加 ++
    自减 --


    a++ => a=a+1;
    ++a => a=a+1;

    a-- => a=a-1;
    --a => a=a-1;


    ----------------
    需要注意的地方
    1)单独出现时,a++和++a都是一样的
    2)参与一个完整表达式的时候,此时就区别
    int a = 9;
    int m = a++; //先用后加 m9 a10

    int a = 9;
    int n = ++a; //先加后用 n10 a10  

    四.关系操作符

    1 包括

     

    注意:比较运算符都是返回boolean的值,主要用于条件语句和循环语句的判断。
    什么叫表达式:
    操作符与操作数组成的式子,叫表达式。
    a = 8;
    a = 9>8

    五.移位操作符


    >>:右移,移出的高位补符号位
    <<:左移,移出的低位补0
    >>> :无符号右移,高位补0
    int i = 13
    00000000 00000000 00000000 00001101
    13>>1 右移一位,高位补符号位,结果得6
    0 00000000 00000000 00000000 0000110
    13<<1 左移一位,低位直接补0,结果得26
    0000000 00000000 00000000 00001101 0
    int i =-13
    先求:-13的补码
    00000000 00000000 00000000 00001101 (绝对值的二进制)
    取反加1后
    11111111 11111111 11111111 11110011(-13的补码)
    -13>>1 右移一位,高位补符号位.
    1 11111111 11111111 11111111 1111001
    减1取反后(符号位不变)
    1 00000000 00000000 00000000 0000111
    最终结果得:-7
    如果:-13>>>1 无符号右移一位,高位补0.
    0 11111111 11111111 11111111 1111001
    ---------------------
    面试题:
    以最快的速度算出8*2或者8/2的结果?
    8<<1
    8>>1
    int r = 8*2 //用到很多块内存,所以慢。

    六.按位操作符

     


    &:按位与 : 见0为0,全1为1
    |:按位或,见1为1,全0为0
    ^:按位异或,相同为0,相异为1
    ~:取反,原来为1变为0,原来为0变为1

     


    使用的一些例子:
    1 任何一个数异或同一个数2次得到自身,可以用做简单加密器

     

    七.逻辑运算符

     


    &&:短路与,见假为假,全真为真
    ||:短路或,见真为真,全假为假
    & :非短路与,见假为假,全真为真
    | :非短路或,见真为真,全假为假
    ! : 非,取反
    ^ :异 或,相同为false,相异为true

     

    ----
    短路和非短路

     


    &&:短路,前面的条件如果为false,不管理 后面条件是true还是false,整体上都为false,所以没必要去判断后面的条件


    面试题:
    &跟&&区别:
    1.&按位与运算符,也叫非短路与
    2.&&逻辑与运算符,也叫短路与
    3.&第一个表达式不成立的时候,继续算所有的表达式,如(a&b),假如a为false,也还要执行b
    4.&&第一个表达式不成立的时候 ,剩下的表达式都不执行了如(a&&b),假如a为false,则不执行b

     

     


    八.字符串相加

    +可以用来对数值相加,也可以对字符串相加,
    +是java下惟一的重载的运算符

    String s1 = "hello";
    String s2 = "world";
    String s3 = s1+s2;

    String s4 = "hello"+"world";
    字符串可+任何一种数据类型,加号后面的数据类型会自动转换成字符串

    需要注意的地方:
    String s = "a="+5+5;
    System.out.println(s); //输出a=55

    s = "a="+(5+5);
    System.out.println(s);//输出a=10

     九.三目运算符

    1 什么是三目运算符
    布尔表达式? 值1 : 值2;

    2 用来干吗?
    对某些条件进行判断,然后取其中两个值中的一个值返回
    其实就是if判断的一种简写方式

    3 例子
    int score = 60;
    String s = score>=60? "及格":"不及格";

     

  • 相关阅读:
    TortoiseSVN和VisualSVN-下载地址
    asp.net mvc输出自定义404等错误页面,非302跳转
    IIS7如何显示详细错误信息
    关于IIS7.5下的web.config 404 配置的一些问题
    MVC 错误处理1
    后台获取视图对应的字符串
    HTML5 ArrayBuffer:类型化数组 (二)
    Web 前沿——HTML5 Form Data 对象的使用(转)
    HTML5 File 对象
    HTML5 本地裁剪图片并上传至服务器(转)
  • 原文地址:https://www.cnblogs.com/Transkai/p/10345606.html
Copyright © 2020-2023  润新知