面向对象加强--自动装箱自动拆箱

来源:互联网 发布:酒店网络部署方案 编辑:程序博客网 时间:2024/05/19 12:15

自动装箱(autoboxing):就是把基础数据类型自动封装并转换成对应的包装类的对象。

拆箱(unboxing):就是把包装类的对象自动解包并转换成对应的基础数据类型。

具体在代码中一步步说明:
import org.junit.Test;public class Boxing {@Testpublic void test1() {// 装箱/拆箱: 基本数据类型 和 对应包装类 之间的自动转化// 自动装箱// 相当于:Integer i1 = new Integer(5);Integer i1 = 5;System.out.println(i1);// 5// 自动拆箱// 凡是包装类对象和基本数据类型运算,比较,都会自动拆箱int a1 = i1 + 10;System.out.println(a1);// 15// 对于Integer,数据范围在一个字节以内[-128,127],放在栈中,否者放在堆中Integer i2 = 100;int a2 = 100;System.out.println(a2 == i2);// trueInteger i3 = 200;int a3 = 200;System.out.println(a3 == i3);// trueInteger i4 = 100;System.out.println(i2 == i4);// true// 放在堆中的数据重新new 内存的Integer i5 = 200;System.out.println(i5 == i3);// false}// 可以认为String也是装箱拆箱的// 但我认为String应该是一种比较特殊的数据类型@Testpublic void test2(){//凡是new 出来的String,都不能使用“==”来判断,这将是一个bug!//凡是API中返回的String,都是new 的String st1 = "aa";String st2 = "aa";String st3 = new String("aa");String st4 = new String("aa");System.out.println(st1==st2);//trueSystem.out.println(st1==st3);//trueSystem.out.println(st3==st4);//false(new 出来的一定不同)System.out.println(st3=="aa");//false(new 出来的一定不同)System.out.println("aa".equals(st3));//true(equals比较的是内容而不是内存)}}

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 啵乐腐野画集 野画集免费全集 啵乐腐味满满app野画集 qq红包雪怎么画 雪怎么画 雪字几画 以冬天雪景为主题画一幅画 雪景画 qq红包怎么画雪 雪景画图片 钢笔画雪景 画雪 冬天雪景画 关于雪的画 画面 和平精英画面设置 和平精英画面 画面太美我不敢看 123影院3d画面太真实 吃鸡画面设置 科学家拍罕见画面 女小学生全脱胖次画面 手机一直在开机画面 win7一直在正在启动windows画面 合肥二中学生刘雅婷跳楼画面 画风浓烈 画风清奇 沈城画风 画风 斗罗画风 怎么画风 男主画风清奇 沈城画风六哥 沈六沈城画风 这斗罗啥画风啊 沈城画风六哥社会图 王妃画风有毒 画风浓烈将军之女 沈城画风六哥图片 亲你画风不对 画风是什么意思