运算符

 
(一)算术运算符:
1,除运算:
整数之间做除法时,只保留整数部分而舍弃小数部分。 如图中result2结果为10;
2,取余运算:
运算结果的正负取决于被模数的正负,如图例所示
 
3,前++;后++:自增一不会改变原本数据的数据类型;
  • 前++:先自增一,后进行运算;
  • 后++:先进行运算,后自增一;
问题:如果原本数据为byte型,且值为127,自增一结果应为多少?(byte表数范围为-128~127)
分析:首先编译没理由出错,其次数据类型不会改变,所以结果不可能为int型;所以从二进制考虑:byte127一个字节长度,内部存储为01111111,加一后结果为100000000,取-128。
(二)赋值运算符:
  • 符号:=
  • 扩展赋值运算符: +=, -=, *=, /=, %=
例题:
1,short s=3;s=s+2;①s+=2;②        ①式和②式的区别是什么?
①式编译不通过,因为2为整型常量,所以+2运算结果为int型,int型不能转为short型,编译错误。
2,把n*m的值给n,
3开发过程中不会用到,但考试题中用来测试掌握程度;
(三)比较运算符:
  • 比较运算符的结果都是boolean型,也就是要么是true,要么是false
  • 比较运算符“==”不能误写成“=”
(四)逻辑运算符:
  • 逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 && x<6
  • &”和“&&”的区别:
    • &时,左边无论真假,右边都进行运算;
    • &时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
  • 和“||”的区别同理,双或时,左边为真,右边不参与运算。
  • 异或( ^ )与或( | )的不同之处是:对于 ^ 而言,当左右都为true时,结果为false
 
 
练习题:
(五)位运算符:(开发中不常用,看源码时要理解)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
当& | ^三个符号前后是布尔型时,为逻辑运算符;当前后是数字是,为位运算符
面试题:用最高效的方式计算2*8,2<<3或8<<1;
(六)三元运算符:
格式:(条件表达式)?表达式1:表达式2
          如果条件为true,运算后的结果为表达式1
          如果条件为false,运算后的结果为表达式2;
可用来解决获取两数或三数中最大值的问题

 所有用三元运算符的地方都可以用if-else改写,反之,不可以。如果程序两者都可以使用,优先选择三元运算符,效率高。

(七)运算符的优先级:

凡是想运算的就加上小括号即可;平时开发过程尽量别都写在一起,代码的可读性降低;

posted @ 2019-08-02 20:10  Boogiever  阅读(185)  评论(0编辑  收藏  举报