亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談Java操作符與其優(yōu)先級

 更新時間:2017年12月07日 10:44:57   作者:風生水起  
這篇文章主要介紹了淺談Java操作符與其優(yōu)先級,具有一定借鑒價值,需要的朋友可以了解下。

幾乎所有運算符都只能操作“主類型”(Primitives)。例外是“=”、“= =”和“! =”,它們能操作所有對象。除此以外,String類支持“+”和“+=”。

基本類型存儲了實際的數(shù)值。而并非指向一個對象的引用。所以在為其賦值的時候,是直接把一個地方的內(nèi)容復(fù)制到了另一個地方。例如,對基本數(shù)據(jù)類型使用a=b,那么b的內(nèi)容就復(fù)制給了a。若接著修改了a,而b根本不會受這種修改的影響。(在上一篇java編程思想(2)中,我們就知道基本類型是存儲在堆棧中的。假設(shè)a=4,那么堆棧中如果沒有4,則會開辟一個空間,使值為4。a=b之后,b也指向了堆棧中的這個4。此時a再等于5。那么會重新在堆棧中尋找5,若沒有則新開辟使之為5,然后a指向5。故不會影響b)

但是在為對象“賦值”的時候,情況會發(fā)生變化。首先我們知道,對對象的操作,我們真正操作的是對對象的引用。所以倘若"將一個對象賦值給另一個對象",實際上是將“引用”從一個地方復(fù)制到另一個地方。這意味著如果對對象使用c=d之后,那么c和d都將指向原來只有d指向的那個對象(兩個遙控器(引用)都能操作按個電視機(對象)了)。

優(yōu)先級:


操作

優(yōu)先級

結(jié)合性

1

后綴運算符

[ ] . ( ) (函數(shù)呼叫)

從左到右

2

單目運算符

! ~ ++ -- +(單操作數(shù)) –(單操作數(shù))

從右到左

3

創(chuàng)建

new

從左到右

4

乘除

* / %

從左到右

5

加減

+ -

從左到右

6

移位

<< >> >>>

從左到右

7

關(guān)系

< <= > >= instanceof

從左到右

8

相等

== !=

從左到右

9

按位與

&

從左到右

10

按位異或

^

從左到右

11

按位或

|

從左到右

12

邏輯與

&&

從左到右

13

邏輯或

||

從左到右

14

條件

? :

從右到左

15

賦值

= += -= *= /= %= ^= <<= >>= >>>=

從右到左

(1)賦值

主類型使用“A=B”,那么B處的內(nèi)容就復(fù)制到A。若修改A,那么B根本不會受修改的影響。

對象“賦值”的時候情況發(fā)生了變化。對一個對象進行操作時,我們真正操作的是它的句柄。所以倘若“從一個對象到另一個對象”賦值,實際就是將句柄從一個地方復(fù)制到另一個地方。這意味著假若為對象使用“C=D”,那么C和D最終都會指向最初只有D才指向的那個對象。

short s1 = 1; s1 = s1 + 1; (s1+1運算結(jié)果是int型,需要強制轉(zhuǎn)換類型)

short s1 = 1; s1 += 1;(可以正確編譯) +=運算符無類型轉(zhuǎn)換問題

(2)算術(shù)運算符

Java的算術(shù)運算符:加號(+)、減號(-)、除號(/)、乘號(*)以及模數(shù)(%,從整數(shù)除法中獲得余數(shù))。整數(shù)除法會直接砍掉小數(shù),而不是進位。

(3)自動遞增、遞減

對于前遞增和前遞減(如++A或--A),會先執(zhí)行運算,再生成值。

對于后遞增和后遞減(如A++或A--),會先生成值,再執(zhí)行運算。

(4)關(guān)系運算符

關(guān)系運算符包括<、>、<=、>=、= =、!=

等于和不等于適用于所有內(nèi)建的數(shù)據(jù)類型,但其他比較不適用于boolean類型。

想對比兩個對象的實際內(nèi)容是否相同,必須使用所有對象都適用的特殊方法equals()。

equals()方法不適用于“主類型”,那些類型直接使用= =和!=即可。

equals()的默認是比較句柄。所以除非在自己的新類中改變了equals(),否則不可能表現(xiàn)出我們希望的行為

大多數(shù)Java類庫都實現(xiàn)了equals(),所以它實際比較的是對象的內(nèi)容,而非它們的句柄

= =和! =比較的是對象句柄,而不是對象的實際內(nèi)容

(5)邏輯運算符

邏輯運算符&&、||、!能生成一個布爾值

&和&&都可作為邏輯運算符“與”使用,但是&&是“短路與”,運算時先判斷符號前面的表達式的值,如果能夠確定整個表達式的值,則不進行符號后面的表達式的運算。

另外,&可作為位運算符使用

(6)按位運算符

按位AND運算符(&)

按位OR運算符(|)

按位XOR(^,異或)

按位NOT(~,也叫作“非”運算符)屬于一元運算符,生成與輸入位的相反的值

(7)移位運算符

左移位運算符(<<)能將運算對象向左移動運算符右側(cè)指定的位數(shù)(在低位補0)。

有符號右移位運算符(>>)將運算對象向右移動運算符右側(cè)指定的位數(shù)。有符號右移位運算符使用了符號擴展:若值為正,則在高位插入0;若值為負,則在高位插入1

無符號右移位運算符(>>>),它使用了“零擴展”:無論正負,都在高位插入0

(8)三元IF-ELSE運算符

布爾表達式 ? 值0:值1 “布爾表達式”的結(jié)果為true,就計算“值0”,否則計算“值1”

(9)字符串運算符+

int x = 0, y = 1, z = 2;
System.out.println(“out:” + x + y + z);

在這里,Java編譯程序會將x,y和z轉(zhuǎn)換成它們的字串形式,而不是先把它們加到一起

運用“String +”時,若表達式以一個String起頭,那么后續(xù)所有運算對象都會轉(zhuǎn)換到字串。

想通過“加號”連接字串(使用Java的早期版本),請務(wù)必保證第一個元素是字串

(10)造型(Cast)運算符

對于“縮小轉(zhuǎn)換”(Narrowing Conversion)的操作(能容納更多信息的數(shù)據(jù)類型,將其轉(zhuǎn)換成容量較小的類型,例如int轉(zhuǎn)short),此時就可能面臨信息丟失的危險。此時,編譯器會強迫我們進行明確造型

對于“放大轉(zhuǎn)換”(Widening conversion),則不必進行明確造型,因為新類型肯定能容納原來類型的信息,不會造成任何信息的丟失

布爾值(bollean)根本不允許進行任何造型處理,其它任何主類型可互相造型

將float或double值造型成整數(shù)值后,總是將小數(shù)部分“砍掉”,不作任何進位處理

Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

Math.round(11.5)==12 Math.round(-11.5)==-11

round方法返回與參數(shù)最接近的長整數(shù),參數(shù)加1/2后求其floor.

總結(jié)

以上就是本文關(guān)于淺談Java操作符與其優(yōu)先級的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:

多模字符串匹配算法原理及Java實現(xiàn)代碼

Rxjava功能操作符的使用方法詳解

淺談java中字符串數(shù)組、字符串、整形之間的轉(zhuǎn)換

如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關(guān)文章

  • java讀取PHP接口數(shù)據(jù)的實現(xiàn)方法

    java讀取PHP接口數(shù)據(jù)的實現(xiàn)方法

    下面小編就為大家?guī)硪黄猨ava讀取PHP接口數(shù)據(jù)的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • java 多線程死鎖詳解及簡單實例

    java 多線程死鎖詳解及簡單實例

    這篇文章主要介紹了java 多線程死鎖詳解及簡單實例的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • springboot實現(xiàn)敏感字段加密存儲解密顯示功能

    springboot實現(xiàn)敏感字段加密存儲解密顯示功能

    這篇文章主要介紹了springboot實現(xiàn)敏感字段加密存儲,解密顯示,通過mybatis,自定義注解+AOP切面,Base64加解密方式實現(xiàn)功能,本文通過代碼實現(xiàn)給大家介紹的非常詳細,需要的朋友可以參考下
    2022-02-02
  • 關(guān)于SpringMVC對Restful風格的支持詳解

    關(guān)于SpringMVC對Restful風格的支持詳解

    Restful就是一個資源定位及資源操作的風格,不是標準也不是協(xié)議,只是一種風格,是對http協(xié)議的詮釋,下面這篇文章主要給大家介紹了關(guān)于SpringMVC對Restful風格支持的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • SpringBoot整合Mybatis-Plus實現(xiàn)微信注冊登錄的示例代碼

    SpringBoot整合Mybatis-Plus實現(xiàn)微信注冊登錄的示例代碼

    微信是不可或缺的通訊工具,本文主要介紹了SpringBoot整合Mybatis-Plus實現(xiàn)微信注冊登錄的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • SpringSecurity實現(xiàn)自定義登錄接口的詳細過程

    SpringSecurity實現(xiàn)自定義登錄接口的詳細過程

    本文詳細介紹了如何使用SpringSecurity實現(xiàn)自定義登錄接口,文章還涉及了對用戶實體類的增強以滿足詳細信息的需求,適合需要深入了解和實現(xiàn)SpringSecurity自定義登錄功能的開發(fā)者,感興趣的朋友跟隨小編一起看看吧
    2024-10-10
  • java實現(xiàn)2048小游戲

    java實現(xiàn)2048小游戲

    這篇文章主要為大家詳細介紹了java實現(xiàn)2048小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-02-02
  • 一文掌握Spring?中?@Component?和?@Bean?區(qū)別(最新推薦)

    一文掌握Spring?中?@Component?和?@Bean?區(qū)別(最新推薦)

    ?@Component?用于標識一個普通的類,@Bean用于配置類里面,在方法上面聲明和配置?Bean?對象,這篇文章主要介紹了Spring?中?@Component?和?@Bean?區(qū)別(最新推薦),需要的朋友可以參考下
    2024-04-04
  • 多線程如何解決for循環(huán)效率的問題

    多線程如何解決for循環(huán)效率的問題

    這篇文章主要介紹了多線程如何解決for循環(huán)效率的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java中的CopyOnWriteArrayList詳解

    Java中的CopyOnWriteArrayList詳解

    這篇文章主要介紹了Java中的CopyOnWriteArrayList詳解,ArrayList單線程下是安全的 但是多線程下存在不安全的問題,多線程下是不安全的,需要的朋友可以參考下
    2023-12-12

最新評論