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

javaint和integer区别_javainteger

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

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

Javaint和Integer区别

Long Float Double Java基本数据类型只有8个,除了基本类型(primitive type),剩下都是引用类型(reference type)。...(因为非new生成Integer变量指向是java常量池中对象,而new Integer()生成变量指向堆中新建对象,两者在内存地址不同) Integer i = new Integer(...i = 100 ;时,会翻译成为 Integer i = Integer.valueOf(100);,而java APIInteger类型valueOf定义如下 public static Integer...(i); } java对于-128到127之间数,会进行缓存,Integer i = 127时,会将127进行缓存,下次再写Integer j = 127时,就会直接从缓存取,就不会new了。...num2 = Integer.valueOf(2); Integer num3 = new Integer(3); 上述代码第一行与第二行写法取值使用了值缓存,而第三行写法则没有利用值缓存。

74510

JavaIntegerInteger比较相等

JavaIntegerInteger比较相等 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.4K40

JavaInteger变量比较源码解析

原因分析 我们要知道当给一个Integer对象赋一个int值时,IntegervalueOf方法会被调用。那么,我们看看IntegervalueOf方法到底做了些什么。...cache[k] = new Integer(j++); } private IntegerCache() {} } 通过代码一我们可以看出,当valueOf传入值在...IntegerCache.low和IntegerCache.high之间时,Integer被赋值将从IntegerCache.cache数组获得,也就是通过缓存获得。...综合两段代码,我们可以知道,在默认情况下,在-128到127之间数据在赋值时会从缓存获得。...结论 因此,在-128到127之间数据多次获得均为同一个对象,而超出这个范围数据将会创建一个新对象,只能通过equals方法比较才是对象值。

68440

java integer范围_java integer取值范围是什么?

但是对于Integer类,java为了提高效率,初始化了-128–127之间整数对象,因此Integer类取值-128–127时候效率最高。...会自动维护八种基本类型常量池,int常量池中初始化-128~127范围,所以当为Integer i=127时,在自动装箱过程是取自常量池中数值,而当Integer i=128时,128不在常量池范围内...,所以在自动装箱过程需new 128,所以地址不一样。...JVM为了节省空间, 当Integer值落在-128~127之间时,如i1,i2;此时JVM首先检查是否已存在值为127Integer对象。...Integer类中有一个静态内部类IntegerCache,在IntegerCache类中有一个Integer数组,用以缓存当数值范围为-128~127时Integer对象。

3.4K70

Integer、new Integer() 和 int 比较面试题

;而 int 则是直接存储数据值 4、Integer默认值是null,int默认值是0 Integer、new Integer() 和 int 比较 1、两个 new Integer() 变量比较...因为 Integer变量 指向是 java 常量池 对象, 而 new Integer() 变量指向 堆 新建对象,两者在内存地址不同。...所以 Integer i = 127 时,会将127进行缓存,下次再写Integer j = 127时,就会直接从缓存取,就不会new了。...* 在Integer类型,-128到127存放是同一片区域地址, * 之外数是另外开辟空间来进行 存储...都是从chche返回同一个对象,对象地址相同 true; i03 == i04。i03是来自缓存值,i04是新new对象 ,二者不是同一个对象,所以false。 i02 == i04。

77730

javaint和Integer对比一些坑

Integer与int类型关系 Integer是int包装类,int默认值是0,而Integer默认值是null(jdk1.5新特性 自动装箱和拆箱,Integer.valueOf() 和xx.intValue...() ), 需要注意Integer里面默认缓存数字是-128-127, 1、IntegerInteger相互比较,数据在-128-127范围内,就会从缓存拿去数据,比较就相等;如果不在这个范围...2、Integer和int类型相比,在jdk1.5,会自动拆箱,然后比较栈内存数据,所以没有不想等情况 int跟int比较 int数据类型,都是在栈内存存储,如果这个数字在栈内存存在就会直接指向这个内存地址...,如果不存在,就会重新开辟内存空间,所以int和int类型比较,相同值不会存在内存不等情况 八个基本数据类型不能看作对象(这点很特殊),存放在栈。...栈内操作速度快,创建销毁很容易 int跟Integer比较 会自动拆箱,变成int与int对比 IntegerInteger比较   在-128~127范围内,==会相等,获取cache地址

2K10

Synchroinzed对Integer问题

所以最终得到count应该等于200000。 但是,代码段1得到值确一直小于200000。显然没有做到线程安全。...先来看synchronized简单应用整理: 1)指定加锁对象,对给定对象加锁,进入同步代码前要获得给定对象锁。 2)直接作用于实例方法,相当于对当前实例加锁,进入同步代码前要获得当前实例锁。...3)直接作用于静态方法,相当于对当前类加锁,进入同步代码前要获得当前类锁。 那么,加在Integer和instance有什么区别呢?...我们使用javap反编译代码1: 我们看到选定位置,在count++位置,其实真正执行是: count = Integer.valueOf(count.intValue() + 1); 再来看Integer.valueOf...简单解决办法就是,如代码2。直接对instance加锁。

7710

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...= 10;Long b = a.longValue(); 6.将Long型转化为Integer型,这里Integer型是包装类型: Long a = 10; Integer b=a.longValue...(); 总结:这里转化就是要注意Java八种基础数据类型以及八种包装数据类型区别 基本类型和封装类转换 Int转Integer: Integer integer = new Integer(int

4.4K20
领券