zoukankan      html  css  js  c++  java
  • 【JAVA】【基础语法】Java中= + 和 += 运算返回值类型差异

    一、 =+ 和+= 运算的返回值类型
    看个有趣的例子:
    short i1 = 10;
    //i1 = i1 + 1; //不兼容的类型: 从int转换到short可能会有损失
    i1 += 1; //下面打印11
    System.out.print("i1 =" + i1 + ' ');

        short i2 = 10;
        //i2 = i2 + 1.1;   // 不兼容的类型: 从double转换到short可能会有损失
        i2 +=  1.1;  //下面打印11
        System.out.print("i2 =" + i2 + '
    ');
    
        char c = 'C';
        //c = c + 1; //不兼容的类型: 从int转换到char可能会有损失
        c +=  1;  //下面打印D
        System.out.print(c);
    
     为什么采用a = a + 1方式就编译错误;使用a += 1方式就正确呢? 这是因为=+和+=在Java中处理是不一样的。
     1)+:编译器将右边的表达式结果计算出来后,和左边的变量类型比较,如果左边的变量精度低于右边的结果的精度,编译器会显式的报错,告诉程序员去强制转型。
     2)+=:编译器 **自动隐式** 直接将+=运算符后面的操作数 强制装换 为前面变量的类型,然后在变量所在的内存区上直接根据右边的操作数修改左边变量内存存储的二进制数值。
     所以:也就知道为啥i1 +=  1不报错,且打印结果是11,而不是11.1。
  • 相关阅读:
    excel中如何筛选出同一列有重复的数据
    JTextFile换行
    DOM事件对象用法
    js事件监听
    webstorm 破解方法
    vux使用
    vue动态添加当前事件下的class
    subline3 如何设置es6高亮
    vueJS+ES6开发移动端APP实战项目笔记
    css命名规范和书写规范
  • 原文地址:https://www.cnblogs.com/yickel/p/14594963.html
Copyright © 2011-2022 走看看