JAVA基礎知識——運算子

來源:互聯網
上載者:User

標籤:語言   設計者   pow   []   變數   實值型別   無符號   out   rgs   

1、整數被0除會產生一個異常,而浮點數被0除將會得到無窮大或NaN的結果

2、例如: double w = x * y /z   JAVA是注重可移植的語言,但是在進行計算的時候,由於64位儲存一個double值和80位浮點寄存器儲存一個double值是不一樣的,很多Intel處理器都是一步一計算的(這樣計算的結果更精確),最後結果再截斷為64位,這就和64位的機器計算的結果有所不同(直接結算,沒有中間過程),一次運算一儲存,有可能出現溢出或者計算速度慢的情況,JAVA程式設計語言承認了最優效能和理想結果之間存在的衝突,並做了改進。在預設的情況下,虛擬機器設計者允許將中間計算結果採用擴充的精度,但是對於使用strictfp關鍵字標記的方法必須使用嚴格的浮點計算來產生理想的結果。例如:public static strictfp void main(String[] args),於是main方法中的所有浮點計算都要進行嚴格的計算。

3、自增運算子、自減運算子

    首碼方式先+1再運算,尾碼方式則是先運算後+1

4、關係運算子和boolean運算子

  &&表示邏輯“與”、||表示邏輯“或”、!表示邏輯 NOT   它們採用“短路”的方式進行運算(也就是說 一旦第一個運算元能夠確定運算式的值,第二個就沒有必要計算了)

  三元操作符:a?b:c

5、位元運算符:&(“與”)、|(“或”)、^(“異或”)、~(“非”)

  位元運算符主要針對二進位  

  在處理整型數值時,可以直接對組成整數數值的各個位進行操作,這就意味著可以使用屏蔽技術獲得整數中的各個位

  &和|運算子應用於布爾值,得到的結果也是布爾值,運算方式和&&、||不一樣,它們不按短路方式計算,而是一定要計算兩個操作的數的值

  (1)&(“與”):  兩個運算元都為1,結果才是1,否則就是0 

      例如:int a = 129;

           int b = 128;

           System.out.println("輸出結果是"+(a&b));    //結果為128,  “a”的值是129,轉換成二進位就是10000001,而“b”的值是128,轉換成二進位就是10000000。所以知道結果就是10000000,即128。

  (2)|(“或”):    兩個運算元只要有一個為1,結果就是1,否則為0  

      例如:int a=129;
         int b=128;    

         System.out.println("輸出結果是"+(a|b));    //結果為129

  (3)^(“異或”):    兩個運算元中兩個相同為0,不同為1  

      例如:int a = 15;

         int b = 2  ;    

         System.out.println(“輸出的結果是”+(a^b));   //結果為13    “a”的值是15,轉換成二進位為1111,而“b”的值是2,轉換成二進位為0010,所以可以得出其結果為1101 即13。

  (4)~(非運算子)   如果位為1,則結果為0,如果位為0,則結果為1

      例如:  int a = 2;

           System.out.println("a 非的結果是:"+(~a));  

6、移位元運算符:”<<“ 左移 、 “>>” 右移  ”>>>“ 無符號右移  

      (位元運算符的計算比算數計算中的乘除運算速率更快)

      左移n位相當於*2的n次冪(低位用0補),右移n位相當於/2的n次冪(如果值為正,則在高位補0,如果值為負,則在高位補1.),無符號右移,忽略符號位,所有空位都以0補齊

7、數學函數與常量:

      Math方法(靜態方法)的標頭檔為:import static java.lang.Math.*;

      Math類提供的常用的三角函數:Math.sin  Math.cos  Math.tan  Math.atan  Math.atan2

      Math類提供的指數函數以及它的反函數——自然對數以及以10為底的對數:Math.exp  Math.log  Math.log10

      JAVA中沒有冪運算,需要藉助Math類中的pow方法。例如:double y = Math.pow(x,a);

      JAVA還提供了兩個用於表示π(pai)和e常量的近似值:Math.PI  Math.E

8、數實值型別之間的轉換:

      低精度——>高精度    無資訊丟失

      高精度——>高精度    有可能有資訊丟失

      強制類型轉換的方法:Math.round(遵循四捨五入)

9、枚舉類型:

      enum Size{SMALL, MEDIUM,LARGE,EXTRA_LARGE};

      Size s = Size.MEDIUM;

      Size類型的變數只能儲存這個型別宣告中給定的某個枚舉值,或者null值,null表示這個變數沒有設定任何的值

 

  

 

 

 

 

 

 

    

JAVA基礎知識——運算子

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.