最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一篇文章讓你弄懂Java運算符

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

1. 運算符是什么?

1.1 定義:

  • 對常量和變量進行運算操作的符號
  • 程序?qū)?shù)據(jù)進行運算時要用運算符

1.2 常見運算符的概述

image-20220315143205172

1.3 表達式

1.3.1 定義

用運算符把常量或變量連接起來的式子

1.3.2 表達式的類型

表達式的類型為表達式運算結(jié)果的數(shù)據(jù)類型

2. 算數(shù)運算符

2.1 分類:

image-20220315143420004

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

注意事項:

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

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

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

特點:可以用來判斷兩個數(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);
    }
}

運行結(jié)果如下:

image-20220315143754758

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

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

易錯點1:除數(shù)不能為0

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

會報錯! Java里面,把程序在編譯/運行的過程當中 產(chǎn)?的不正常的?為 叫做異常,圖片里面的就是算術(shù)異常

image-20220315144021194

易錯點2:在java中,負數(shù)也是可以參與取模運算的

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
    }
}

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

image-20220315144737931

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

該種類型運算符操作完成后,會將操縱的結(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

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

public class IncOpr {
    public static void main(String[] args) {
        int a = 99;
        short s = 0;
        //s = s + a;//err:報錯,short+int->int+int=>int,用short裝不下,需要強轉(zhuǎn)
        //正確寫法1:
        //s = (short)(s + a);
        //正確寫法2:
        s += a;//+=會自動幫我們進行類型轉(zhuǎn)換

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

image-20220315145705652

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

++:自增1

– :自減1

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

舉個栗子:

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)系運算符

常見關(guān)系運算符

image-20220315150736089

關(guān)系運算符的運算結(jié)果都是布爾(boolean)類型,要么是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

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

4. 邏輯運算符

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

4.1 &&:邏輯與,并且

也稱短路與

布爾表達式1 && 布爾表達式2:兩個表達式都為真的時候,整個表達式才是真

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

舉個栗子:

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 ||:邏輯或,或者

布爾表達式1 || 布爾表達式2:只要有?個是真,整個表達式就是真

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

舉個栗子:

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 !:邏輯非,表示否定

語法規(guī)則:!表達式

真變假,假變真。

舉個栗子:

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

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

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

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

5. 位操作符

如果位操作符,左右兩邊不是布爾表達式,那么他就代表位運算,且位運算操作的是二進制位

5.1 按位與&

對應(yīng)位上有0就是0,對應(yīng)位都是1的時候,這?位運算下來的結(jié)果就是1

image-20220315164041104

5.2 按位或|

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

image-20220315164134072

5.3 按位異或

不?樣的位上進?或,?樣的位上是0

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

image-20220315164644571

5.4 按位取反~

0變1,1變0

image-20220315164727512

int a = 0x0000000f;
System.out.printf("%x\n", ~a);//fffffff0
?六進制: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. 移位運算

移動的是二進制位

6.1 左移<<

最左側(cè)位不要了,最右側(cè)補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è)補符號位(正數(shù)補0,負數(shù)補1)

用法舉例:

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

image-20220315170102607

注意:沒有?符號數(shù)左移,因為第?位是符號位,移的話把符號位移?了

6.3 無符號右移>>>

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

用法舉例:

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

7. 條件運算符

語法格式:表達式1?表達式2:表達式3

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

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

注意:表達式1必須是一個布爾表達式

用法舉例:

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ōu)先級

就一句話:不確定的話,就加括號!

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

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

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

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

? ? }
}

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

相關(guān)文章

  • Java設(shè)計模式之原型模式詳細解讀

    Java設(shè)計模式之原型模式詳細解讀

    這篇文章主要介紹了Java設(shè)計模式之原型模式詳細解讀,原型模式屬于創(chuàng)建型設(shè)計模式,用于創(chuàng)建重復(fù)的對象,且同時又保證了性能,該設(shè)計模式的好處是將對象的創(chuàng)建與調(diào)用方分離,需要的朋友可以參考下
    2023-12-12
  • Java編程實現(xiàn)調(diào)用com操作Word方法實例代碼

    Java編程實現(xiàn)調(diào)用com操作Word方法實例代碼

    這篇文章主要介紹了Java編程實現(xiàn)調(diào)用com操作Word方法實例代碼,代碼注釋很詳細,在這里分給大家,需要的朋友可以參考下。
    2017-09-09
  • 關(guān)于阿里巴巴TransmittableThreadLocal使用解讀

    關(guān)于阿里巴巴TransmittableThreadLocal使用解讀

    文章主要介紹了三種ThreadLocal的使用:ThreadLocal、InheritableThreadLocal和TransmittableThreadLocal,ThreadLocal和InheritableThreadLocal在單線程和部分情況下可以正常工作,但TransmittableThreadLocal在處理線程池時表現(xiàn)更佳
    2025-02-02
  • SpringBoot如何整合redis實現(xiàn)過期key監(jiān)聽事件

    SpringBoot如何整合redis實現(xiàn)過期key監(jiān)聽事件

    這篇文章主要介紹了SpringBoot如何整合redis實現(xiàn)過期key監(jiān)聽事件,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2020-09-09
  • JavaWeb學(xué)習筆記分享(必看篇)

    JavaWeb學(xué)習筆記分享(必看篇)

    下面小編就為大家?guī)硪黄狫avaWeb學(xué)習筆記分享(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • SpringBoot使用GraphQL開發(fā)Web API實現(xiàn)方案示例講解

    SpringBoot使用GraphQL開發(fā)Web API實現(xiàn)方案示例講解

    這篇文章主要介紹了SpringBoot使用GraphQL開發(fā)Web API實現(xiàn)方案,GraphQL是一個從服務(wù)端檢數(shù)據(jù)的查詢語言。某種程度上,是REST、SOAP、或者gRPC的替代品
    2023-04-04
  • Java中常用的代碼匯總

    Java中常用的代碼匯總

    本文給大家分享了20個常用的java代碼,都是別人項目中使用過的代碼,這里推薦給大家,有需要的小伙伴可以參考下。
    2015-05-05
  • java 中List刪除實例詳解

    java 中List刪除實例詳解

    這篇文章主要介紹了java 中List刪除實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • 關(guān)于ireport中傳入list的處理方式

    關(guān)于ireport中傳入list的處理方式

    這篇文章主要介紹了關(guān)于ireport中傳入list的處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 基于Spring + Spring MVC + Mybatis 高性能web構(gòu)建實例詳解

    基于Spring + Spring MVC + Mybatis 高性能web構(gòu)建實例詳解

    這篇文章主要介紹了基于Spring + Spring MVC + Mybatis 高性能web構(gòu)建實例詳解,需要的朋友可以參考下
    2017-04-04

最新評論

漳州市| 沙湾县| 枣强县| 青海省| 易门县| 巴林左旗| 从江县| 德钦县| 穆棱市| 合山市| 海门市| 辽宁省| 屏东县| 青州市| 崇礼县| 晋中市| 淳化县| 唐河县| 会宁县| 浪卡子县| 西和县| 福安市| 惠水县| 沾化县| 白银市| 克山县| 平江县| 宜君县| 东乌| 吉水县| 区。| 新余市| 剑阁县| 东莞市| 永城市| 于都县| 威信县| 清水县| 罗平县| 德昌县| 海盐县|