Java自动装箱与拆箱及其陷阱分析
8页1、Java 自动装箱与拆箱及其陷阱分析定义 大家在平时编写 Java 程序时,都常常以以下方式来定义一个Integer 对象 :Integeri=100;从上面的代码中,大家可以得知, i 为一个 Integer 类型的引用, 100 为 Java 中的基础数据类型 (primitivedatatype) 。而这种直接将一个基础数据类型传给其相应的封装类(wrapperclass) 的做法,便是自动装箱(Autoboxing) 。在 jdk1.5 中,自动装箱首次被引入。而在jdk1.5 之前,如果你想要定义一个value 为 100 的 Integer 对象,则需要这样做:Integeri=newInteger(100);原理我们在以上代码“ Integeri=100; ”处打一个断点,跟踪一下。接下来,我们可以看到,程序跳转到了 Integer 类的valueOf(inti) 方法中/*Returnsa Integer instancerepresentingthespecified* int value.*Ifanew Integer instanceisnotrequired,t
2、hismethod*shouldgenerallybeusedinpreferencetotheconstructor*link#Integer(int),asthismethodislikelytoyield*significantlybetterspaceandtimeperformancebycaching*frequentlyrequestedvalues.*paramian int value.*returna Integer instancerepresenting i .*since1.5*/publicstaticIntegervalueOf(inti)if(i=-128&i=IntegerCache.high)returnIntegerCache.cachei+128;elsereturnnewInteger(i);换句话说,装箱就是jdk 自己帮你完成了调用Integer.valueOf(100) 。定义Integerinteger100=100;intint100=integer100;从上面的代码中, 大家可看出 integer100 为一个 Integer 类
3、型的引用, int100 为一个 int 类型的原始数据类型。但是,我们可以将一个 Integer 类型的对象赋值给其相应原始数据类型的变量。 这便是拆箱。拆箱与装箱是相反的操作。装箱是将一个原始数据类型赋值给相应封装类的变量。 而拆箱则是将一个封装类的变量赋值给相应原始数据类型的变量。装箱、拆箱的名字也取得相当贴切。原理 笔者相信大家也都猜到了,拆箱过程中 jdk 为我们做了什么。我们还是通过实验来证明我们的猜想吧。在以上代码的第二行代码打上断点,即在intint100=integer100; ”上打上断点,跟踪一下。方法。我们可以看到,程序跳转到了 Integer 的 intValue()/*ReturnsthevalueofthisInteger asan* int .*/publicintintValue()returnvalue;对于以将其返回也就是, jdk 帮我们完成了对intValue() 方法的调用。对于以上的实验而言,便是调用 integer100 的 intValue() 方法,将其返回 值赋给了 int100 。实验 1Integerinteger400=400
《Java自动装箱与拆箱及其陷阱分析》由会员桔****分享,可在线阅读,更多相关《Java自动装箱与拆箱及其陷阱分析》请在金锄头文库上搜索。
墙地砖粘贴技术交底
2023年房屋无合同(份范本)
西宁高岭土开发项目建议书
关于学生会申请书3篇
洁净工作台出厂检测报告新模板
大学生的社会实践报告字范文
起重作业管理程序
一千零一夜故事全集读后感800字2023.doc
精校版【北师大版】小学数学一年级上册第二单元第一课时过生日 教案
夫妻双方自愿离婚协议书简单范本(3篇).doc
辐射安全员职责
唐代医政管理制度初探
小学生心理健康工作计划范文(二篇).doc
考试必备:小学四年级语文上学期作文题目大全
栗子坝煤矿试运转方案
基于社交媒体的企业网络营销模式变革
单片机实验指导书
新课标一年级数学下学期期中综合检测复习试卷
视听说4答案-文字超完整版
塑胶颗粒加工再用项目申请立项可行性研究报告
2023-01-04 35页
2023-11-22 5页
2022-08-20 10页
2023-07-18 14页
2022-12-08 26页
2022-09-23 32页
2023-05-15 7页
2023-04-25 32页
2023-01-14 9页
2023-12-01 17页