博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java面试专题(一):int和integer的深层次区别
阅读量:7222 次
发布时间:2019-06-29

本文共 735 字,大约阅读时间需要 2 分钟。

hot3.png

##int和integer的深层次区别

基本区别

  • int 是基本类型 初始值是0;
  • integer 是引用类型,初始值为null;
  • interger 是int型的封装类,提供了许多处理基本类型的静态方法,如:转化成二进制toBinaryString(),八进制toHexString,16进制toOctalString valueOf()

深层次区别

ps: 面试时,或面试题经常会出现判断int 与 integer 是否相等的情况

整数初始化方法只有三种

  1. int i =0;
  1. Integer i =null; 如果 integer i = 1;(自动封装成integer)
  2. Integer i = new Integer(); 第二和第三是区别的,第二种表达方式直接将integer 拆箱成int

####判断是否相等总结如下:

①无论如何,Integer与new Integer不会相等。不会经历拆箱过程,new Integer的引用指向堆,Integer指向专门存放他的内存(常量池),他们的内存地址不一样,所以为false ②两个都是非new出来的Integer,如果数在-128到127之间,则是true,否则为false java在编译Integer i2 = 128的时候,被翻译成-> Integer i2 = Integer.valueOf(128);而valueOf()函数会对-128到127之间的数进行缓存 ③两个都是new出来的,都为false ④int和integer(无论new否)比,都为true,因为会把Integer自动拆箱为int再去比

转载于:https://my.oschina.net/budaoniu/blog/512821

你可能感兴趣的文章
Javascript 隐式转换
查看>>
利用Dubbo SPI中的Filter来处理异常
查看>>
Java009-异常处理
查看>>
CSS2中盒模型与布局的一些概念关系
查看>>
Sentinel 发布里程碑版本,添加集群流控功能
查看>>
web开发中,必须掌握的linux概念及常用命令
查看>>
如何将heic格式转为jpg, heic怎么打开
查看>>
SpringBoot事物管理
查看>>
Java™ 教程(枚举类型)
查看>>
npm发布包教程(三):安装发布包
查看>>
Node.js readline模块与util模块的用法
查看>>
设计翻牌抽奖
查看>>
函数计算 Python 连接 SQL Server 小结
查看>>
视频、游戏等大文件高并发下的优化方法
查看>>
Spring Cloud Stream如何处理消息重复消费?
查看>>
dubbo源码解析(十六)远程通信——Netty3
查看>>
将Chrome调试器里的JavaScript变量保存成本地JSON文件
查看>>
一篇文章读懂 React & redux 前端开发
查看>>
NLP入门(二)探究TF-IDF的原理
查看>>
Cisco思科网络插件Contiv (三) Plugin 实现原理
查看>>