关于自动装箱基本类型的值的比较
来源:互联网 发布:康熙王朝 1080p 源码 编辑:程序博客网 时间:2024/06/06 14:12
【问题描述】As we know,在Java里面我们比较基本数据类型的的值是否相等直接用 “==” 操作符,这样是完全合理的,因为JVM在做运算的时候是比较的值。但是当我们比较2个对象是否相等的时候,我们只能用equals方法,这个方法比较的是对象的Hash地址是否相等。但是当我们比较基本类型的装箱类的时候,情况确出现了问题。例如
呀,奇怪了,为什么会这样呢?
【问题解释】
其实这个是Java的设计者们遗留下来的一个问题。
设计者的思路大概是,用==来进行比较,大概一般都是要比较值,但这种写法是不对的,这样吧,当对象值在一个字节以内时,比较值和比较地址的成本是一样的,那我就给你比较值,但如果值大于一个字节,比较值的成本就大过比较地址了,我就老老实实比较地址吧。
所以,也就是说Boolean,char(从/u0000到/u007f),long(-128到127),int(-128到127),byte,当用 == 去比较自动装箱的对象的时候,输出都是true
- 关于自动装箱基本类型的值的比较
- java基本类型和基本类型包装型比较时的自动拆箱和自动装箱
- [疯狂Java]面向对象:基本类型的包装器类型、自动装箱/拆箱、包装器类型大小/相等比较
- Java基本类型的自动装箱与自动拆箱
- 基本类型的装箱与拆箱的比较
- 基本类型的自动装箱和拆箱
- Kotlin基本类型自动装箱的一点问题
- 基本数据类型的自动装箱
- java中基本类型与装箱基本类型“==”比较出现的几种情况
- java基本类型、对应的包装类型(自动拆箱和自动装箱)
- Java中的基本类型与封装类型以及自动装箱、拆箱、String类型的解释
- java类型自动装箱拆箱和字符串与基本类型的装换
- Integer的自动装箱以及Int比较
- 基本类型的封箱与装箱
- Java 对基本类型装箱的注意事项
- Android中的java基础(二)——装箱与拆箱及不同基本类型的比较(类型转换)
- 基本类型与包装(装箱)类型的区别
- 基本类型与包装(装箱)类型的区别
- ZYSocketSuper 2.0 SP1 包含案例 聊天室 示例下载。 这个才是最新的
- Oracle 10g数据库默认安装应该注意的问题
- 《Introduction to Information Retrieval》读书笔记(二)
- 实用Android开发工具和资源精选
- php ajax仿dedecms 验证新闻是否存在
- 关于自动装箱基本类型的值的比较
- Customizing Plone
- Using WebDav to connect to Plone ZODB
- Android 搭建开发之旅
- .net metadata/IL/BCL
- 随便写点,
- 《MFC那点事儿》の访问对话框控件的方式
- php mysql 用户登录
- php ajax仿dedecms 验证新闻是否存在