文章自动装箱的陷阱
来源:互联网 发布:淘宝发展的起源 编辑:程序博客网 时间:2024/06/08 23:50
自动装箱的陷阱
java 自动装箱 语法糖
针对java中的一些语法糖比如自动装箱,我们经常会遇到一些小陷阱,这是一个例子
/** * example in VM page 316 */public class Solution { public static void main(String args[]){ Integer a = 1 ; Integer b =2 ; Integer c = 3 ; Integer d = 3; Integer e = 321; Integer f = 321; Long g=3L; System.out.println(c ==d ); // true System.out.println(e ==f );//false System.out.println(c ==(a + b));//true System.out.println(c.equals(a+b));//true System.out.println(g == (a+b));//true System.out.println( g.equals(a+b));// false }}
(1)是因为Integer对与-128至127的值进行缓存,将其存放在常量池中,因而c和d这两个referen实际上指向相同的内存地址,因而相等
(2)指向不同的内存地址,因而不等
(3)因为进行了算术运算所以自动拆箱,两者运算结果相等
(4)同样运算结果相等,自动装箱,相等,这里注意equals不处理数据类型转型的关系
(5)同(3)运算结果相等,
(6)因为equals不处理数据转型,因而Integer与Long相比较不等
对于这类问题只需要注意常量池 ,==不拆箱比较地址 , 算术运算拆箱, equals不处理类型转换这四点就行了。
0 0
- 文章自动装箱的陷阱
- Java的自动装箱陷阱
- Java自动装箱的陷阱
- Integer的自动拆箱装箱陷阱
- 自动装箱的陷阱--读书笔记①
- java自动装箱陷阱
- Java自动装箱和自动拆箱的陷阱
- JVM学习笔记--语法糖之 自动装箱的陷阱
- JAVA语法糖之自动装箱的陷阱
- [jjzhu学java]之自动装箱的陷阱
- java中自动装箱拆箱的陷阱
- 自动装箱与拆箱中的陷阱
- Integer的自动拆箱和自动装箱的陷阱(整型数-128到127的值比较问题)
- 自动装箱的陷进
- Java的自动装箱
- java 自动装箱与拆箱 中的陷阱
- java 自动装箱与拆箱 中的陷阱
- Java自动装箱与拆箱及其陷阱
- 利用KVC写的一个分类实现自动生成模型属性代码
- Java中Runnable和Thread的区别
- 【图像处理】小谈体绘制可视化
- 命令行参数-optparse
- Shell break和continue命令
- 文章自动装箱的陷阱
- GPS协议数据格式
- Oracle处理CLOB超过4000入库问题
- Mininet高级操作功能
- Android中程序与Service交互的方式——交互方式
- ServletContext中常用方法
- Java 通过Poi api操作(read/write)Excel
- 数据库中的锁与事务
- 环信(Android)设置头像和昵称的方法(最简单暴力的基于环信demo的集成)。