[JAVA] 不僅有Java運(yùn)算符渐行,更有優(yōu)先級(jí)講解轰坊,可以說(shuō)很詳細(xì)了

不僅有Java運(yùn)算符,更有優(yōu)先級(jí)講解祟印,可以說(shuō)很詳細(xì)了


算術(shù)運(yùn)算符 Arithmetic operators

加號(hào)(+):在操作數(shù)值肴沫、字符、字符串時(shí)其結(jié)果各有不同蕴忆;

字符相加得到的是ASCII碼表值颤芬;

字符串相加時(shí)表示將字符串拼接在一起,得到的是組合后的新字符串套鹅;

兩個(gè)數(shù)值相加表示數(shù)學(xué)中的加法運(yùn)算站蝠;


除號(hào)(/):整數(shù)在使用除號(hào)操作時(shí),得到的結(jié)果仍為整數(shù)卓鹿,小數(shù)部分會(huì)被直接忽略菱魔,而不是四舍五入,但是當(dāng)整數(shù)除以0的時(shí)候吟孙,會(huì)引發(fā)算術(shù)異常(ArithmeticException)澜倦。

Exception in thread "main" java.lang.ArithmeticException: / by zero


正無(wú)窮大(Infinity):當(dāng)一個(gè)正浮點(diǎn)類型數(shù)除以0時(shí),或者正整數(shù)除以0.0時(shí)拔疚;

負(fù)無(wú)窮大(-Infinity):當(dāng)一個(gè)負(fù)浮點(diǎn)類型數(shù)除以0時(shí)肥隆,或者負(fù)整數(shù)除以0.0時(shí);

NaN(Not a Number):當(dāng)0.0除以0.0時(shí)出現(xiàn)稚失;

需要注意的是:正負(fù)無(wú)窮大和NaN都屬于double浮點(diǎn)類型栋艳,并且所有的正無(wú)窮大都是相等的,所有的負(fù)無(wú)窮大也是相等的句各,但是NaN永遠(yuǎn)不相等吸占,也不等于自己。

算術(shù)運(yùn)算符


取模(求余數(shù):%):模數(shù)的符號(hào)忽略不計(jì)凿宾,結(jié)果的正負(fù)取決于被取模的數(shù)初厚。

++ 和 -- :表示所操作的變量自增1和自減1产禾,都只能操作變量,不能操作常量妄痪;

自增:++衫生,自增操作符,變量值自增1彭羹,有前置和后置之分皆怕,只能操作變量愈腾。

自減: -- 虱黄,自減操作符吮成,變量值自減1粱甫,有前置和后置之分茶宵,只能操作變量。

自增和自減具體操作是一樣的种蝶,增量和減量都是1螃征;比如:代碼 result ++和 ++result盯滚,都是將result變量的值在原始值的基礎(chǔ)上增加1淌山,然后賦值給result;代碼 result --和 --result德绿,都是將result變量的值在原始值的基礎(chǔ)上減去1,然后賦值給result蕴纳。唯一的區(qū)別是:

前置(++result): 表示對(duì)result增加1之后的結(jié)果進(jìn)行運(yùn)算古毛;

后置(result++): 表示對(duì)result變量值增加1之前的值(原始值)進(jìn)行運(yùn)算稻薇,然后再對(duì)result增加1塞椎;

無(wú)論是前置還是后置,最后都會(huì)對(duì)result增加1服傍;如果僅僅執(zhí)行簡(jiǎn)單的遞增操作(只寫result++或++result)比如單行操作吹零,那么選用任意一個(gè)都可以灿椅,比如下邊這樣的:


代碼塊

result++阱扬;

代碼塊



賦值運(yùn)算符 Assigning operator

賦值運(yùn)算符 Assigning operator


注意Java支持同時(shí)給多個(gè)變量賦值麻惶,好比支持同時(shí)聲明多個(gè)變量一樣窃蹋,但因影響代碼可讀性静稻,故也不推薦。

加等于:如:x += 5; 相當(dāng)于 x = x + 5杀迹,但還包括隱式類型轉(zhuǎn)換树酪。


public static void main(String[] args){

int a, b, c;? // 不推薦

a = b = c = 5; // 不推薦

short s = 5;

// s = s + 3; // 編譯出錯(cuò),需要強(qiáng)轉(zhuǎn) s = (short)(s + 3);

s += 3; // 編譯OK垂谢,隱式類型轉(zhuǎn)換


比較運(yùn)算符 Comparison operator

用于比較兩個(gè)變量或常量之間的關(guān)系滥朱,其結(jié)果是boolean類型,其操作格式為:

boolean result = 表達(dá)式A 比較運(yùn)算符 表達(dá)式B徙邻;

==:等于懂版,若比較的兩個(gè)變量都是數(shù)值類型,即使類型不同民鼓,只要值相同就OK丰嘉,就會(huì)返回true嚷缭。

==也可以比較引用數(shù)據(jù)類型阅爽,表示的是操作符兩邊的對(duì)象是否是同一對(duì)象付翁,比較的是JVM中的內(nèi)存地址百侧;

instanceof:用于判斷右邊的對(duì)象是否是左邊類型的實(shí)例;

比較運(yùn)算符


三元運(yùn)算符 Ternary operator

三元運(yùn)算符辫狼,表示有三個(gè)元素參與的表達(dá)式膨处,所以又稱為三目運(yùn)算符真椿,其語(yǔ)義表示if-else瀑粥,語(yǔ)法格式如下:

X? ? ?? ? Y? :? Z狞换;

其中X為boolean類型表達(dá)式修噪,先計(jì)算X的值黄琼,若X結(jié)果為true整慎,則返回Y,整個(gè)三目運(yùn)算表達(dá)式的結(jié)果是Y撤师,否則就是Z剃盾。三目運(yùn)算符結(jié)果的類型由Y和Z決定痒谴。

可以通過(guò)以下的實(shí)例驗(yàn)證:

1.兩個(gè)數(shù)求最大值/最小值铡羡;


int a = 13;

int b = 14;

int maxValue = (a > b) ? a : b ;


2.判斷一個(gè)數(shù)的是奇數(shù)還是偶數(shù)蓖墅;


int i = 13;

String result = (i % 2) ==? 0 ? "偶數(shù)" :? "奇數(shù)"? ;


邏輯運(yùn)算符 Logical operator

用于操作兩個(gè)boolean類型的變量或常量,結(jié)果類型也是boolean教翩。語(yǔ)法格式為:

boolean result = 表達(dá)式A 邏輯運(yùn)算符 表達(dá)式B;

邏輯運(yùn)算符


&:表示并且,當(dāng)操作數(shù)A和B都為true時(shí)result才為true,否則就是false钻注。

&&:和&結(jié)果相同幅恋,具有短路效果捆交,如果左邊操作數(shù)A是false腐巢,result 一定為false肉瓦,且不運(yùn)行B的運(yùn)算胃惜。

|:表示或者蛹疯,A和B都為false時(shí)結(jié)果為false捺弦,只要有A或B是true列吼,結(jié)果就是true。

||:和|結(jié)果相同慌申,具有短路效果蹄溉,如果左邊操作數(shù)A是true柒爵,result一定為true棉胀,操作數(shù)B就不會(huì)執(zhí)行,因?yàn)橐呀?jīng)沒(méi)有這個(gè)必要了霎挟。

^:判斷A和B是否不同,不同則為true酥夭,相同則為false采郎。

!:取反,!true結(jié)果是false最楷,!fasle結(jié)果是true籽孙。

位運(yùn)算符 Bit operator

位操作是程序設(shè)計(jì)中按位對(duì)二進(jìn)制數(shù)數(shù)據(jù)的一元和二元操作犯建。詳情如下:

位運(yùn)算符


<<:將操作數(shù)的二進(jìn)制碼整體左移指定位數(shù),左移之后的空使用“0”來(lái)補(bǔ)充谱仪。

>>:將操作數(shù)的二進(jìn)制碼整體右移指定位數(shù)玻熙,右移之后的空使用“符號(hào)位”來(lái)補(bǔ)充:

若是正數(shù)使用“0”補(bǔ)充;

若是負(fù)數(shù)使用“1”補(bǔ)充疯攒;(操作負(fù)數(shù):取反嗦随,求補(bǔ),操作敬尺,取反枚尼,求補(bǔ))

>>>:將操作數(shù)的二進(jìn)制碼整體右移指定位數(shù),右移之后的空位使用“0”來(lái)補(bǔ)充砂吞。

若要交換兩個(gè)變量的值署恍,如int a = 3,int b = 5呜舒,交換后a 等于5锭汛,b等于3,我們可以定義第三方的變量來(lái)完成∥蹬郏現(xiàn)在要求使用最快的方式完成渠脉,怎么做为朋?


運(yùn)算符優(yōu)先級(jí)

在程序設(shè)計(jì)中有眾多運(yùn)算符,運(yùn)算符之間的操作會(huì)有先后之分,也稱優(yōu)先級(jí),詳情如下:

運(yùn)算符優(yōu)先級(jí)


表中的優(yōu)先級(jí)1 -- 14根蟹,優(yōu)先級(jí)依次從高到低,同一級(jí)按表中從右到左蕉堰,或者從左到右的順序執(zhí)行皿渗。

Java語(yǔ)言分隔符

分號(hào)(;):語(yǔ)句的分割挤土,表示一個(gè)代碼語(yǔ)句結(jié)束尉桩;

花括號(hào)({}):表示一個(gè)代碼塊,是一個(gè)整體,花括號(hào)要成對(duì)使用;在面向?qū)ο蟮睦砟钪兄贡希a塊通常表示一個(gè)或者多個(gè)業(yè)務(wù)邏輯谨朝;

方括號(hào)([]):通常是定義數(shù)組和訪問(wèn)數(shù)組元素時(shí)使用;

圓括號(hào)(()):使用很廣泛骄呼,如數(shù)據(jù)類型轉(zhuǎn)換嫉沽、數(shù)據(jù)運(yùn)算玻佩、方法的定義和使用等烦秩;

圓點(diǎn)(.):類和對(duì)象訪問(wèn)它的成員時(shí)使用,如:Arrays.sort()猴凹;

空格( ):把一整個(gè)代碼語(yǔ)句語(yǔ)句分割成幾段书劝,空格的使用次數(shù)不限垂蜗,和英語(yǔ)中單詞之間要使用空格是一樣的霜定。

運(yùn)算符使用需要注意

1.以上分隔符都必須都是半角下的英文符號(hào)剖张;

2.要注意區(qū)分空格和空白炫刷,空格對(duì)應(yīng)的是鍵盤上的空格鍵的輸入涨享,在Java中挡爵,空格是可以作為一個(gè)有效字符使用的涣雕,而空白相對(duì)于空格來(lái)說(shuō)要寬泛得多疗韵,也可以說(shuō)空白是由大量的空字符組成的蕉汪;

完結(jié)革砸。老夫雖不正經(jīng),但老夫一身的才華

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末低散,一起剝皮案震驚了整個(gè)濱河市弟头,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌涉茧,老刑警劉巖赴恨,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異伴栓,居然都是意外死亡伦连,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門钳垮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)惑淳,“玉大人,你說(shuō)我怎么就攤上這事饺窿∑缃梗” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵短荐,是天一觀的道長(zhǎng)倚舀。 經(jīng)常有香客問(wèn)我叹哭,道長(zhǎng)忍宋,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任风罩,我火速辦了婚禮糠排,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘超升。我一直安慰自己入宦,他們只是感情好哺徊,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著乾闰,像睡著了一般落追。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上涯肩,一...
    開(kāi)封第一講書人閱讀 50,084評(píng)論 1 291
  • 那天轿钠,我揣著相機(jī)與錄音,去河邊找鬼病苗。 笑死疗垛,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的硫朦。 我是一名探鬼主播贷腕,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼咬展!你這毒婦竟也來(lái)了泽裳?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤挚赊,失蹤者是張志新(化名)和其女友劉穎诡壁,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體荠割,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡妹卿,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蔑鹦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片夺克。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖嚎朽,靈堂內(nèi)的尸體忽然破棺而出铺纽,到底是詐尸還是另有隱情,我是刑警寧澤哟忍,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布狡门,位于F島的核電站,受9級(jí)特大地震影響锅很,放射性物質(zhì)發(fā)生泄漏其馏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一爆安、第九天 我趴在偏房一處隱蔽的房頂上張望叛复。 院中可真熱鬧,春花似錦、人聲如沸褐奥。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)撬码。三九已至儿倒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間呜笑,已是汗流浹背义桂。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蹈垢,地道東北人慷吊。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像曹抬,于是被迫代替她去往敵國(guó)和親溉瓶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • 在C語(yǔ)言中,五種基本數(shù)據(jù)類型存儲(chǔ)空間長(zhǎng)度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來(lái)閱讀 3,339評(píng)論 0 2
  • 前言: 最近在學(xué)習(xí)javascript中數(shù)據(jù)類型为牍、運(yùn)算符哼绑,以及運(yùn)算符優(yōu)先級(jí)等相關(guān)基礎(chǔ)知識(shí),相對(duì)簡(jiǎn)單碉咆、基礎(chǔ)但也很重要...
    饑人谷_遠(yuǎn)方閱讀 763評(píng)論 0 3
  • 1 關(guān)鍵字 1.1 關(guān)鍵字的概述 Java的關(guān)鍵字對(duì)java的編譯器有特殊的意義抖韩,他們用來(lái)表示一種數(shù)據(jù)類型,或...
    哈哈哎呦喂閱讀 646評(píng)論 0 0
  • Win7下如何打開(kāi)DOS控制臺(tái)疫铜? a:開(kāi)始--所有程序--附件--命令提示符 b:開(kāi)始--搜索程序和文件--cmd...
    逍遙嘆6閱讀 1,590評(píng)論 4 12
  • 堅(jiān)持分享第248天茂浮,焦點(diǎn)中級(jí)13期人生有很多第一次,第一次的感受壳咕,也只有經(jīng)歷過(guò)的人才能感同身受席揽。作為教師,第一次上...
    渡小滿6閱讀 119評(píng)論 0 1