`

int和integer的区别

阅读更多
/**
 *  ①无论如何,Integer与new Integer不会相等。不会经历拆箱过程,i2的引用指向堆,而i3指向专门存放他的内存(常量池),他们的内存地址不一样,所以为false
 *  ②两个都是非new出来的Integer,如果数在-128到127之间,则是true,否则为false
 *  java在编译Integer i2 = 128的时候,被翻译成-> Integer i2 = Integer.valueOf(128);而valueOf()函数会对-128到127之间的数进行缓存
 *  ③两个都是new出来的,都为false
 *  ④int和integer(无论new否)比,都为true,因为会把Integer自动拆箱为int再去比
 * @author qcxiao
 *
 */
public class TestInteger {
	public static void main(String[] args) {
		int i = 128;
		Integer i2 = 128;
		Integer i3 = new Integer(128);
		// Integer会自动拆箱为int,所以为true
		System.out.println(i == i2);
		System.out.println(i == i3);
		System.out.println(i2 == i3);
		System.out.println("**************");
		// java在编译的时候,被翻译成-> Integer i5 = Integer.valueOf(127);
		Integer i5 = 127;
		Integer i6 = 127;
		System.out.println("i5 == i6->" + (i5 == i6));
		
		Integer i9 = 128;
		Integer i10 = 128;
		System.out.println("i9 == i10->" + (i9 == i10));
		//java在编译Integer i2 = 128的时候,被翻译成-> Integer i2 = Integer.valueOf(128);
		//而valueOf()函数会对-128到127之间的数进行缓存,如果超出就会return new Integer(i);可以看valueOf源码
		System.out.println("***************");
		Integer ii5 = new Integer(127);
		System.out.println(i5 == ii5); 
		Integer i7 = new Integer(128);
		Integer i8 = new Integer(128);
		System.out.println(i7 == i8); 
	}

//	public static Integer valueOf(int i) {
//		assert IntegerCache.high >= 127;
//		if (i >= IntegerCache.low && i <= IntegerCache.high)
//			return IntegerCache.cache[i + (-IntegerCache.low)];
//		return new Integer(i);
//	}
}

 

分享到:
评论

相关推荐

    JAVA-int和Integer的区别

    在Java编程语言中,`int`和`Integer`都是用于表示整数值的数据类型,但它们之间存在着显著的差异。理解这些区别对于编写高效且优化的Java代码至关重要。 首先,`int`是Java中的原始数据类型(Primitive Type),它...

    JAVA-int和Integer的区别1.zip

    在Java编程语言中,`int`和`Integer`都是用于表示整数值的数据类型,但它们之间存在着显著的差异。理解这些区别对于编写高效且优化的Java代码至关重要。 首先,`int`是Java中的原始数据类型之一,它直接存储在栈...

    Java中int和Integer的区别.doc

    Java 中 int 和 Integer 的区别 Java 中的数据类型可以分为基本数据类型和复杂数据类型,int 是基本类型,而 Integer 是一个类。下面是它们之间的主要区别: 1. 数据类型 int 是基本数据类型,直接存储数值,而 ...

    Java中int和Integer的区别.doc.doc

    Java 中 int 和 Integer 的区别 在 Java 编程语言中,int 和 Integer 是两种不同的数据类型,虽然它们看起来很相似,但它们有着根本的区别。下面我们将详细探讨这两种数据类型的差异。 基本类型 vs 复杂数据类型 ...

    第7讲 int和Integer有什么区别1

    【标题】:“第7讲 int和Integer有什么区别1” 【描述】:“1. 理解自动装箱、拆箱2. 源码分析3. 原始类型线程安全” 【标签】:“java 数学” 【正文】: 在Java编程中,`int`和`Integer`是两种不同的数据类型,...

    Java基本数据类型与封装类型详解(int和Integer区别)

    本文将深入探讨Java中的int基本数据类型和Integer封装类型之间的差异。 1. 类型区别: - int是Java的八种基本数据类型之一,属于原始类型(Primitive Type),它直接存储整数值,没有对象的概念。int的默认值是0。...

    详解Java中int和Integer的区别

    Java 中 int 和 Integer 的区别 Java 作为一门面向对象的编程语言,具有两种基本数据类型:基本数据类型(primitive type)和引用类型(reference type)。在 Java 中,基本数据类型只有八个:boolean、char、byte...

    int与Integer的区别(Java各种数据类型详细介绍及其区别).doc

    本篇文章将深入探讨Java中的基本类型,特别是`int`和`Integer`的区别。 1. 基本类型: - 实数:`double`和`float`。`double`使用8个字节存储,遵循IEEE 754双精度标准,范围广泛。`float`使用4个字节,遵循单精度...

    Java int与integer的区别

    int与integer的区别从大的方面来说是基本数据类型与其包装类的区别:  int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象  1.Java 中的数据类型分为基本数据类型和复杂数据类型  int 是...

    mybatis返回Integer

    首先,我们要理解Java中的基本类型int和引用类型Integer的区别。int是Java的基本数据类型,它占用32位存储空间,直接存储数值,而Integer是int的包装类,是一个对象,它包含一个int类型的成员变量。在Java中,对象的...

    Integer和int的不同

    在Java编程语言中,`Integer`和`int`是两种不同的数据类型,它们在使用上有一些关键的区别。首先,`int`是Java的八种原始数据类型之一,它用来存储整数值,如-2147483648到2147483647之间的数字。`int`变量的默认值...

    简单了解java中int和Integer的区别

    Java 中 int 和 Integer 的区别 Java 中的 int 和 Integer 是两个不同的概念,都是表示整数类型,但是它们有着不同的特性和用途。本文将详细介绍 Java 中 int 和 Integer 的区别。 1. 数据类型 int 是 Java 中的...

    Java中int与integer的区别(基本数据类型与引用数据类型)

    在Java编程语言中,`int` 和 `Integer` 是两种截然不同的数据类型,它们各自具有独特的特性和用途。理解这两者之间的差异对于编写高效、可靠的代码至关重要。 首先,`int` 是Java中的一个基本数据类型,它代表整数...

    java 举例分析 equals hashcode 基本类型与基本对象的比较 shot与Short int与Integer long与Long

    举例分析 equals 和 hashcode 方法,hashcode应该怎么样生成 8个基本类型与基本对象的比较:byte与Byte shot与Short int与Integer long与Long float与Float double与Double char与Character

    Java int与integer的对比区别

    在Java编程语言中,`int` 和 `Integer` 都是用来表示整数的,但它们在性质和使用场景上有着显著的区别。理解这两者之间的差异对于编写高效且符合Java语法规则的代码至关重要。 首先,`int` 是Java中的一个基本数据...

    Java中关于int和Integer的区别详解

    在Java编程语言中,`int`和`Integer`虽然都用于表示数值,但它们之间存在着显著的区别。`int`是Java中的一个基本数据类型,而`Integer`是`int`的包装类,属于引用数据类型。下面是这两个概念的详细解析: 1. **基本...

    Java中Integer两种转int方法比较

    在Java编程语言中,将`Integer`对象转换为基本数据类型`int`有两种常见的方法:`Integer.parseInt()`和`Integer.valueOf()`。理解这两种方法的区别和应用场景对于编写高效且正确的Java代码至关重要。 首先,我们来...

    Mybatis返回int或者Integer类型报错的解决办法

    在使用Mybatis进行数据操作时,有时可能会遇到返回`int`或`Integer`类型时出现异常的情况。这种问题通常出现在当Mapper方法试图返回一个可能是`null`的结果,但方法声明的返回类型是基本类型`int`时。由于基本类型不...

Global site tag (gtag.js) - Google Analytics