Java-Integer和int有什么区别
转自:https://www.cnblogs.com/mmykdbc/p/8715646.html
Java的Integer和int有什么区别
Java是面向对象的编程语言,一切都是对象,但是为了编程的方便还是引入了基本数据类型,为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrapper class),int的包装类就是Integer,从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换,对应如下:
原始类型:boolean,char,byte,short,int,long,float,double
包装类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double
顺便一提,Java中的基本数据类型只有以上8个,除了基本类型(primitive type),剩下的都是引用类型(reference type)。
所以最基本的一点区别是:Ingeter是int的包装类,int的初值为0,Ingeter的初值为null。除此之外还有区别,请看代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
为什么i4和i5比是true,而i6和i7比是false呢?关键就是看valueOf()函数了,这个函数对于-128到127之间的数,会进行缓存, Integer i5 = 127时,会将127进行缓存,下次再写Integer i6 = 127时,就会直接从缓存中取,就不会new了。所以i4和i5比是true,而i6和i7比是false。
而对于后边的i5和i8,以及i9和i10,因为对象不一样,所以为false。
以上的情况总结如下:
1,无论如何,Integer与new Integer不会相等。不会经历拆箱过程,new出来的对象存放在堆,而非new的Integer常量则在常量池(在方法区),他们的内存地址不一样,所以为false。
2,两个都是非new出来的Integer,如果数在-128到127之间,则是true,否则为false。因为java在编译Integer i2 = 128的时候,被翻译成:Integer i2 = Integer.valueOf(128);而valueOf()函数会对-128到127之间的数进行缓存。
3,两个都是new出来的,都为false。还是内存地址不一样。
4,int和Integer(无论new否)比,都为true,因为会把Integer自动拆箱为int再去比。
Java-Integer和int有什么区别相关推荐
- Java Integer于Int 进行==双等于的内存比较时的一些问题说明
转自: https://blog.csdn.net/xingkongdeasi/article/details/79618421 部分有所修改: 前言: 越是简单的东西,我们往往越是没有去把它明白,但 ...
- java integer int 比较_java Integer和int之间的比较问题是什么?
展开全部 java Integer和int之间e68a84e8a2ad3231313335323631343130323136353331333365633864==的比较问题.求解释 public ...
- 二十八、Java中的Int和Integer的区别
@Author:Runsen @Date:2020/6/3 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...
- Java面试题15牛客 以下关于Integer与int的区别错误的是
Java面试题15牛客 以下关于Integer与int的区别错误的是 A int是java提供的8种原始数据类型之一 B Integer是java为int提供的封装类 C int的默认值为0 D In ...
- 【Java】中int 和 Integer 与 new Integer() 的区别,int 可以使用 == 来对比两个变量是否相等,而 Integer 一定要使用 equals 来比较两个变量值是否相等
目录 一.int 和 Integer 的区别 二. Integer.new Integer() 和 int 的比较 三.总结 四.更多详看: 一.int 和 Integer 的区别 两者的区别主要体现 ...
- Java中Int、Integer、new Integer()之间的区别
Java中有八种基本数据类型,Int是其中之一.而Integer是Int的封装,即Integer其实是一个对象.可以通过new来创建一个Integer对象,也可以直接将Int值赋给Integer变量. ...
- Java基础 - Integer和int的区别
一.int和Integer的区别 两者的区别主要体现在以下几个方面: 1.数据类型不同:int 是基础数据类型,而 Integer 是包装数据类型: 2.默认值不同:int 的默认值是 0,而 Int ...
- java integer == int_Java中int和Integer的区别详解
1.Java 中的数据类型分为基本数据类型和复杂数据类型 int是前者>>integer 是后者(也就是一个类) 2.初始化时>> int i =1; Integer i= n ...
- Java基础:int与Integer区别
int与Integer的基本使用对比 Integer是int的包装类:int是基本数据类型: Integer变量必须实例化后才能使用:int变量不需要: Integer实际是对象的引用,指向此new的 ...
最新文章
- sqlserver2000 php5.4,PHP添加Mssql/sqlserver2000扩展,适用于Php5.2/Php5.3/Php5.4
- Django自带的加密算法及加密模块
- Ceph 存储集群7-故障排除
- Scala特质可以继承Java类及限制特质的使用
- C++floyd warshall算法求最短路径(附完整源码)
- ubuntu下安装mysql 杂记
- 文石服务器维护,文石BOOX OS 2.0新系统即将上线,联合京东读书推出BOOX书城
- 图像超分辨率也能改善天气预报?没错!
- 快速安装Tensorflow
- 二值化区分前景和背景
- Public Key Retrieval is not allowed(已解决)
- Slam中几种变换的理解
- DX使用随笔--NavBarControl
- 固态硬盘系统经常假死_Win7固态硬盘假死卡顿解决方法
- Windows 7 安装VS2008 SP1 失败
- 用VBA下载google图片
- [全国十大城市火车票售票点、订票电话(买票再也不用去火车站排队)] – [旅游] – [校内论坛]
- 什么是业务模式、商业模式、经营模式、盈利模式和发展模式?
- VScode中使用platformIO开发,编译时找不到自己的源文件(报错信息:undefined reference to )
- 怎样在oblog中添加音乐播放器
热门文章
- orderquery.php,multiOrderQuery.php
- java异常错误的是,java 异常 错误处理
- flex布局怎么设置子元素大小_48张小图带你领略Flex 布局之美
- Python 模块(module)
- 计算机组成原理(三)--存储器的层次结构
- 多线程实战(二)线程同步
- iis配置write模块
- ASP.NET高级配置Web.config和Machine.Config
- 好用的chrome插件总结
- LeetCode(709)——转换成小写字母(JavaScript)