欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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)文章

  • 了解JAVA并發(fā)工具常用設(shè)計(jì)套路

    了解JAVA并發(fā)工具常用設(shè)計(jì)套路

    這篇文章主要介紹了了解JAVA并發(fā)工具常用設(shè)計(jì)套路,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下
    2019-06-06
  • 在Java中輕松將HTML格式文本轉(zhuǎn)換為純文本的方法示例(保留換行)

    在Java中輕松將HTML格式文本轉(zhuǎn)換為純文本的方法示例(保留換行)

    這篇文章主要介紹了在Java中輕松將HTML格式文本轉(zhuǎn)換為純文本的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Java中操作超大數(shù)的方法

    Java中操作超大數(shù)的方法

    本篇文章是小編在網(wǎng)上整理的關(guān)于java操作超大數(shù)的方法以及解決思路,有興趣的朋友參考學(xué)習(xí)下。
    2018-06-06
  • Mybatis使用useGeneratedKeys獲取自增主鍵

    Mybatis使用useGeneratedKeys獲取自增主鍵

    這篇文章主要為大家介紹了Mybatis使用useGeneratedKeys獲取自增主鍵示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Java類加載器ClassLoader的使用詳解

    Java類加載器ClassLoader的使用詳解

    類加載器負(fù)責(zé)讀取Java字節(jié)代碼,并轉(zhuǎn)換成java.lang.Class類的一個(gè)實(shí)例的代碼模塊。本文主要和大家聊聊JVM類加載器ClassLoader的使用,需要的可以了解一下
    2022-12-12
  • Java SpringMVC數(shù)據(jù)響應(yīng)超詳細(xì)講解

    Java SpringMVC數(shù)據(jù)響應(yīng)超詳細(xì)講解

    Spring?MVC?是?Spring?提供的一個(gè)基于?MVC?設(shè)計(jì)模式的輕量級(jí)?Web?開(kāi)發(fā)框架,本質(zhì)上相當(dāng)于?Servlet,Spring?MVC?角色劃分清晰,分工明細(xì),本章來(lái)講解SpringMVC數(shù)據(jù)響應(yīng)
    2022-04-04
  • java生成隨機(jī)數(shù)的方法

    java生成隨機(jī)數(shù)的方法

    這篇文章主要介紹了java生成隨機(jī)數(shù)的方法,涉及java隨機(jī)數(shù)及字符串操作的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • 使用Logback設(shè)置property參數(shù)方式

    使用Logback設(shè)置property參數(shù)方式

    這篇文章主要介紹了使用Logback設(shè)置property參數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Java使用SFTP上傳文件到服務(wù)器的簡(jiǎn)單使用

    Java使用SFTP上傳文件到服務(wù)器的簡(jiǎn)單使用

    這篇文章主要介紹了Java使用SFTP上傳文件到服務(wù)器的簡(jiǎn)單使用,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-02-02
  • 淺談Spring的屬性編輯器的使用

    淺談Spring的屬性編輯器的使用

    這篇文章主要介紹了淺談Spring的屬性編輯器的使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05

最新評(píng)論