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对象的话,肯定不等于
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
学习编程有没有必要从C语言和C++学起?应该怎么学?
软件行业经过几十年的发展,编程语言的种类已经越来越多了,而且很多新的编程语言已经在这个领域从开始的默默无闻到如今风风火火,整个编程语言朝着集成化方向发展,这样会导致很多的初学者选择上不像以前那么单一了,而且随着整个软件行业应用方面开发刚需增加,高级编程语言市场进一步得到扩张,现在很多大学开设课程已经不是默认C语言作为第一编程入门语言了。大约十几年前的大学教材还是清一色的C语言作为第一编程语言,C语言作为基础语言的口号就是这么来的,当然C语言之所以称之为基础编程语言,主要是现在很多编程底层实现大部分是基于C语言,而且操作系统以及底层驱动基础语言也是C语言。 笔者倒是觉得在当前软件发展趋势下,紧跟时代的步伐,学习当下最火热的编程语言是正确的选择,目前市场对于三类比较认可,java,python,前端,这三种是目前市场上相对紧缺的编程语言,从市场招聘的比例看C语言的占比相对比较低,但由于基数重大绝对数量还是在增加,但相对别的语言还是差的很远,学习编程的主要目的是为了尽快找到工作养活自己,仓廪实而知礼节,都不怎么好找工作就没必要那么固执一定要靠C语言作为第一门编程语言,即使它是非常基础的编程语...
- 下一篇
开发者报 | PHP 5版年底终止安全更新,6成网站恐面临风险
1、Google 首次承认为中国定制搜索引擎 近日在《连线》25 周年峰会上,Google CEO Sundar Pichai 承认「Dragonfly」项目存在,Google 确实在为中国定制搜索引擎;但表示目前仍处于早期阶段,不知道最终能否顺利发布。 Pichai 补充说,尽管是「阉割版」,这个搜索引擎依然能满足 99% 的搜索需求。 2、PHP 5版年底终止安全更新,6成网站恐面临风险 10月16日上午消息,据中国台湾地区媒体报道,Web科技应用现况的调查公司W3Techs近日表示,根据所有网站使用的PHP版本状况,从明年1月1日起,有近62%的网站将因未能获得安全更新而陷入被黑或被植入恶意程序的风险。根据W3Techs的调查,截自本月15日,在其研究的网站样本中,使用PHP的比例高达78.9%,而所有网站使用PHP 5的比例又达到61.8%。细分当中版本,所有网站使用PHP 5.6版的比例为41.5%,为版本5之冠。 3、Chrome 等几大主流浏览器将停止支持 TLS 1.0/1.1 几乎是在同一时间,苹果,微软和谷歌纷纷宣布,他们将于2020年上半年,开始在自家的浏览器中禁...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果