Java数据类型转换,运算符

1.Java自动类型转换和强制类型转换:
    转换规则:在进行混合运算时,小容量的数值先转换为大容量的数值,在进行计算
        char,int,short类型只要参与运算就自动转换为int类型,然后在进行计算
        特别注意,float(4字节)容量大于long(8字节)容量
    强制转换会出现的问题:可能会造成精度降低或数值溢出

2.常用的运算符有:
    算术运算符:+  -  *  /  %                                   (双目运算符)
                 ++ --  +(表示正数)  -(表示负数)          (单目运算符)
    关系运算符:> < >= <= == != 返回布尔值        (双目运算符)
    赋值运算符:=  +=  -=  *=  /=  %=                    (双目运算符)
    逻辑运算符:&(逻辑与)        |(逻辑或)              (双目运算符)
                 &&(逻辑与)       ||(逻辑或)   会短路   (双目运算符)
                  ^(逻辑异或)                                      (双目运算符)
                !(逻辑非)                                         (单目运算符)
    位运算符:&(按位与)  |(按位 或)                      (双目运算符)
                ~(按位取反)                                       (单目运算符)
    条件运算符:关系表达式 ? 表达式1 : 表达式2    (三目运算符)

3、逻辑运算符中注意事项
    & 和 &&,| 和 ||的一些区别
    对于 表达式1 & 表达式2  和   表达式1 | 表达式2
        所有表达式都会执行
    对于 表达式1 && 表达式2
        如果表达式1的值为 false,则表达式2不执行
    对于表达式1 || 表达式2
        如果表达式1的值为 true,则表达式2不执行
    所以 && 和 || 又被称为 短路与 和 短路或



public class LogicCompute {
    public static void main(String[] args) {
        int a = 7;
        int b = 5;
        int c = 3;
        //&(逻辑与);当且仅当都为true时,结果才为true
        System.out.println(a > b & b > c); //true & true -->true
        System.out.println(a < b & b > c); //false & true -->false

        //|(逻辑或);当且仅当都为false时,结果才为false
        System.out.println(a < b | b > c); //false | true -->true
        System.out.println(a < b | b < c); //false | false -->false

        //&&(逻辑与,短路与);当第一个表达式为false时,不执行后面的表达式
        System.out.println(a > b && b > c); //true && true -->true
        System.out.println(a < b && b > c); //false && true -->false

        //||(逻辑或,短路或);当第一个表达式为true时,不执行后面的表达式
        System.out.println(a < b || b > c); //false || true -->true
        System.out.println(a < b || b < c); //false || false -->false

    }
}

4、赋值运算符中注意事项

public class convert {
    public static void main(String args[]) {

        short s1 = 1;
        // s1 = s1 + 1;// short + int = int 所以这个表达式是错误的
        s1 += 1;// short = short(s1 + 1) 隐式类型转换,该式中涉及到强制类型转换
        System.out.println("s1 = " + s1);

    }
}

最终运行结果是s1 = 2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Black—slience

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值