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

Java中的==使用方法詳解

 更新時(shí)間:2022年09月19日 09:56:21   作者:菜鳥小星啦  
這篇文章主要介紹了Java中“==”的使用方法,,==可以使用在基本數(shù)據(jù)類型變量和引用數(shù)據(jù)類型變量中,equals()是方法,只能用于引用數(shù)據(jù)類型,需要的朋友可以參考下

Java中的==符號(hào)是一個(gè)很令人費(fèi)解的點(diǎn),它究竟代表的是什么,下面由我來(lái)揭示一下它所包含的奧妙!

1.==在基本數(shù)據(jù)類型是比較值的大小

int a = 1;
int b = 1;
System.out.println(a==b);

上面的例子輸出的結(jié)果為

true

所以在基本數(shù)據(jù)類型比較的是數(shù)值是否相等

2.在包裝類中比較的是地址相等

2.1 Integer類類型==的運(yùn)用

看下面的例子:

        Integer a = new Integer(1);
        Integer b = new Integer(1);
        System.out.println(a==b);

上面代碼的答案是

false

通過(guò)關(guān)鍵字new出來(lái)的對(duì)象都是存在堆棧里面的,每new一次則在

在堆棧中創(chuàng)建一個(gè)對(duì)象。所以a與b的地址不一樣。

我們?cè)倏聪旅娴睦?/p>

        Integer a =1;
        Integer b = 1;
        Integer c =128;
        Integer d = 128;
        System.out.println(a==b);
        System.out.println(c==d);

上面例子答案是

true

false

為什么會(huì)出現(xiàn)這樣子呢,我們先看看jdk中的源碼吧

    public static Integer valueOf(int i) {
        if (i >= IntegerCache.low && i <= IntegerCache.high)
            return IntegerCache.cache[i + (-IntegerCache.low)];
        return new Integer(i);
    }

上面的例子使用到了自動(dòng)裝箱的功能, Integer a =1;等同于

Integer a = Tnteger.valueOf(1)。從jdk的源碼可以得知valueOf方法在代碼運(yùn)行之前已經(jīng)把-128-127的Intege之間r的對(duì)象存在了緩存中了,在運(yùn)行的時(shí)候如果Integer對(duì)象在-128-127之間則返回緩存中的該對(duì)象,而不會(huì)重新生成對(duì)象,如果不在-128-127之間則會(huì)在堆中新創(chuàng)建一個(gè)對(duì)象。

2.2 String類類==的運(yùn)用

在兩個(gè)String用==來(lái)作比較的時(shí)候,比較的也是他的地址。

       String a =new String( "abc");
       String b =new String( "abc");
       System.out.println(a==b);

上面的例子運(yùn)行結(jié)果為

false

通過(guò)關(guān)鍵字new出來(lái)的對(duì)象都是存在堆棧里面的,每new一次則在

在堆棧中創(chuàng)建一個(gè)對(duì)象。所以a與b的地址不一樣。和上面Integer的new例子是一樣的。

我們?cè)倏聪旅娴睦?/p>

       String a ="abc";
       String b ="abc";
       System.out.println(a==b);

上面例子的結(jié)果是

true

String不通過(guò)new直接通過(guò)=的方式直接賦值,不是像new一個(gè)對(duì)象一樣直接在堆中賦值,是先遍歷常量池,看常量值有沒(méi)有直接賦值的對(duì)象,有的話直接返回該對(duì)象,如果沒(méi)有的話,則在常量池中新建一個(gè)String對(duì)象,返回新建的對(duì)象。因此在常量池中不會(huì)有相同的String對(duì)象。所以變量a與b指向的地址一樣所以返回true。

我們?cè)倏匆粋€(gè)例子:

       String a = "abc";
       String b = "d";
       String c ="abc"+"d";
       String d = a+b;
       String e ="abcd";
       System.out.println(c==e);
       System.out.println(d==e);

上面代碼的結(jié)果是

true

false

String c ="abc"+"d";在編譯的時(shí)候已經(jīng)進(jìn)行了優(yōu)化了,"abc"+"d"編譯器把他看成了一個(gè)常量表達(dá)式,所以"abc"+"d"相當(dāng)于字符串常量abcd。而String d = a+b;存在變量不能進(jìn)行優(yōu)化,是在運(yùn)行的時(shí)候才進(jìn)行操作的,他同時(shí)在堆中創(chuàng)建了一個(gè)新的字符串對(duì)象并指向d。

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

相關(guān)文章

  • 關(guān)于java中自定義注解的使用

    關(guān)于java中自定義注解的使用

    這篇文章主要介紹了關(guān)于java中自定義注解的使用,注解像一種修飾符一樣,應(yīng)用于包、類型、構(gòu)造方法、方法、成員變量、參數(shù)及本地變量的聲明語(yǔ)句中,需要的朋友可以參考下
    2023-07-07
  • SpringBoot使用Guava實(shí)現(xiàn)日志脫敏的示例代碼

    SpringBoot使用Guava實(shí)現(xiàn)日志脫敏的示例代碼

    本文主要介紹了SpringBoot使用Guava實(shí)現(xiàn)日志脫敏的示例代碼,使用Guava中的Strings、Maps和CharMatcher類來(lái)進(jìn)行日志脫敏,保護(hù)敏感數(shù)據(jù)的安全,感興趣的可以了解一下
    2024-01-01
  • Java中實(shí)現(xiàn)雙數(shù)組Trie樹實(shí)例

    Java中實(shí)現(xiàn)雙數(shù)組Trie樹實(shí)例

    這篇文章主要介紹了Java中實(shí)現(xiàn)雙數(shù)組Trie樹實(shí)例,雙數(shù)組Trie就是一種優(yōu)化了空間的Trie樹,本文給出了實(shí)現(xiàn)代碼、測(cè)試代碼和測(cè)試結(jié)果,需要的朋友可以參考下
    2015-01-01
  • Java導(dǎo)出Excel文件的方法

    Java導(dǎo)出Excel文件的方法

    項(xiàng)目里很多接口都涉及導(dǎo)出Excel文件,所以本文給大家總結(jié)了項(xiàng)目中導(dǎo)出Excel文件的方法,并通過(guò)代碼示例講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2025-02-02
  • 詳解mybatis批量插入10萬(wàn)條數(shù)據(jù)的優(yōu)化過(guò)程

    詳解mybatis批量插入10萬(wàn)條數(shù)據(jù)的優(yōu)化過(guò)程

    這篇文章主要介紹了詳解mybatis批量插入10萬(wàn)條數(shù)據(jù)的優(yōu)化過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Java中的@PostConstruct注解

    Java中的@PostConstruct注解

    本文給大家介紹Java中的@PostConstruct注解的相關(guān)知識(shí),通過(guò)示例代碼給大家補(bǔ)充介紹了Java提供的@PostConstruct注解,Spring是如何實(shí)現(xiàn)的,感興趣的朋友一起看看吧
    2025-04-04
  • SpringBoot 集成MQTT實(shí)現(xiàn)消息訂閱的詳細(xì)代碼

    SpringBoot 集成MQTT實(shí)現(xiàn)消息訂閱的詳細(xì)代碼

    本文介紹了如何在SpringBoot中集成MQTT并實(shí)現(xiàn)消息訂閱,主要步驟包括添加依賴、配置文件設(shè)置、啟動(dòng)類注解、MQTT配置類、消息處理器配置、主題緩存、動(dòng)態(tài)數(shù)據(jù)庫(kù)主題配置以及消息處理服務(wù),感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Springboot @RequestBody注解踩坑記錄

    Springboot @RequestBody注解踩坑記錄

    這篇文章主要介紹了Springboot @RequestBody注解踩坑記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 基于SpringBoot實(shí)現(xiàn)Web應(yīng)用的登錄與退出功能

    基于SpringBoot實(shí)現(xiàn)Web應(yīng)用的登錄與退出功能

    登錄與退出功能作為 Web 應(yīng)用中的基礎(chǔ)且重要的組成部分,直接關(guān)系到用戶的安全和隱私保護(hù),所以本文給大家介紹了基于SpringBoot實(shí)現(xiàn)Web應(yīng)用的登錄與退出功能,文中有詳細(xì)的代碼供大家參考,需要的朋友可以參考下
    2024-04-04
  • SpringBoot整合Shiro的代碼詳解

    SpringBoot整合Shiro的代碼詳解

    shiro是一個(gè)權(quán)限框架,它提供了很方便的權(quán)限認(rèn)證和登錄的功能.下面通過(guò)本文給大家分享SpringBoot整合Shiro的代碼詳解,需要的的朋友參考下吧
    2017-08-08

最新評(píng)論

甘德县| 十堰市| 娄底市| 那曲县| 噶尔县| 泽州县| 英吉沙县| 梧州市| 绿春县| 巴南区| 西平县| 广德县| 海兴县| 米林县| 广南县| 瑞昌市| 榆社县| 新津县| 蚌埠市| 堆龙德庆县| 龙南县| 大厂| 廉江市| 友谊县| 巴中市| 大余县| 淳化县| 金坛市| 丹巴县| 洪洞县| 台前县| 华阴市| 高阳县| 广德县| 屯昌县| 通道| 克山县| 永丰县| 长宁县| 临洮县| 建宁县|