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()方法提供缓存机制,算是一个弥补。

Java Int和Integer有什么区别?的更多相关文章

  1. java int 与 Integer之间的区别

    int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型 ...

  2. Java int和Integer包装类的区别和比较

    区别:                                                                                                  ...

  3. Java int和integer有什么区别 (mybatis踩坑)

    不要在实体类中使用int 我们都知道Integer是int的包装类,而int是基本数据类型.所以Integer类型的变量会初始化为null,int类型则会被初始化为0 . 所以在下面的动态拼接例子中: ...

  4. 【转】java int与integer的区别

    java int与integer的区别 int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象 1 ...

  5. Java进阶(三十五)java int与integer的区别

    Java进阶(三十五)java int与Integer的区别 前言 int与Integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而Integer是对象 ...

  6. 在java语言中int 和 Integer 有什么区别

    在java语言中int 和 Integer 有什么区别 解答:int是基本数据类型,Integer是int的包装类,属于引用类型

  7. (转)Java进阶java int与Integer的区别

    Java进阶java int与Integer的区别 前言 int与Integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而Integer是对象,用一个引 ...

  8. Hashtable,HashMap,TreeMap有什么区别?Vector,ArrayList,LinkedList有什么区别?int和Integer有什么区别?

    接着上篇继续更新. /*请尊重作者劳动成果,转载请标明原文链接:*/ /*https://www.cnblogs.com/jpcflyer/p/10759447.html* / 题目一:Hashtab ...

  9. java int与integer的区别

    int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型 ...

随机推荐

  1. python远程登录服务器(paramiko模块安装和使用)

    转自:http://www.jb51.net/article/46285.htm 一:简介 由paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器 ...

  2. abs()

    abs() 用于返回一个数值的绝对值 In [1]: abs(10) Out[1]: 10 In [2]: abs(-10) Out[2]: 10 In [3]: abs(-10.9) Out[3]: ...

  3. 在联网时,两台linux服务器传输文件方法

    登陆服务器root用户命令:su - root 传输文件命令:scp +需要传输linux系统文件+空格+目标linux服务器的用户名@服务器ip地址:+传输的文件路径:例:scp /mnt/work ...

  4. 一加氢OS发布会 观看小结

    观看地址:http://v.youku.com/v_show/id_XMTI0ODkzNTg5Mg==.html?from=s1.8-1-1.2八种基本色调.33%自由:top33%位置放壁纸,底部桌 ...

  5. 【PHP】算法进阶,获取给定值的最优组合:虚拟币抵扣问题解决方案

    商城里边.虚拟币抵扣问题解决方案 虚拟币抵扣规则,按照以下规则执行: 1.如果一个订单包含多款商品,且均支持虚拟币抵扣时:   优先按照最大化使用虚拟币进行全额抵扣原则进行抵扣,若抵扣后用户虚拟币账号 ...

  6. Thinkphp 图形验证码无法显示

    不显示验证码的代码: public function verify(){ $verify = new \Think\Verify(); $verify->entry(); } 修改为: publ ...

  7. \r\n和\n的区别

    写Java代码的时候习惯用\r\n换行,这样可移植性比较好但是,在UVa - 160中就出现了错误,来看看是为什么吧. http://bbs.csdn.net/topics/220033879

  8. SSL安装方法二:Windows Server 2008安装SSL证书(IIS 7.5)

    SSL证书CSR和CA证书唯一的区别就在:申请证书中的通用名称,具体还要看具体的项目这里只做参考.可以参考SSL安装方法一 背景:IIS 7.5 一.收到SSL证书 仔细阅读邮件 按步骤进行: 1)  ...

  9. oracle的cursor

    oracle的cursor 转自:http://www.cnblogs.com/shengtianlong/archive/2010/12/31/1922767.html 1,什么是游标? ①从表中检 ...

  10. 170717、springboot编程之mybatis数据库开发和aop拦截

    一.springboot整合mybaits (1)新建maven project; 新建一个maven project,取名为:spring-boot-mybatis (2)在pom.xml文件中引入 ...