首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

int与integer的区别

int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型和复杂数据类型...int 是前者而integer 是后者(也就是一个类);因此在类进行初始化时int类的变量初始为0.而Integer的变量则初始化为null. 2.初始化时:   int i =1;Integer i...Java中每种内建类型都有相应的外覆类。   Java中int和Integer关系是比较微妙的。...关系如下:   1.int是基本的数据类型;   2.Integer是int的封装类;   3.int和Integer都可以表示某一个数值;   4.int和Integer不能够互用,因为他们两种不同的数据类型...对象一样来进行处理,那么就要用Integer来声明一个对象,因为java是面向对象的语言,因此当声明为对象时能够提供很多对象间转换的方式,与一些常用 的方法。

1.1K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java int 与 Integer 区别

    学习借鉴(其实搬了别人的好多)和自己的理解,可能会有较多错误,如有疑问联系我呀。 int  是基本数据类型, Integer 是引用类型,也就是一个对象。...int 储存的是数值,Integer 储存的是引用的对象的地址。 int 占用内存少、Integer 对象占用内存多,因为它需要存储对象的元数据。...不是用 new 生成的 Integer 变量与 new Integer ( ) 生成的变量不同,因为前者是在常量池中的,后者是在堆中的,两个的地址不同。...两个不是 new 生成 Integer 对象比较,如果变量的值在 [ -128 , 127 ] 之间,比较结果为 true,否则是 false。...Integer 变量(无论是否 new 生成的)与 int 类型变量来比较,结果都是 true 。这因为要比较时, Integer都会自动拆箱成 int ,这样子比较就是在比较数值的大小了。

    32120

    Integer与int之间的秘密

    这个问题问的好像有点瞧不起在座各位的样子,嗯。。。那么我换种问法好了,毕竟看完这篇文章的人,将来都是会实现不上班的这个理想的。 Integer与int有什么关联? 嗯?...没事,让我们通过本篇文章一起来回顾下,Integer与int之间的秘密。 1.概念 int 是我们常说的整型,如果没有初始化就使用默认值为0。...对,运行结果是“true”,Integer包装类型的数值和int基本数据类型的数值进行比较时,会自动拆拆箱为int,然后进行比较,实际上就变为两个int类型的数值的比较。...3.Integer类型的对象和int类型的值之间可以自动封箱和自动装箱。...4.Integer变量和int变量比较时,Integer类型的值会自动拆箱为int再去比,只要两个变量的值是相等的,则结果为true。

    47320

    int 和 Integer 的区别与作用

    int 是基本数据类型 Integer 是int的一个包装类(wrapper),他是类不是基本数据类型,他的内部其实包含一个int型的数据 那为什么要用Integer呢,主要是因为面向对象的思想,因为Java...Integer(int value) :通过一个int的类型构造对象; Integer(String s) :通过一个String的类型构造对象; 例子代码: Integer i = new Integer...1. byteValue():取得用byte类型表示的整数; 2. int compareTo(Integer anotherInteger) :比较两个整数。...5. double doubleValue() :取得该整数的双精度表示。 6. boolean equals(Object obj) :比较两个对象。...24. static Integer valueOf(String s, int radix) :将字符串以基数radix的要求转换成整数类型。 来自:李晓卡 > 《java语言总结与学习》

    1.9K10

    Java基础--int与Integer区别

    |Boolean char |Character 二、自动拆箱和自动装箱 Integer n = 100 //编译器自动使用Integer.valueOf(int) 称为自动装箱 int x = n...//编译器自动使用 Integer.intValue() 称为自动拆箱 三、两者之间区别 int是基本类型,Integer是引用数据类型 int默认值是0,Integer默认是null int类型直接存储数值...,Integer需要实例化对象,指向对象的地址。...class; 自动装箱和自动拆箱都是在编译期完成的(JDK>=1.5); 装箱和拆箱会影响执行效率,且拆箱时可能发生NullPointerException; 包装类型的比较必须使用equals();...包装类型提供了大量实用方法; Integer会对-128~127的值进行缓存,具体查看jdk源码; 基本类型和引用类型进行比较时会有一个自动拆箱操作。

    49010

    java integer long 转换_long(Long)与int(Integer)之间的转换

    1.将long型转化为int型,这里的long型是基础类型: long a = 10; int b = (int)a; 2.将Long型转换为int 型的,这里的Long型是包装类型: Long a =...10; int b=a.intValue(); 3.将Long型转换为 Integer 型的,这里的Long型是包装类型: Long a = 10;; Integer b=a.intValue();...4.将int型转化为long型,这里的int型是基础类型: int a = 10;long b = (int)a; 5.将Integer型转化为long型,这里的Integer型是包装类型: int a...(); 总结:这里的转化就是要注意Java的八种基础数据类型以及八种包装数据类型的区别 基本类型和封装类的转换 Int转Integer: Integer integer = new Integer(int...); Integer转int: int i = integer.intValue(); Double转double: double b = Double.doubleValue(); Float转float

    5.4K20

    Java的Integer和Integer比较相等

    Java的Integer和Integer比较相等 Integer是包装类(引用数据类型),int是基本数据类型, Integer a=12; Integer b=12; //a==b为true; Integer...c=1200; Integer d=1200; //c==d为false; Integer e=new Integer(1); Integer f=new Integer(1); //e==f为false...引用数据类型对比需要用equals()方法对比相等 因Integer存在缓存, 在Integer的值不超过-128~127之间==对比为true, 若超过则会new一个Integer对象==结果为false...; 在比较时可使用(a.intValue==b)来比较, 用Integer和int对比Intege会自动拆箱变成int类型,所以结果就是int类型对比int类型了 总结:对象之间的比较不能用==,包括数字包装类...,Integer,Long,Short,Character,Byte,都存在缓存机制,数字大于对应的缓存池就会new一个对象,就不能用==了,若小于缓存池,则包装类不会创建新的对象

    1.6K40

    一篇文章搞明白Integer、new Integer() 和 int 的概念与区别

    基本概念的区分 1、Integer 是 int 的包装类,int 则是 java 的一种基本数据类型 2、Integer 变量必须实例化后才能使用,而int变量不需要 3、Integer 实际是对象的引用...,当new一个 Integer时,实际上是生成一个指针指向此对象;而 int 则是直接存储数据值 4、Integer的默认值是null,int的默认值是0 Integer、new Integer()...和 int 的比较 1、两个 new Integer() 变量比较 ,永远是 false 因为new生成的是两个对象,其内存地址不同 2、Integer变量 和 new Integer() 变量比较...4、 int 变量 与 Integer、 new Integer() 比较时,只要两个的值是相等,则为true 因为包装类Integer 和 基本数据类型int 比较时,java会自动拆包装为int ,...然后进行比较,实际上就变为两个int变量的比较。

    1.8K11

    聊聊面试-int和Integer的区别

    , short, char, int, float, double, long)之一的整形类型,大小占用 4 字节,取值范围是正负 2 的 32(4 * 8)次幂,Java 虽然号称一切都是对象,但是基本数据类型是例外...,然后我们下面可以看看 Integer.valueOf 的源码 // Integer.valueOf 的源码 public static Integer valueOf(int i) { if...一个对象,但是在考察和调研后发现大多数人使用 Integer 都集中在较小的范围,因此 JDK 为 Integer.valueOf 增强了一个缓存机制来改善构造对象的性能开销(没错,自动拆箱装箱反编译后也是调用...对象的引用都是从缓存中取出,实际上是相同对象,所以结果的 true a2 == b2 是因为128已经超过了缓存值的范围,Integer 通过 new 构造的对象,因为 == 比较的对象的引用而不是对象的值...(考察你对 Java 泛型的理解) 对象在内存中的结构(对象头 Header,实例数据 Instance Data,对齐填充 Padding) int 和 Integer 的区别,这算是典型高频面试题之一

    45910

    Java中int和Integer的区别

    变量必须实例化后才能使用,而int变量不需要 3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值 4、Integer的默认值是null...,int的默认值是0 四、延伸: 关于Integer和int的比较 1、由于Integer变量实际上是对一个Integer对象的引用,所以两个通过new生成的Integer变量永远是不相等的(因为new...变量和int变量比较时,只要两个变量的值是向等的,则结果为true(因为包装类Integer和基本数据类型int比较时,java会自动拆包装为int,然后进行比较,实际上就变为两个int变量的比较) Integer...i = new Integer(50); int j = 50 System.out.print(i == j); //true 3、非new生成的Integer变量和new Integer()生成的变量比较时...50); Integer j = 50; System.out.print(i == j); //false 4、对于两个非new生成的Integer对象,进行比较时,如果两个变量的值在区间-128到127

    78010

    int与Integer,long与Long的区别以及装箱与拆箱的理解

    1,从数据类型看:int和long是基本数据类型,对其赋值属于数值引用,只能对其进行数值运算 Integer和Long是对象类型,既然是对象那就有属性,有方法,这都是基本数据类型不包含的. 2,在实际使用中...再者在定义表结构时,如果设主键为自增长型的,那只能是int或long.至于其它字段要看情况了,如果不能为null,且是数字型的那就设定为基本数据类型的, 3,拆箱与装箱 Java的基本数据类型有 boolean.../true 虽然比较的是两个对象,但是jdk5.0后,对-128-127这个范围内的整形对象进行了缓存,实际是自动调用了两个Integer的valueOf()方法 Integer c=1000; Integer...(c.equals(d));//true 比较的是两个对象的值 int e=1000; System.out.println(e==c);//true c自动拆包,对象c隐式的调用了valueOf()方法...(c); System.out.println(g==c);//false 虽然c对象作为入参放大到了g对象的构造函数里面,但是默认的构造函数参数是int类型,所以c自动拆包了,因此g和c是对象之间的比较

    1.2K20

    Integer、new Integer() 和 int 的面试题

    基本概念的区分: 1、Integer 是 int 的包装类,int 则是 java 的一种基本数据类型 2、Integer 变量必须实例化后才能使用,而int变量不需要 3、Integer 实际是对象的引用...,当new一个 Integer时,实际上是生成一个指针指向此对象;而 int 则是直接存储数据值 4、Integer的默认值是null,int的默认值是0 Integer、new Integer() 和...int 的比较 1、两个 new Integer() 变量比较 ,永远是 false 因为new生成的是两个对象,其内存地址不同 Integer i = newInteger(100); Integer...4、 int 变量 与 Integer、 new Integer() 比较时,只要两个的值是相等,则为true 因为包装类Integer 和 基本数据类型int 比较时,java会自动拆包装为int ,...然后进行比较,实际上就变为两个int变量的比较。

    37820

    Integer 与 Long 数字类型的比较:Java与Kotlin的细节不同

    编程语言还是比较傻的。 我们在数学中,123 == 123 , 直觉上是一目了然的。但是到了计算机编程语言中, 问题就显得有点“傻瓜”化了。...值得一提的下面的表达式: new Long(10).equals(new Integer(10)) 始终是 false,这确实是一个违背数学常理的“坑”。...再比如,在Java中 static void test2() { // Integer的自动拆装箱的陷阱(整型数-128到127的值比较问题) out.println...此外,与真正基元类型 (float,double) 确定如果两个值相等,也很棘手,要做一个可接受的误差幅度内。...): Int Kotlin中,Int类型与Long类型之间比较大小: package com.easy.kotlin fun main(args: Array) { test1

    2.7K20
    领券