基础--Integer类

本文详细解析了Java中Integer类型在不同情况下使用==和equals进行比较的行为,包括自动装箱、拆箱过程,以及在不同数值范围内的比较结果。通过四个具体的测试案例,深入探讨了new关键字创建Integer实例和非new创建实例的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接上代码

package com.f_;

import org.junit.Test;

public class IntegerDemo {
	
	@Test
	public void test1() {
		Integer a = 1;
		Integer b = 1;
		Integer c = 2;
		System.out.println(a==b);//true
		System.out.println(a.equals(b));//true
		System.out.println(c==(a+b));//true
		System.out.println(c.equals(a+b));//true
		
	}
	
	@Test
	public void test2() {
		Integer a = 190;//等效于Integer a = Integer.valueOf(190);
		Integer b = 190;
		Integer c = 380;
		System.out.println(a==b);//false
		System.out.println(a.equals(b));//true
		System.out.println(c==(a+b));//true
		System.out.println(c.equals(a+b));//true
		
	}
        @Test
	public void test3() {
		Integer a = new Integer(2);
		Integer b = new Integer(2);
		Integer c = new Integer(4);
		System.out.println(a==b);//false
		System.out.println(a.equals(b));//true
		System.out.println(c==(a+b));//true
		System.out.println(c.equals(a+b));//true
		
		
	}
	@Test
	public void test4() {
		Integer a = new Integer(220);
		Integer b = new Integer(220);
		Integer c = new Integer(440);
		System.out.println(a==b);//false
		System.out.println(a.equals(b));//true
		System.out.println(c==(a+b));//true
		System.out.println(c.equals(a+b));//true
		
		
	}

}

结论:

不管是new出来的还是不是new出来的

Integer  ==        默认比地址(前提在-128~127之间)   

             equals  比值(无关范围)

当操作表达式(==或者equals)的一边有运算符(例如a+b)时,则自动拆箱,比值(无关范围)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值