什么是int?int和Integer有什么区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是int?int和Integer有什么区别?相关的知识,希望对你有一定的参考价值。

Java提供了两种不同的类型:引用类型和原语类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每种原语类型提供了一个封装类。引用类型的行为与原始类型的行为完全不同,它们具有不同的语义。引用类型和基元类型有不同的特点和用法,包括:大小和速度,该类型存储在哪种类型的数据结构中,引用类型和基元类型用作类的实例数据时指定的默认值。

对象引用实例变量的默认值为空,而原始类型实例变量的默认值与其类型相关。Int是java提供的八种原始数据类型之一。java为每个原始类型提供了一个封装类,Integer是Java为int提供的一个封装类。Integer是一个类,它是int的扩展,定义了很多转换方法。此外,Integer提供了许多与Integer相关的操作方法,例如将字符串转换为整数。

Integer还定义了代表整数的最大值和最小值的常数。引用类型和基元类型有不同的特点和用法,包括:大小和速度,该类型存储在哪种类型的数据结构中,引用类型和基元类型用作类的实例数据时指定的默认值。对象引用实例变量的默认值为空,而原始类型实例变量的默认值与其类型相关。同时,为了面向对象操作的一致性,这些基本类型有对应的封装类型:整数、短、长、字节、浮点、双、字符等。

因为封装类型是一个对象,所以可以执行很多对应的对象能力函数操作,可以提供很多基本类型难以完成的任务的完成和实现。您可以通过以下方式声明此类型。引用类型和简单类型的默认值不同:引用类型的默认值为null,简单类型的默认值与其自身类型相关。基本数据类型本身就是一个值类型话题:(int)和Integer.parseInt()有什么区别?(int)是强制类型转换,例如double,float在转换为int时必须是强制的,从高精度转换为低精度。

参考技术A Int是java提供的八种原始数据类型之一。java为每个原始类型提供了一个封装类,Integer是Java为int提供的一个封装类。Integer是一个类,它是int的扩展,定义了很多转换方法。此外,Integer提供了许多与Integer相关的操作方法,例如将字符串转换为整数。 参考技术B int指的就是一种理财的产品,同时和金融方面有很大的关系,区别是非常大的,两者的经营范围是不一样的,两者的经济收益是不一样的,存在的风险也是不一样的。

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可以根据上下文,自动进行转换,极大的简化了相关编程。

 

关于Integer的值缓存

这涉及Java5中的另一个改进。构建Integer对象的传统方式是直接调用构造器,直接new一个对象。但是根据实践我们发现大部分数据操作都是集中在有限的,较小的数值范围,因而在Java5中新增了静态工厂方法value of,在调用它的时候会利用一个缓存机制,带来了明显的性能改进。按照Javadoc,这个缓存默认值是-128到127。

 

 补充1

原始数据类型和Java泛型并不能配合使用,也就是指Primitive Types和Generic不能混用,于是Java就设计了auto-boxing/unboxing机制,实际上就是primitive value与object之间的隐形转换机制,否则要是没哟这个机制,开发者就必须每次手动显式转换,这多麻烦呀。但是primitive value与object各自有各自的优势,primitive value在内存中存的是值,,所以找到primitive value的内存位置,就可以获得值;不像object存的是reference,找到object的内存位置,还要根据reference找下一个内存空间,要产生更多的IO,所以计算性能比primitive value 差,但是object具备generic的能力,,更抽象,解决业务问题编程效率高。于是Jvav设计者的初衷是这样的:如果开发者要计算,就使用primitive value;如果开发者要处理业务问题,应该使用object,采用Generic机制。反正Java有auto-boxing/unboxing机制,对开发者来讲也不需要注意什么。为了弥补object计算能力的不足,还设计了static valueof()方法提供缓存机制,算是一个弥补。

以上是关于什么是int?int和Integer有什么区别?的主要内容,如果未能解决你的问题,请参考以下文章

R语言中numeric 和 integer 的区别

int和Integer有什么区别?

Java Int和Integer有什么区别?

int和Integer有什么区别?

Java -- 每日一问:int 和 Integer 有什么区别?

Int 和 Integer 有啥区别?