jdk1.5新特性4之自动装箱和自动拆箱与享元模式
来源:互联网 发布:建党伟业观后感知乎 编辑:程序博客网 时间:2024/05/29 18:53
一 基本概念
1 装箱
把基本类型用它们相应的引用类型包装起来,使其具有对象的性质。如int——>Integer,float——>Float。
自动装箱
Integer a = 100,编译器调用的是static Integer valueOf(int i)
2 拆箱
和装箱相反,将引用类型的对象简化成值类型的数据
自动拆箱
int b = new Integer(100);
int c = a +2;
二 是否相等
例一
Integer a = new Integer(100);
Integer b = 100;
System.out.println(a == b);
false,很好理解,b的值在编译时就确定下来了,而a是分配一块堆给它,地址当然不等
例二
Integer a = new Integer(100);
Integer b = new Integer(100);
System.out.println(a == b);
false,不解释
例三
Integer a = 100;
Integer b = 100;
System.out.println(a == b);
true,java为了提高效率,IntegerCache类中有一个数组缓存了值从-128到127的Integer对象。如果i的值是[-128,127]时,会直接从这个缓存中返回一个对象,否则就new一个Integer对象。类比String的驻留池。
例四
Integer a = 128;
Integer b = 128;
System.out.println(a == b);
false,解释见例3
例五
Integer a = Integer.valueOf(100);
Integer b = 100;
System.out.println(a == b);
true
例六
Integer a = Integer.valueOf(128);
Integer b = 128;
System.out.println(a == b);
false
三 享元模式
享元模式(Flyweight Pattern)是一种软件设计模式。它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于当大量物件只是重复因而导致无法令人接受的使用大量内存。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。正如我们例三展示的。
参考博客
http://www.cnblogs.com/wangchenyang/archive/2012/02/01/2334760.html
http://baike.baidu.com/view/6143765.htm
- jdk1.5新特性4之自动装箱和自动拆箱与享元模式
- jdk1.5新特性之自动装箱与拆箱
- 谈谈JDK1.5新特性之Integer与int的自动装箱和自动拆箱
- JDK1.5新特性--自动装箱与拆箱
- JDK1.5新特性之自动装箱与自动拆箱
- jdk1.5新特性之自动装箱与自动拆箱
- Java学习笔记之JDK1.5新特性(四):自动装箱和自动拆箱
- 黑马程序员--张孝祥Java高新技术-JDK1.5新特性(二)【基本数据类型的自动拆箱与装箱,枚举】以及享元设计模式
- 黑马程序员——静态导入,可变参数,自动拆箱装箱以及享元设计模式 JDK1.5新特性
- JDK1.5新特性:静态导入、可变参数、增强for循环、自动装箱拆箱(享元设计模式)、枚举、注解、泛型、
- 黑马程序员——Java1.5新特性之享元模式、增强for循环、可变参数、静态导入、自动装箱和拆箱
- 黑马程序员-jdk1.5新特性--基本数据类型的自动拆箱与装箱
- 《黑马程序员》 jdk 1.5的新特性:自动装箱与拆箱练习及享元设计模式
- jdk1.5新特性:自动装箱
- JDK1.5新特性之---自动装箱/拆箱
- 自动装箱1.5新特性一个享元模式
- 黑马程序员_ java高新之自动装箱与拆箱(引入设计模式:享元模式)
- JDK1.5 之 自动拆箱装箱
- x86基础之数与数据类型
- Magento Email Variables
- AUP2敏捷统一过程之一:序言及降低过程的总体拥有成本
- tomcat并发架构
- C# WinForm 显示 隐藏 鼠标 .
- jdk1.5新特性4之自动装箱和自动拆箱与享元模式
- C# WinForm开发系列相关的博客
- tomcat架构及源码分析
- linux下java调用浏览器
- 无限循环小数的分数形式
- Android SQLite 查询相关的笔记
- Urban Airship Android Client - Google GCM Push
- 2012-11-14日工作
- Mysql数据库中varchar类型和char类型的区别