真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java中?關(guān)系操作符“==”指的什么意思

小編給大家分享一下Java中關(guān)系操作符“==”指的什么意思,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)扎囊,10多年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

關(guān)系操作符“==”到底比較的是什么?

下面這個句話是摘自《Java編程思想》一書中的原話:"關(guān)系操作符生成的是一個boolean結(jié)果,它們計算的是操作數(shù)的值之間的關(guān)系”。

這句話看似簡單,理解起來還是需要細細體會的。說的簡單點,==就是用來比較值是否相等。

下面先看幾個例子:

public class Main {
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub 
        int n=3;
        int m=3;        
        System.out.println(n==m);        
        String str = new String("hello");
        String str1 = new String("hello");
        String str2 = new String("hello");        
        System.out.println(str1==str2);        
        str1 = str;
        str2 = str;
        System.out.println(str1==str2);
    }
}

輸出結(jié)果為:

true 
false
true

n==m結(jié)果為true,這個很容易理解,變量n和變量m存儲的值都為3,肯定是相等的。而為什么str1和str2兩次比較的結(jié)果不同?要理解這個其實只需要理解基本數(shù)據(jù)類型變量和非基本數(shù)據(jù)類型變量的區(qū)別。

對于這8種基本數(shù)據(jù)類型的變量,變量直接存儲的是“值”,因此在用關(guān)系操作符==來進行比較時,比較的就是 “值” 本身。要注意浮點型和整型都是有符號類型的,而char是無符號類型的(char類型取值范圍為0~2^16-1).

也就是說比如:

int n=3;
int m=3; 

變量n和變量m都是直接存儲的"3"這個數(shù)值,所以用==比較的時候結(jié)果是true。

而對于非基本數(shù)據(jù)類型的變量,在一些書籍中稱作為 引用類型的變量。比如上面的str1就是引用類型的變量,引用類型的變量存儲的并不是 “值”本身,而是于其關(guān)聯(lián)的對象在內(nèi)存中的地址。

比如下面這行代碼:

String str1;

這句話聲明了一個引用類型的變量,此時它并沒有和任何對象關(guān)聯(lián)。

而通過new String("hello")來產(chǎn)生一個對象(也稱作為類String的一個實例),并將這個對象和str1進行綁定:

str1= new String("hello");

那么str1指向了一個對象(很多地方也把str1稱作為對象的引用),此時變量str1中存儲的是它指向的對象在內(nèi)存中的存儲地址,并不是“值”本身,也就是說并不是直接存儲的字符串"hello"。這里面的引用和C/C++中的指針很類似。

因此在用==對str1和str2進行第一次比較時,得到的結(jié)果是false。因此它們分別指向的是不同的對象,也就是說它們實際存儲的內(nèi)存地址不同。

而在第二次比較時,都讓str1和str2指向了str指向的對象,那么得到的結(jié)果毫無疑問是true。

看完了這篇文章,相信你對Java中關(guān)系操作符“==”指的什么意思有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


本文名稱:Java中?關(guān)系操作符“==”指的什么意思
分享網(wǎng)址:http://weahome.cn/article/igdeod.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部