int和Integer有什么区别?

可参考:http://www.cnblogs.com/liuling/archive/2013/05/05/intAndInteger.html

从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换

Integer和int比都会自动拆箱(jdk1.5以上)。拆箱--->从Integer转为int;装箱指的是从int-->Integer

Integer i5 = 127;//java在编译的时候,被翻译成-> Integer i5 = Integer.valueOf(127);

①无论如何,Integer与new Integer不会相等。不会经历拆箱过程,引用指向堆的和指向常量池的内存地址不同,所以必然为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再去比

时间: 2024-12-23 17:03:28

int和Integer有什么区别?的相关文章

int和Integer之间的区别和联系

      在工作中使用==埋下的坑这篇博文中,我们看到当使用基本类型的时候==是完全没有问题的,部分或者混合使用基本类型和装箱基本类型的时候,就可能出现问题了,那么我们可能会想基本类型和装箱基本类型有什么区别和联系哪?下面以int和Integer为例讲讲我的看法.int和Integer非常的像,所有的基本类型和其对应的装箱基本类型都非常的像,但是他们之间也是有区别的,他们之间的区别是什么哪? 为了明白他们之间的区别和联系,我们一起看看下面这段简单的代码和罗织在代码之间的结论吧! 1:TestI

Java Int和Integer有什么区别?

Int int是我们常说的整型数字,是Java的8个原始数据类型(Primitive Type:boolean.byte.short.char.int.float.double.long)之一.Java语言虽然号称一切都是对象,但原始数据是例外. Integer Integer是int对应的包装类,它有一个int类型的字段存储数据,并且提供了基本操作,比如数学运算,int和字符串之间转换等.在Java5中引入了自动装箱和自动拆箱功能,Java可以根据上下文,自动进行转换,极大的简化了相关编程.

《Java架构筑基》从Java基础讲起——Int和Integer深入分析

1.关于int和Integer的问题区别分析 编译阶段.运行时,自动装箱 / 自动拆箱是发生在什么阶段? 使用静态工厂方法 valueOf 会使用到缓存机制,那么自动装箱的时候,缓存机制起作用吗? 为什么我们需要原始数据类型,Java 的对象似乎也很高效,应用中具体会产生哪些差异? 阅读过 Integer 源码吗?分析下类或某些方法的设计要点? int和Integer的区别 1.Integer是int的包装类,int则是java的一种基本数据类型 2.Integer变量必须实例化后才能使用,而i

java 中int与integer的区别

int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型和复杂数据类型 int 是前者而integer 是后者(也就是一个类):因此在类进行初始化时int类的变量初始为0.而Integer的变量则初始化为null. 2.初始化时: int i =1:Integer i= new Integer(1);(要把integer 当做一个类看):但由于有了自动装

Java进阶(三十五)java int与integer的区别

Java进阶(三十五)java int与integer的区别 前言 int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象. 1.Java 中的数据类型分为基本数据类型和复杂数据类型 int 是前者而integer 是后者(也就是一个类):因此在类进行初始化时int类的变量初始为0.而Integer的变量则初始化为null. 2.初始化时: int i =1; Integer i= new In

[转]java int与integer的区别

转自:http://www.cnblogs.com/shenliang123/archive/2011/10/27/2226903.html int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型和复杂数据类型 int 是前者而integer 是后者(也就是一个类):因此在类进行初始化时int类的变量初始为0.而Integer的变量则初始化为null.

java int与integer的区别

java int与integer的区别 int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型和复杂数据类型 int 是前者而integer 是后者(也就是一个类):因此在类进行初始化时int类的变量初始为0.而Integer的变量则初始化为null. 2.初始化时: int i =1:Integer i= new Integer(1);(要把inte

java中int 和 Integer的区别

要想搞清楚int和integer的区别,需要先搞清楚什么叫包装类. 虽然 Java 语言是典型的面向对象编程语言,但其中的 8 种基本数据类型并不支持面向对象的编程机制,基本类型的数据不具备“对象”的特性--不携带属性.没有方法可调用.沿用它们只是为了迎合人类根深蒂固的习惯,并的确能简单.有效地进行常规数据处理.这种借助于非面向对象技术的做法有时也会带来不便,比如引用类型数据均继承了Object 类的特性,要转换为 String 类型时只要简单调用 Object 类中定义的 toString()

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

一.先说说int与integer的区别 int 是基本数据类型,默认值为0,不需要进行实例化 integer 是引用数据类型,是int的封装类型,默认值为null,创建该类型需要进行实例化. 基本数据类型是可以用“==”进行比较,而引用数据类型则不可以,一般是通过equals方法来实现比较. 二 .再说说基本数据类型与引用数据类型的区别? 特点: 1.从概念方面来说 基本数据类型:变量名指向具体的数值引用数据类型:变量名指向存数据对象的内存地址,即变量名指向hash值 2.从内存构建方面来说 基