第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java中的包裝類和通用說明

Java中的包裝類和通用說明

倚天杖 2022-05-21 20:15:30
在下面的代碼中,該行System.out.println(sumInteger(bigs) == sumInteger(bigs));顯示為 false。但是當(dāng)我們再次比較另一個 Integer 包裝類System.out.println(bc == ab);時,它返回 true。為什么包裝類的比較在第一種情況下為假而在第二種情況下為真?import java.util.Arrays;import java.util.List;public class Arrays {    public void array1() {        List<Integer> bigs = Arrays.asList(100,200,300);        System.out.println(sumInteger(bigs) == sum(bigs)); // 1. Output: true        System.out.println(sumInteger(bigs) == sumInteger(bigs)); //2. Output: false        Integer ab = 10;        System.out.println(ab == 10); //3. Output: true        Integer bc = 10;        System.out.println(bc == ab); //4. Output: true    }    public static int sum (List<Integer> ints) {        int s = 0;        for (int n : ints) { s += n; }        return s;    }    public static Integer sumInteger(List<Integer> ints) {        Integer s = 0;        for (Integer n : ints) { s += n; }        return s;    }    public static void main(String[] args) {        Array tm = new Array();        tm.array1();    }}
查看完整描述

1 回答

?
一只名叫tom的貓

TA貢獻(xiàn)1906條經(jīng)驗 獲得超3個贊

  System.out.println(sumInteger(bigs) == sum(bigs)); // 1. ***Output: true
   System.out.println(sumInteger(bigs) == sumInteger(bigs)); //2. ***Output: false

sumInteger() 返回一個 Integer,而 sum() 返回一個 int,因此您正在測試 Integer 與 int 的相等性,這會導(dǎo)致 Integer 自動拆箱,因此您最終將 int 與 int 進(jìn)行比較。兩個整數(shù)現(xiàn)在具有相同的值,因此為“真”。

sumInteger() 返回一個 Integer,再次調(diào)用 sumInteger() 返回一個 Integer。這兩個整數(shù)是單獨(dú)創(chuàng)建的對象,但都具有相同的內(nèi)部值。當(dāng)您使用“==”比較它們時,它會比較引用并查看每個對象是如何獨(dú)立創(chuàng)建的,引用不相等,因此為“假”。如果您想測試相等的值,您將需要使用 .equals() 方法。


查看完整回答
反對 回復(fù) 2022-05-21
  • 1 回答
  • 0 關(guān)注
  • 133 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號