黑马程序员—Java基础加强 (基本数据的自动拆装箱及享元设计模式)
来源:互联网 发布:o 数据库管理软件 编辑:程序博客网 时间:2024/05/17 05:56
------- android培训、java培训、期待与您交流! ----------
对基本数据的自动拆装箱及享元设计模式的知识总结都在代码注释里面了:
代码以及注释:
public class AutoBox{public static void main(String[] args){//自动装箱,自动把一个基本数据类型装成一个Integer对象再赋给引用变量Integer iobj = 3;//自动拆箱,Integer对象不支持加法,自动把它转换成基本数据类型再进行加法运行。System.out.println(iobj + 13); /** 这两个基本数据类型经过自动装箱成Integer对象后,是不是同一个对象呢?是同一个对象!* 对于这些基本数据类型的整数,要装箱成Integer对象的时候,如果这个数字在一个字节之内 (-128 - 127)* 一旦把这个数字装箱成Integer对象之后,就会把它缓存起来,放在缓冲池里面。下次再把一个整数装箱成Integer* 对象的时候,先看缓冲池里面有没有,有的话,直接从缓冲池里面拿那个整数。这样节省了内存空间。因为比较小的整数会* 经常用到,出现的频率很高,如果一出现就把它装箱成一个新的对象的话,就会产生很多对象。就占用更多的内存资源。* 这些对象本来就是不怎么经常改变的,对象又很小,并且大家都是用它,并且不改变他的数据,没有必要每一个数字都对应一个对象。* 这是一种设计模式。是享元模式** 享元模式:比如在Word文档里面写字母,如果每写一个字母都在内存中产生一个对象的话,那么就会产生很多个对象* 而这其中很多字母都是多次出现,高频率的重复。那么,就可以用到享元模式,把多个相同字母封装成一个对象,只是控制这个对象的显示方法的参数* x、y坐标不一样即可,比如说 i.disPlay(x, y)调用disPlay方法时,不同位置的对象传入不同的x、y坐标,控制他们的显示位置不一样即可。* * 还有电脑里面很多图标都是一样的,也可以用享元模式,多个图标是同一个对象,只是调用对象的显示方法的时候,传入的参数x、y坐标不一样即可。* pic.disPlay(x, y);不同的图标对象,他们的 x、y坐标不一样,显示的位置也不一样。* * 享元模式 flyweight* * 什么叫享元模式 :有很多个小的对象,他们有很多属性相同,那么就把他们变成一个对象。那些不同的属性变成方法的参数传入,称之为外部状态。* 相同的属性称之为这个对象的内部状态。* */Integer i1 = 13;Integer i2 = 13;System.out.println(i1 == i2); //true是同一个对象//如同这两个对象,是两个不同的对象。String s1 = new String("abc");String s2 = new String("abc");System.out.println(s1 == s2);//false不是同一个对象//调用Integer的静态方法将两个基本数据类型的整数封装成Integer对象,他们也是同一个对象Integer i3 = Integer.valueOf(3);Integer i4 = Integer.valueOf(3);System.out.println(i3 == i4);}}
0 0
- 黑马程序员—Java基础加强 (基本数据的自动拆装箱及享元设计模式)
- 黑马程序员 ---Java加强_基本数据的自动拆装箱及享元设计模式,javabean
- 黑马程序员--03基本数据的自动拆装箱及享元设计模式
- 黑马程序员_基本数据的自动拆装箱及享元设计模式简介
- 黑马程序员_基本数据的自动拆装箱及享元设计模式
- 黑马程序员_Java高新技术_基本类型数据的自动拆装箱及享元设计模式
- [Java笔记]基本数据的自动拆装箱及享元设计模式
- 黑马程序员——><基础加强一(eclipse-静态导入-享元设计模式-自动拆装箱-枚举-反射-类加载器)>
- 基本数据的自动拆装箱及享元设计模式
- 基本数据的自动拆装箱及享元设计模式
- 基本数据的自动拆装箱及享元设计模式
- 黑马程序员---java基础加强---基本数据类型的自动拆装箱
- 黑马程序员:自动拆装箱及享元模式的介绍
- 05.基本数据类型的自动拆装箱及享元设计模式
- 基本数据的自动拆装箱及享元设计模…
- 基本数据拆装箱及享元模式
- Java之自动拆装箱及享元模式应用
- 黑马程序员_加强11_基本数据类型的自动拆箱与装箱+享元模式
- 我自己在学习建站的时候,通常都会找一些比较接近自己水平的建站视频来进行学习
- 困扰很久的opencv打不开视频问题终于解决了
- C语言与Java语言的比较
- 银联卡QPBOC处理流程及数据分析
- 硬盘被损坏后怎么恢复文件
- 黑马程序员—Java基础加强 (基本数据的自动拆装箱及享元设计模式)
- 小游戏 Untrusted 推荐及攻略
- Java GUI编程(七)
- Java日期格式化及其使用例子收集
- spring+hbase集成
- java二维码生成与解析代码实现
- OpenGL: Accumulation Buffer(累积缓存)
- mysql:Table './xdb/auditlog' is marked as crashed and should be repaired
- fgetc