前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java基础 【自动装箱和拆箱、面试题】

Java基础 【自动装箱和拆箱、面试题】

作者头像
梅花
发布2020-09-28 16:36:54
6970
发布2020-09-28 16:36:54
举报

JDK 1.5 (以后的版本)的新特性自动装箱和拆箱

1. 自动装箱:把基本类型转换为包装类类型 int a =10; Integer i = new Integer(a);

Integer value = 10; 为什么基本类型就能直接转化为Integer ,Integer 不应该是new出来的吗 内部会自动的 new Integer(10) 自动装箱 2. 自动拆箱: 把包装类型转换为基本类型 Integer value2 = new Integer(120); int a = value2; 对象赋值给基本数据类型,为什么会不报错,因为内部会调用 value2.intValue() 这种就是自动拆箱

举一反三

Double d1 = 9.14 //内部会自动new一个Double 然后传递进去

new 出来的东西 每个都会分配一个内存地址

拆箱:devaning 装箱:

装箱拆箱面试题: 考点(Integer内部装箱的内部实现)

看程序写结果 1.

Integer value1 = new Integer(97); Integer value2 = new Integer(97); System.out.println(value1 == value2); System.out.println(value.equals(value2)); //这个就是比较值 System.out.println("-------------------"); 答案 : false true

2. 自动装箱,如果值一样、地址也一样

Integer value3 = 127; //自动装箱 Integer value4 = 127; System.out.println(value3 == value4); System.out.println(value3.equals(value4)); //这个也是比较值 答案:true true

`3. Integer value5 = 128; Integer value6 = 128; System.out.println(value5==value6); //false System.out.println(value5.equals(value6)); //true

答案: false true

总结: 自动装箱,范围在 -128 ~ 127 【256个数字 】的地址是一样的,其他范围地址不一样 -128 到 127 之间的有个自动装箱的缓存池 如果不在这个范围,就会使用new 新创建

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-09-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档