深入Integer与int互转.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
深入Integer与int互转

Java是一种面向对象语言,为了能将基本类型视为对象来处理,并能连接相关的方法,Java为每个基本数据类型都提供了包装类,这样便可以把这些基本类型转化为对象来处理。基本数据类型及对应的包装类基本数据类型包装类基本数据类型包装类booleanBooleanintIntegerbyteBytelongLongcharCharacterfloatFloatshortShortdoubleDouble??Java int与integer的区别?int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别:?int是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象?1.Java 中的数据类型分为基本数据类型和引用数据类型int是前者而integer 是后者(也就是一个类);因此在类进行初始化时int类的变量初始为0.而Integer的变量则初始化为null.2.初始化时:  inti =1;Integer i= new Integer(1);(要把integer 当做一个类看);但由于有了自动装箱和拆箱     使得对Integer类也可使用:Integer i= 1;     注意:Integer i=1编译时被翻译成Integer i=Integer.valueOf(i);  int 是基本数据类型(面向过程留下的痕迹,不过是对java的有益补充),Integer 是一个类,是int的扩展,定义了很多的转换方法  类似的还有:float Float;double Double等,而且还提供了处理 int 类型时非常有用的其他一些常量和方法  举个例子:当需要往ArrayList,HashMap中放东西时,像int,double这种内建类型是放不进去的,因为容器都是装 object的,这是就需要这些基本类型的包装类了。  Java中int和Integer关系是比较微妙的。关系如下:  1.int是基本的数据类型;  2.Integer是int的包装类;  3.int和Integer都可以表示某一个数值;  4.int和Integer不能够互用,因为他们两种不同的数据类型;  举例说明  ArrayList al=new ArrayList();  int n=40;  Integer nI=new Integer(n);  al.add(n);//不可以  al.add(nI);//可以  并且泛型定义时也不支持int: 如:ListInteger list = new ArrayListInteger();可以 而Listint list = new ArrayListint();则不行Integer与int互转int转Integerinti=0;Integer wrapperi=new Integer(i);Integer转intInteger wrapperi=new Integer(0);inti=wrapperi;JDK1.5以后的int转IntegerJDK1.5以后,Java为我们提供了更为丰富的转换方法。其中最值得一提的就是自动装包/自动拆包(AutoBoxing/UnBoxing)。此功能大大丰富了基本类型(primitive type)数据与它们的包装类(Wrapper Class) 的使用。由于AutoBoxing的存在,以下代码在JDK1.5的环境下可以编译通过并运行。int?i?=?0;??Integer?wrapperi?=?i;?JDK1.5为Integer增加了一个全新的方法:public?static?Integer?valueOf(int?i)?此方法与new Integer(i)的不同处在于:valueOf(i)方法返回一个表示指定的int值的Integer实例,new Integer(i)产生一个新的Integer对象。JDK API文档中对这个新的valueOf方法有明确的解释:如果不需要新的 Integer 实例,则通常应优先使用该方法,而不是构造方法 Integer(int),因为该方法有可能通过缓存经常请求的值而显著提高空间和时间性能。但这个解释有点晦涩难懂。为什么该方法有可能通过缓存经常请求的值而显著提高性能?通过反编译工具查看valueOf方法。/* * 返回一个表示指定的int值的 Integer 实例。如果不需要新的 Integer 实例,则 * 通常应优先使用该方法,而不是构造方法 Integer(int),因为该方法有可能通过 * 缓存经常请求的值而显著提高空间和时间性能。 * @parami an codeint/code value. * @return a ttInteger/tt instance re

文档评论(0)

junjun37473 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档