java基础5.运算符

赋值运算符

在Java中,使用'='对一个对象进行赋值时,真正操作的是它的引用,即是对对应的引用进行拷贝。这也正是上一节内容中引用类型的含义。

比如:

Blog blog = new Blog("天码营的博客", "这是我的第一篇博客"); 
Blog blogB = blog; // 这表示blogB和blog指向同一篇博客

算数运算符
其他算数运算符'*', '/', '-', '%',对应的赋值运算符分别为'*=','/=','-=','%='。

 

关系运算符

'=='和'!='适用于所有类型的值和对象(即基本类型变量和引用类型变量)

'=='和'!='作为关系运算符只用来比较对象的引用。而对象本身(所有内容)的比较要用equals()方法。

如果想比较两个对象实际内容是否相同,需要调用对象的equals()方法。比如判断一个字符串str的内容是否为"abcd",应该这样比较:

if (str.equals("abcd")) {
}

下面这种方式是一种错误的方式:

if (str == "abcd") {
}

 

位运算符

位运算符计算逻辑
& 与运算:对于某一位,只要两个操作数都为1,则该位的结果为1,否则为0
| 或运算:对于某一位,只要两个操作数有一个为1,则该位的结果为1,否则为0
^ 异或运算:对于某一位,如果两个操作数不相同,则该位的结果为1,否则为0
~ 非运算:按位补运算符翻转操作数的每一位
<< 二进制左移运算符:左操作数按位左移右操作数指定的位数
>> 二进制右移运算符:左操作数按位右移右操作数指定的位数
>>> 二进制右移补零操作符:左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充

注意>>>>>的区别:

  • 右移位运算符>>,若操作的值为正,则在高位插入0;若值为负,则在高位插入1;
  • 右移补零操作符>>>,无论正负,都在高位插入0。

 三元运算符

比如我们要计算x的绝对值,可以通过如下代码实现:

if (x >= 0) {
    y = x;
} else {
    y = -x;
}

通过三元运算符,只需要一条语句y = x >= 0 ? x : -x;就可以完成,更为简洁。


 

类型转换运算符

它允许我们显式地进行类型转换,如:

int a = 10;
long b = (long) a;
long c = (long) 100;

在对浮点数进行类型转换时,我们需要注意截尾的问题。如我们要将10.9进行类型转换:(int) 10.9,它的值并不是四舍五入的11,而是10。


 

运算符的优先级(不需要过多的记忆)

  1. .()[]

  2. 单目+(右到左结合), 单目-(右到左结合), ++--~!

  3. */,%

  4. +(左到右结合), -(左到右结合)

  5. >><<>>>

  6. <<=>>=

  7. ==!=

  8. &

  9. |

  10. ^

  11. &&

  12. ||

  13. ?:

  14. =+=等赋值运算符


 

posted on 2018-01-26 21:23  婴儿学步  阅读(105)  评论(0)    收藏  举报