【Thinking in Java-CHAPTER 3】操作符

來源:互聯網
上載者:User

標籤:

優先順序賦值

對象在使用c=d,那麼c和d都指向原本只有d指向的那個對象。

方法調用中的別名問題:當一個對象作為參數傳遞到一個函數中,函數改變了這個參數,則改變了傳遞進來的對象;

自增和自減

浮點型的變數也是可以++或--的。

關係操作符
double x=0.1;double y=0.1;System.out.println(x==y);

輸出:true

Integer x=new Integer(47);Integer y=new Integer(47);System.out.println(x==y);
System.out.println(x.equals(y));

輸出:false

          true

基礎資料型別 (Elementary Data Type)直接使用==和!=即可,但除此之外的資料類型,如果要比較等價,需要使用equals方法;

邏輯操作符
Integer x=new Integer(47);Integer y=new Integer(47);System.out.println(x
&&y); //出錯,此處與C/C++不同

短路現象:

移位操作符:>>,<<,>>>>>:

11 >> 2,則是將數字11右移2位
計算過程:11的二進位形式為:0000 0000 0000 0000 0000 0000 0000 1011,然後把低位的最後兩個數字移出,因為該數字是正數,所以在高位補零。則得到的最終結果是0000 0000 0000 0000 0000 0000 0000 0010.轉換為十進位是3.數學意義:右移一位相當於除2,右移n位相當於除以2的n次方。

<<:

3 << 2,則是將數字3左移2位:

計算過程:
  3 << 2
  首先把3轉換為位元字0000 0000 0000 0000 0000 0000 0000 0011,然後把該數字高位(左側)的兩個零移出,其他的數字都朝左平移2位,最後在低位(右側)的兩個空位補零。則得到的最終結果是0000 0000 0000 0000 0000 0000 0000 1100,則轉換為十進位是12.數學意義:
  在數字沒有溢出的前提下,對於正數和負數,左移一位都相當於乘以2的1次方,左移n位就相當於乘以2的n次方。

>>>:

按二進位形式把所有的數字向右移動對應位元,低位移出(捨棄),高位的空位補零。對於正數來說和帶符號右移相同,對於負數來說不同。

類型轉換

將float或double轉型為整型時,總是對該數字執行截尾。如果想要得到舍入操作,就需要使用java.lang.Math中的round()方法:

double x=0.5;System.out.println((int)x);             //0System.out.println(Math.round(x));         //1

【Thinking in Java-CHAPTER 3】操作符

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.