Integer和int的区别

Java两种数据类型

1):基本数据类型:byte,char,short  int float long double、boolean

2):引用数据类型: 数组、类、接口。

级别从低到高为:byte,char,short(这三个平级)-->int-->float-->long-->double

自动类型转换:从低级别到高级别,系统自动转的;

强制类型转换:什么情况下使用?把一个高级别的数赋给一个别该数的级别低的变量;

【八种基本数据类型的包装类】

byte ——Byte  char----Character short ——Short int ——Integer float-----Float  long-----Long  double----Double  boolean---Boolean

Integer和int的区别:Integer [??nt?d??(r)]

1.Integer是int的包装类,int则是java的一种基本数据类型 
Integer的初值为null,int的初值为0。(Integer 是类,默认值为null,int是基本数据类型,默认值为0)

Integer实际是对象的引用,(当new一个Integer时,实际上是生成一个指针指向此对象);而int则是直接 存储数据值

2. Integer与new Integer比:无论值是否相同,Integer与new Integer都不会相等,结果为false。

  情况一:Integer范围在-128~127之间,指向专门存放它的常量池;new Integer引用指向堆。它们的内存地址不一样,所以无论值是否相同,比较结果都为false。

  情况二:Integer范围不在-128~127之间,编译时Integer.valueOf()返回的是new Integer();而new Integer引用指向堆。这样两者是两个不同的堆栈对象,无论堆上的值是否相同,引用地址不同,比较结果都为false。

  情况三:两个Integer范围都不在-128~127之间,则依然是两个new Integer对象,则比较结果为false。

3 .两个 new出来的Integer相比:两个都是new出来的,无论堆上的值是否相同,引用地址不同,结果为false。

4.两个 非new出来的Integer相比: 两个都是非new出来的Integer,如果数在-128~127之间,值相同则为true,否则为false。

原因:java在编译Integer时,会翻译成Integer i = Integer.valueOf(),而valueOf()会对-128~127之间的数进行缓存。

5.int和Integer比:无论Integer是new出来的 还是-128~127范围之外的,值相同则为true,否则为false。

原因:Integer与int比较时,Integer会自动拆箱为int

Integer 的自动拆箱和装箱

自动装箱 就是Integer.valueOf(int i);

自动拆箱  就是 i.intValue();

自动装箱规范要求 byte<= 127、char<=127、-128<=short <=127、-128<=int <=127都被包装到固定的对象中(缓存)。

自动拆箱: Integer 类表示的数据赋值给基本数据类型int,就执行了自动拆箱。

通过基本数据类型的包装来的valueOf和parseXX来实现String转为XX

原文地址:https://www.cnblogs.com/2549372994jing/p/10531723.html

时间: 2024-09-30 15:34:41

Integer和int的区别的相关文章

14、 Integer 与 int 的区别

14. Integer 与 int 的区别int 是 java 提供的8种原始数据类型之一. Java 为每个原始类型提供了封装类, Integer 是 java为 int 提供的封装类. int 的默认值为0,而 Integer 的默认值为 null,即 Integer 可以区分出未赋值和值为0的区别, int 则无法表达出未赋值的情况,例如,要想表达出没有参加考试和考试成绩为0的区别,则只能使用 Integer.在 JSP 开发中, Integer 的默认为 null,所以用el 表达式在文

Integer 与int 的区别

int 是java 提供的8 种原始数据类型之一.Java 为每个原始类型提供了封装类,Integer 是java 为int 提供的封装类.int 的默认值为0,而Integer 的默认值为null,即Integer 可以区分出未赋值和值为0 的区别,int 则无法表达出未赋值的情况,例如,要想表达出没有参加考试和考试成绩为0 的区别,则只能使用Integer.在JSP 开发中,Integer 的默认为null,所以用el 表达式在文本框中显示时,值为空白字符串,而int 默认的默认值为0,所以

Integer与int的区别

简述:int与Integer的区别: 对于它们,我们可能只是知道简单的区别.Integer是int的一个封装类,int的初始值为0,而Integer的初始值为null.但是他们之间真的仅仅只有这些区别吗?我觉得答案是否定的,于是我决定深入到jdk源码中一探究竟.看看Integer与int到底有什么区别. 执行代码: 1 public class IntegerTest { 2 3 public static void main(String[] args) { 4 // TODO Auto-ge

Integer与int的区别(包装类和基本数据类型的区别)

1. 默认值 int默认值为0,Integer的默认值为null.推论:Integer既可以表示null又可以表示0 2. 包装类中提供了该类型相关的很多算法操作方法 如把十进制装换为2进制(toBinaryString),8进制(toOctalString),16进制(toHexString). 3. 在集合框架中,只能存储对象类型,不能存储基本数据类型. 4. Integer与int是不同的数据类型. 5. 方法中的基本类型变量存储在栈中,包装类型存放于堆中.

Integer 与 int 的区别

int是java提供的8种原始数据类型之一. Java为每个原始类型提供了封装类,Integer是java为int提供的封装类. int的默认值为0,而Integer的默认值为 null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况, 在JSP开发中,Integer的默认为null,所以用el表达式在文本框中显示时,值为空白字符串,而int默认的默认值为0,所以用el表达式在文本框中显示时,结果为0,所以,int不适合作为web层的表单数据的类型.  在Hibe

Integer和int的区别(转)

public class TestInteger { public static void main(String[] args) { int i = 128; Integer i2 = 128; Integer i3 = new Integer(128); System.out.println(i == i2); //Integer会自动拆箱为int,所以为true System.out.println(i == i3);//true,理由同上 System.out.println(i3 ==

Integer 与int类型的区别使用

区别一: Java 为每个原始类型提供了包装类型:  - 原始类型: boolean,char,byte,short,int,long,float,double  - 包装类型:Boolean,Character,Byte,Short,Integer,Long,Float,DoubleInteger与int的区别最基本的是:Ingeter是int的包装类,int的初值为0,Ingeter的初值为null1.自动拆箱比较为true 1 @org.junit.Test 2 public void t

integer与int区别以及integer.values()方法详解

声明:本文为博主转载文章,原文地址见文末. 知识点1:integer和int的区别 /* * int是java提供的8种原始数据类型之一.Java为每个原始类型提供了封装类,Integer是java为int提供的封装类.int的默认值为0, * 而Integer的默认值为null * ,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况,例如,要想表达出没有参加考试和考试成绩为0的区别 * ,则只能使用Integer * .在JSP开发中,Integer的默认为nul

Java进阶(三十四)Integer与int的种种比较你知道多少?

Java进阶(三十四)Integer与int的种种比较你知道多少? 前言 如果面试官问Integer与int的区别:估计大多数人只会说到两点:Ingeter是int的包装类,注意是一个类:int的初值为0,Ingeter的初值为null.但是如果面试官再问一下Integer i = 1;int ii = 1; i==ii为true还是为false?估计就有一部分人答不出来了,如果再问一下其他的,估计更多的人会头脑一片混乱.所以我对它们进行了总结,希望对大家有帮助. 首先看代码: package