Integer 和int

获取Integer对象有两种方式:Integer x = 100;或者Integer x = new Integer(100);

Integer x = 100;等价于Integer x = Integer.valueof(100); 用valueof()函数返回一个Integer对象。

Integer是对象 int是数据类型,对象和数据类型比,比的是数值,会自动拆箱,所以不管是Integer x = 100;或者Integer x = new Integer(100);

和100相==,结果都为true;

而获取Integer对象的两种方式是新建Integer对象,那么内存地址就会改变,所以新建的两个Integer对象之间==,结果会为false;

但是有特例,valueof()函数的参数值如果在-128到127之间,会进行缓存,所以连续吧valueof()参数在这个范围中间的返回值赋予两个Integer引用,会指向同一个对象,所以这个时候

Integer i1 = 100; Integer i2 = 100; i1==i2 为true;

时间: 2024-10-12 04:32:43

Integer 和int的相关文章

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

Java包装类,以及Integer与int之间的比较

一.Java的基本类型 Java语言中提供了八种基本类型,包括六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型. 整数型,包括byte.short.int.long,默认初始值是0: 浮点型,包括float.double,默认初始值是0.0: 字符型,char型,默认值是'',注意跟""的区别,''是字符的引号,""是字符串的引号,两者不同. 布尔型,boolean,默认初始值是false. 注意:如果不初始化一个char类型的变量,将它输出在c

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.toString(int i)方法和String.valueOf(int i)方法

通过查看String类的源码: public static String valueOf(int i) { return Integer.toString(i); } 我们可以看到,String.valueOf(int i)其实是调用了Integer.toString(int i)方法的. 再次通过查看Integer类的源码我们可以看到: public static String toString(int i) { if (i == Integer.MIN_VALUE) return "-214

Java数据类型中String、Integer、int相互间的转换

1.Integer转换成int的方法 Integer i;  int k = i.intValue(); 即Integer.intValue(); 2.int转换成Integer int i; Integer it = new Integer(i); 3.String转换成int的方法 String str = "10";   Integer it = new Interger(str); int i = it.intValue(); 即:int i = Integer.intValu

(备忘)Java数据类型中String、Integer、int相互间的转换

1.Integer转换成int的方法 Integer i; int k = i.intValue();即Integer.intValue(); 2.int转换成Integer int i; Integer it = new Integer(i); 3.String转换成int的方法 String str = "10"; Integer it = new Interger(str); int i = it.intValue(); 即:int i = Integer.intValue(st

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

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

Integer与int的种种比较

package com.lxm.basics; public class IntegerTest { public static void main(String[] args) { Integer a1 = 45; int a2 = 45; Integer a3 = Integer.valueOf(45); Integer a4 = new Integer(45); Integer a5 = new Integer(45); System.out.println("a1==a2:"+

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

【Java面试题】5 Integer的int 的种种比较?详细分析

如果面试官问Integer与int的区别:估计大多数人只会说道两点,Ingeter是int的包装类,int的初值为0,Ingeter的初值为null.但是如果面试官再问一下Integer i = 1;int ii = 1; i==ii为true还是为false?估计就有一部分人答不出来了,如果再问一下其他的,估计更多的人会头脑一片混乱.所以我对它们进行了总结,希望对大家有帮助. 首先看代码: 1 package com.test; 2 /** 3 * 4 * @author 刘玲 5 * 6 *