程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> java-昨天京東筆試的一道選擇題,不理解

java-昨天京東筆試的一道選擇題,不理解

編輯:編程解疑
昨天京東筆試的一道選擇題,不理解

代碼:

 package cn.lut.test;

public class SameTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Integer a=new Integer(1);
        Integer b=1;
        int c=1;

        System.out.println(a==b);
        System.out.println(a==c);
        System.out.println(b==c);
    }

}

輸出結果:
false
true
true

疑惑:有程序運行結果可得a和c地址相同,b和c地址相同,不是可以退出a和b相同嗎?Integer a=1和int a=1有什麼區別?
補充:不理解的地方是為什麼a和c相同。

最佳回答:


1、基本數據類型,也稱原始數據類型。byte,short,char,int,long,float,double,boolean。他們之間的比較,應用雙等號(==),比較的是他們的值。
2、復合數據類型(類) ,當他們用(==)進行比較的時候,比較的是他們在內存中的存放地址,所以,除非是同一個new出來的對象,他們的比較後的結果為true,否則比較後結果為false。
3、int 是基本數據類型,Integer是其包裝類,注意是一個類。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved