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

一篇文章讓你弄懂Java運(yùn)算符

 更新時(shí)間:2022年03月22日 10:20:52   作者:加勒比海濤  
java中位運(yùn)算符主要有按位與&、按位或|、按位非~、按位異或^, 在使用時(shí)需要將運(yùn)算數(shù)都轉(zhuǎn)換為二進(jìn)制再進(jìn)行運(yùn)算,若為負(fù)數(shù)則使用補(bǔ)碼表示,這篇文章主要給大家介紹了關(guān)于Java運(yùn)算符的相關(guān)資料,需要的朋友可以參考下

1. 運(yùn)算符是什么?

1.1 定義:

  • 對(duì)常量和變量進(jìn)行運(yùn)算操作的符號(hào)
  • 程序?qū)?shù)據(jù)進(jìn)行運(yùn)算時(shí)要用運(yùn)算符

1.2 常見(jiàn)運(yùn)算符的概述

image-20220315143205172

1.3 表達(dá)式

1.3.1 定義

用運(yùn)算符把常量或變量連接起來(lái)的式子

1.3.2 表達(dá)式的類(lèi)型

表達(dá)式的類(lèi)型為表達(dá)式運(yùn)算結(jié)果的數(shù)據(jù)類(lèi)型

2. 算數(shù)運(yùn)算符

2.1 分類(lèi):

image-20220315143420004

2.2 基本四則運(yùn)算符:加減乘除模(+ - * / %)

注意事項(xiàng):

/ :除法運(yùn)算符,得到兩個(gè)數(shù)據(jù)相除的。

特點(diǎn):Java中整數(shù)除以整數(shù)結(jié)果還是整數(shù)。

%:取模(取余)運(yùn)算,得到兩個(gè)數(shù)據(jù)相除的余數(shù)。

特點(diǎn):可以用來(lái)判斷兩個(gè)數(shù)是否能夠整除。

應(yīng)用:

public class ArithmeticOperators {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/b);
        System.out.println(a%b);
    }
}

運(yùn)行結(jié)果如下:

image-20220315143754758

在Java中,小數(shù)也可以進(jìn)行取模操作

public class ArithmeticOperators {
    public static void main(String[] args) {
        System.out.println(10%3);
        System.out.println(12.5%2);
        System.out.println(12.5%2.0);
    }
}

image-20220315144444691

易錯(cuò)點(diǎn)1:除數(shù)不能為0

public class ArithmeticOperators {
    public static void main(String[] args) {
        int a = 10;
        int b = 0;
        System.out.println(a/b);
    }
}

會(huì)報(bào)錯(cuò)! Java里面,把程序在編譯/運(yùn)行的過(guò)程當(dāng)中 產(chǎn)?的不正常的?為 叫做異常,圖片里面的就是算術(shù)異常

image-20220315144021194

易錯(cuò)點(diǎn)2:在java中,負(fù)數(shù)也是可以參與取模運(yùn)算的

public class ArithmeticOperators {
    public static void main(String[] args) {
        System.out.println(10%3);//1
        System.out.println(10%-3);//1
        System.out.println(-10%3);//-1
        System.out.println(-10%-3);//-1
    }
}

具體計(jì)算步驟(小學(xué)計(jì)算也很容易出錯(cuò)熬):

image-20220315144737931

2.3 增量運(yùn)算符(+= -= *= %=…)

該種類(lèi)型運(yùn)算符操作完成后,會(huì)將操縱的結(jié)果賦值給左操作數(shù)。

public class IncOpr {
    public static void main(String[] args) {
        int a = 1;
        a += 2;
        System.out.println(a);
        
        a -= 1;
        System.out.println(a);
        
        a *= 3;
        System.out.println(a);
        
        a /= 3;
        System.out.println(a);
        
        a %= 3;
        System.out.println(a);
    }
}

image-20220315145216352

增量運(yùn)算符會(huì)自動(dòng)幫我們進(jìn)行數(shù)據(jù)轉(zhuǎn)換

public class IncOpr {
    public static void main(String[] args) {
        int a = 99;
        short s = 0;
        //s = s + a;//err:報(bào)錯(cuò),short+int->int+int=>int,用short裝不下,需要強(qiáng)轉(zhuǎn)
        //正確寫(xiě)法1:
        //s = (short)(s + a);
        //正確寫(xiě)法2:
        s += a;//+=會(huì)自動(dòng)幫我們進(jìn)行類(lèi)型轉(zhuǎn)換

        System.out.println(a);//99
    }
}

image-20220315145705652

2.4 自增/自減運(yùn)算符(++,–)

++:自增1

– :自減1

  • 單獨(dú)使用:放在變量前或后結(jié)果一樣
  • 參與運(yùn)算:
    • 在變量前,先自增(自減) ,再進(jìn)行其它運(yùn)算
    • 在變量后,先以原值進(jìn)行其它運(yùn)算,再自增(自減)

舉個(gè)栗子:

public class IncrementdecrementOpr {
    public static void main(String[] args) {
        int a = 10;
        
        int b = ++a;//a=a+1;b=a;->b=11 a=11
        int c = a++;//b=a;a=a+1;->b=10 a=11;

        System.out.println(b);
    }
}

3. 關(guān)系運(yùn)算符

常見(jiàn)關(guān)系運(yùn)算符

image-20220315150736089

關(guān)系運(yùn)算符的運(yùn)算結(jié)果都是布爾(boolean)類(lèi)型,要么是true,要么是false

public class RelationalOpr {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println(a==b);
        System.out.println(a!=b);
        System.out.println(a>=b);
        System.out.println(a<=b);
    }
}

結(jié)果如下:

image-20220315151138494

注意:當(dāng)需要多次判斷時(shí),不能連著寫(xiě),比如:3<a<5 ,程序與數(shù)學(xué)中是有區(qū)別的

4. 邏輯運(yùn)算符

定義:用于判斷“并且”、“或者”、“除非”等邏輯關(guān)系。邏輯運(yùn)算符兩端一般連接值為布爾類(lèi)型的關(guān)系表達(dá)式

4.1 &&:邏輯與,并且

也稱短路與

布爾表達(dá)式1 && 布爾表達(dá)式2:兩個(gè)表達(dá)式都為真的時(shí)候,整個(gè)表達(dá)式才是真

  • 只要有?個(gè)是假,那整個(gè)表達(dá)式就是假
  • 第?個(gè)表達(dá)式為假,后?不執(zhí)?

舉個(gè)栗子:

public class LogOperators {
    public static void main(String[] args) {
        int a = 1;
        int b = 2;

        System.out.println(a == 1 && b == 2);
        System.out.println(a == 1 && b > 100);
        System.out.println(a > 100 && b == 2);
        System.out.println(a > 100 && b > 100);
    }
}

image-20220315152224389

4.2 ||:邏輯或,或者

布爾表達(dá)式1 || 布爾表達(dá)式2:只要有?個(gè)是真,整個(gè)表達(dá)式就是真

  • 布爾表達(dá)式1為真,不執(zhí)?布爾表達(dá)式2
  • 布爾表達(dá)式1為假,會(huì)繼續(xù)布爾表達(dá)式2

舉個(gè)栗子:

public class LogOperators {
    public static void main(String[] args) {
        int a = 1;
        int b = 2;

        System.out.println(a == 1 || b == 2);
        System.out.println(a == 1 || b > 100);
        System.out.println(a > 100 || b == 2);
        System.out.println(a > 100 || b > 100);
    }
}

image-20220315152433746

4.3 !:邏輯非,表示否定

語(yǔ)法規(guī)則:!表達(dá)式

真變假,假變真。

舉個(gè)栗子:

public class LogOperators {
    public static void main(String[] args) {
        int a = 1;
        System.out.println(!(a==1));
        System.out.println(!(a!=1));
    }
}

image-20220315152806193

4.4 短路求值

&&和||遵循短路求值的規(guī)則

System.out.println(10 > 20 && 10 / 0 == 0);       // 打印 false
System.out.println(10 < 20 || 10 / 0 == 0);       // 打印 true

我們都知道,計(jì)算10 / 0會(huì)導(dǎo)致程序拋出異常.但是上面的代碼卻能正常運(yùn)行,說(shuō)明10 / 0并沒(méi)有真正被求值.

&|如果表達(dá)式結(jié)果為boolean時(shí),也表示邏輯運(yùn)算.但與&& ||相比,它們不支持短路求值.

System.out.println(10 > 20 & 10 / 0 == 0);       // 程序拋出異常
System.out.println(10 < 20 | 10 / 0 == 0);       // 程序拋出異常

5. 位操作符

如果位操作符,左右兩邊不是布爾表達(dá)式,那么他就代表位運(yùn)算,且位運(yùn)算操作的是二進(jìn)制位

5.1 按位與&

對(duì)應(yīng)位上有0就是0,對(duì)應(yīng)位都是1的時(shí)候,這?位運(yùn)算下來(lái)的結(jié)果就是1

image-20220315164041104

5.2 按位或|

對(duì)應(yīng)位上有1,就是1

image-20220315164134072

5.3 按位異或

不?樣的位上進(jìn)?或,?樣的位上是0

推論:哪?位上是1,那么這?位置上就不同

image-20220315164644571

5.4 按位取反~

0變1,1變0

image-20220315164727512

int a = 0x0000000f;
System.out.printf("%x\n", ~a);//fffffff0
?六進(jìn)制:1 2 3 4 5 6 7 8 9 A B C D E F
0000 0000 0000 0000 0000 0000 0000 1111
1111 1111 1111 1111 1111 1111 1111 0000 ~
  f    f    f    f    f    f    f   0

6. 移位運(yùn)算

移動(dòng)的是二進(jìn)制位

6.1 左移<<

最左側(cè)位不要了,最右側(cè)補(bǔ)0

用法舉例:

public class shftOperation {
    public static void main(String[] args) {
        int a = 0x10;
        System.out.printf("%x\n",a << 1);
    }
}

image-20220315165821062

6.2 右移>>

最右側(cè)位不要了,最左側(cè)補(bǔ)符號(hào)位(正數(shù)補(bǔ)0,負(fù)數(shù)補(bǔ)1)

用法舉例:

public class shftOperation {
    public static void main(String[] args) {
        int a = 0x10;
        System.out.printf("%x\n",a >> 1);
    }
}

image-20220315170102607

注意:沒(méi)有?符號(hào)數(shù)左移,因?yàn)榈?位是符號(hào)位,移的話把符號(hào)位移?了

6.3 無(wú)符號(hào)右移>>>

最右側(cè)位不要了,最左側(cè)補(bǔ)0

用法舉例:

public class shftOperation {
    public static void main(String[] args) {
        int a = 0xffffffff;
        System.out.printf("%x\n",a >>> 1);//7fffffff
    }
}

7. 條件運(yùn)算符

語(yǔ)法格式:表達(dá)式1?表達(dá)式2:表達(dá)式3

如果表達(dá)式1為真,執(zhí)?表達(dá)式2,否則執(zhí)?表達(dá)式3

要么返回表達(dá)式2的結(jié)果,要么返回表達(dá)式3的結(jié)果,所以需要變量來(lái)接收

注意:表達(dá)式1必須是一個(gè)布爾表達(dá)式

用法舉例:

public class CondOpr {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = a>b?a:b;
        System.out.println(c);//20
    }
}

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

就一句話:不確定的話,就加括號(hào)!

在Java中,對(duì)于運(yùn)算符的優(yōu)先級(jí)考察不多,不像C語(yǔ)言那樣。

到此,對(duì)于Java中運(yùn)算符的講解已經(jīng)完畢。

運(yùn)算符之間是有優(yōu)先級(jí)的. 具體的規(guī)則我們不必記憶. 在可能存在歧義的代碼中加上括號(hào)即可

public class Swap {
? ? public static void main(String[] args) {
? ? ? ? System.out.println(3*4+1);
? ? ? ? System.out.println(3*(4+1));

? ? }
}

到此這篇關(guān)于Java運(yùn)算符的文章就介紹到這了,更多相關(guān)Java運(yùn)算符內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SVN 安裝教程之服務(wù)器和客戶端

    SVN 安裝教程之服務(wù)器和客戶端

    這篇文章主要介紹了SVN 安裝教程之服務(wù)器和客戶端的相關(guān)資料,這里對(duì)安裝步驟進(jìn)行了詳細(xì)介紹,需要的朋友可以參考下
    2016-11-11
  • Java虛擬機(jī)棧jvm棧的作用

    Java虛擬機(jī)棧jvm棧的作用

    本文主要介紹了Java虛擬機(jī)棧jvm棧的作用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Java 語(yǔ)言實(shí)現(xiàn)清除帶 html 標(biāo)簽的內(nèi)容方法

    Java 語(yǔ)言實(shí)現(xiàn)清除帶 html 標(biāo)簽的內(nèi)容方法

    下面小編就為大家?guī)?lái)一篇Java 語(yǔ)言實(shí)現(xiàn)清除帶 html 標(biāo)簽的內(nèi)容方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • 深入理解java泛型Generic

    深入理解java泛型Generic

    這篇文章主要介紹了深入理解java泛型Generic,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • 面試官:詳細(xì)談?wù)凧ava對(duì)象的4種引用方式

    面試官:詳細(xì)談?wù)凧ava對(duì)象的4種引用方式

    這篇文章主要給大家介紹了java面試官常會(huì)問(wèn)到的,關(guān)于Java對(duì)象的4種引用方式的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 淺談Java基于Consul創(chuàng)建分布式鎖

    淺談Java基于Consul創(chuàng)建分布式鎖

    這篇文章主要介紹了淺談基于Consul創(chuàng)建分布式鎖,Consul是HashiCorp公司推出的開(kāi)源工具,用于實(shí)現(xiàn)分布式系統(tǒng)的服務(wù)發(fā)現(xiàn)與配置Consul是分布式的、高可用的、可橫向擴(kuò)展的,需要的朋友可以參考下
    2023-07-07
  • JAVA字符串拼接常見(jiàn)方法匯總

    JAVA字符串拼接常見(jiàn)方法匯總

    這篇文章主要介紹了JAVA字符串拼接常見(jiàn)方法,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • intellij idea 啟動(dòng)tomcat 1099端口被占用的解決

    intellij idea 啟動(dòng)tomcat 1099端口被占用的解決

    這篇文章主要介紹了intellij idea 啟動(dòng)tomcat 1099端口被占用的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • spring boot+ redis 接口訪問(wèn)頻率限制的實(shí)現(xiàn)

    spring boot+ redis 接口訪問(wèn)頻率限制的實(shí)現(xiàn)

    這篇文章主要介紹了spring boot+ redis 接口訪問(wèn)頻率限制的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Spring mvc服務(wù)端數(shù)據(jù)校驗(yàn)實(shí)現(xiàn)流程詳解

    Spring mvc服務(wù)端數(shù)據(jù)校驗(yàn)實(shí)現(xiàn)流程詳解

    這篇文章主要介紹了Spring mvc服務(wù)端數(shù)據(jù)校驗(yàn)實(shí)現(xiàn)流程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09

最新評(píng)論