zoukankan      html  css  js  c++  java
  • java中int和Integer对比的一些坑

    --------------------- 
    作者:狂飙的yellowcong 
    来源:CSDN 
    原文:https://blog.csdn.net/yelllowcong/article/details/78434606 
    版权声明:本文为博主原创文章,转载请附上博文链接!

    --------------------- 

    Integer与int类型的关系

    Integer是int的包装类,int的默认值是0,而Integer的默认值是null(jdk1.5的新特性 自动装箱和拆箱,Integer.valueOf() 和xx.intValue() ),

    需要注意的是Integer里面默认的缓存数字是-128-127,

    1、Integer与Integer相互比较,数据在-128-127范围内,就会从缓存中拿去数据,比较就相等;如果不在这个范围,就会直接新创建一个Integer对象,使用 == 判断的是两个内存的应用地址,所以自然不相等。

    2、Integer和int类型相比,在jdk1.5,会自动拆箱,然后比较栈内存中的数据,所以没有不想等的情况

    int跟int比较

    int数据类型,都是在栈内存中存储,如果这个数字在栈内存中存在就会直接指向这个内存地址,如果不存在,就会重新开辟内存空间,所以int和int类型的比较,相同的值不会存在内存不等的情况

    八个基本数据类型不能看作对象(这点很特殊),存放在栈中。栈内操作速度快,创建销毁很容易

    int跟Integer比较

    会自动拆箱,变成int与int对比

    Integer跟Integer比较

      在-128~127的范围内,==会相等,获取的cache的地址

      不在上述范围内,会去new一个对象对比

      直接new对象的话,肯定不等于



  • 相关阅读:
    vue语法
    第3章 语言基础(上)
    第2章 HTML中的JavaScript
    第1章 什么是JavaScript
    附录 A ES6附加特性
    第14章 跨浏览器开发技巧
    第13章 历久弥新的事件
    第12章 DOM操作
    第11章 代码模块化
    第10章 正则表达式
  • 原文地址:https://www.cnblogs.com/jwentest/p/9810690.html
Copyright © 2011-2022 走看看