黑马程序员-Java高新技术_基本数据的自动拆装箱及享元设计模式视频学习笔记
装箱:把基本数据类型装成java类(被托管?)。
拆箱:把java类拆成基本数据类型(取消托管?)。
java新版本增加了自动装箱拆箱的特性,使得java基本类和基本数据类型可以无需转换直接参与计算。如:
Integer iObj = 3 //自动装箱。
system.out.println(iObj + 12);//自动拆箱。
在较早版本中不支持自动装箱拆箱,以上两句语句是错误的。
知识点1:
在装箱时,将基本数值类型装成java类Integer对象, 如:
Integer i1 = 13;
时如果数值在一个字节之内-128~127之间时,会先把它缓存起来,当下次又要把一个数值装成Integer对象时,会先去缓存的对象中去找如果有会直接把它拿来用不会产生一个新对象。
这样的设计是享元模式,如果会产生很多小对象,而这些小对象的基本属性又是一样的而且使用时不会变,就没必要每次都产生一个新对象,创建一个就行了。
心得:这个视频的学习中可以看到java为了提高效率之类的考量,会有一些独特的设计,是想象不到的,所以有什么疑惑得多动手实验,从实践中学习。
详细请查看:http://edu.csdn.net/heima