[原]關於包裝類和基本類型之間的,equals,==和邏輯運算符的比較

 

                /**
		 * 包裝類與包裝類
		 */
		Integer x = 123;
		Integer y = 123;
		Integer z = new Integer(123);
		Long l = 123l;
		Double d = 123.1;
		
		System.out.println("1." + x.equals(y));
		System.out.println("2." + x.equals(z));
		System.out.println("3." + x.equals(l));//equals比較的是對象本身,只有同個類的對象纔有可能equals阿!		
		System.out.println("4." + (x == y));
		System.out.println("5." + (x<=d)); //不同包裝類,是可以用<,>這些比較它們的值的,因爲他們會拆箱
		
		/**
		 * 對於基本類型
		 */
		int x2 = 23;
		long l2 = 23l;
		double d2 = 23.1;
		System.out.println("6." + (x2 == l2));//對於基本類型,int,long,double這些都是可以直接用 ==,<這些運算符比較數值大小的!
		System.out.println("7." + (x2 > d2));
		
		/**
		 * 包裝類和基本類型
		 */
		Integer i1 = 123;
		int i2 = 123;
		long l3 = 123;
		System.out.println("8." + i1.equals(i2));
		System.out.println("9." + i1.equals(l3));//equals比較的是對象本身!long裝箱之後是Long,跟Integer是不可能equals的
		System.out.println("10." + (i1 == i2));
		System.out.println("11." + (i1 == l3));//==是拆箱之後比較數值

 

運行結果是:

 

1.true

2.true

3.false

4.true

5.true

6.true

7.false

8.true

9.false

10.true

11.true

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章