【java学习】装箱和拆箱
来源:互联网 发布:真三国无双7mac版下载 编辑:程序博客网 时间:2024/04/29 17:31
【何谓装箱拆箱?】
1)装箱:
把基本数据类型赋给对应的包装类。比如:把int赋值给Integer,对他的操作就需要用它的方法了。
是值类型转换为引用类型的过程。
2)拆箱:
把一个包装类赋给基本数据类型。由引用类型转换为值类型的过程。
Integer i = 1;//装箱int j = i;//拆箱//典型应用List list = new ArrayList();list.add(1);//装箱list.add(new Integer(1));//没有引入装箱概念之前Iterator it = list.iterator();while (it.hasNext()) {int x = (Integer)it.next();//拆箱}
【什么是引用类型和值类型?】
1)引用类型:
变量将引用(或“指向”)原始值。不创建任何副本。引用类型包括类、接口、委托和装箱值类型。
2)值类型:
只复制变量的值。也就是基本数据类型(四类八种):四类:整型、浮点型、字符型、逻辑型。
【频繁的装箱和拆箱很浪费效率。为何?】
装箱时,生成的是全新的引用对象,这会有时间损耗,效率降低。
在代码中应避免装箱和拆箱的操作。可以使用泛型来减少这样的操作。
【什么是泛型?】
1)泛型:
用于解决安全问题,是一个安全机制。
2)优点:
a.将运行时期出现问题classCastException,转移到了编译时期。便于解决问题,让运行时间减少,安全。
b.避免了强制转换(显式转换)。
3)举例
<span style="font-size:14px;"> list.add("abc");//插入字符串 Integer num = (Integer)list.get(0);//运行时会出错,但编码时发现不了</span>泛型运行程序员在编写集合代码时,限制集合的处理类型,从而在程序编译时就发现问题。如:
<span style="font-size:14px;">list.add("abc");//插入字符串</span>
<span style="font-size:14px;">String s = list.get(0);//取出的依然是String,安全</span>
再如 带泛型的方法:
<span style="font-size:14px;"> public <T> T getA(T a){//此处<T>先声明泛型T,然后使用时,传进来是什么类型,返回什么类型,同样避免了强制转换 return a; }</span>
同样可以有带泛型的类(只作用在非静态成员,静态成员需要单独声明泛型)。
使用注意:
1,泛型类型必须是引用类型
2,<> 念 typeof,表示处理的类型
0 0
- 【java学习】装箱和拆箱
- Java学习-装箱和拆箱
- java装箱和拆箱
- java装箱和拆箱
- java拆箱和装箱
- Java 装箱和拆箱
- Java 装箱和拆箱
- 深度学习:Java 自动装箱和拆箱(好文)
- JAVA学习_02: 包装类、拆箱和装箱详解
- JAVA学习笔记[1]装箱拆箱
- java学习之拆箱与装箱
- 【java学习】装箱与拆箱、泛型
- C# 学习之装箱和拆箱
- Effective java --读书笔记 -- 拆箱和装箱
- Java 自动装箱和拆箱
- java 自动装箱 和 自动拆箱
- Java里的拆箱和装箱
- java自动装箱和拆箱
- CASE WHEN 及 SELECT CASE WHEN的用法
- 随机数交换
- STL STD::list使用说明
- CentOS 7.0安装配置Vsftp服务器
- java实现截取屏幕保存为图片
- 【java学习】装箱和拆箱
- Spark生态和Spark架构
- oracle到底能不能insert into 多个values!?
- 关于http的8种请求方式
- Android Property Animator (属性动画)第二篇
- eclipse代码折叠插件Code Folding
- [LeetCode-70] Climbing Stairs
- Django Meta内部类选项
- visual studio查看svn中代码修改前后差异