服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java进阶 java中具有实例缓存的不可变类

不可变类的实例的状态不会变化,这样的实例可以安全地被其他与之关联的对象共享,还可以安全地被多个线程共享。为了节省内存空间,优化程序的性能,应该尽可能地重用不可变类的实例,避免重复创建具有相同属性值的不可变类的实例。

在jdk 1.5的基本类库中,对一些不可变类,如integer类做了优化,它具有一个实例缓存,用来存放程序中经常使用的integer实例。jdk 1.5的integer类新增了一个参数,为int类型的静态工厂方法valueof(int i),它的处理流程如下:

if(在实例缓存中存在取值为i的实例)
   直接返回这个实例
else{
  用new语句创建一个取值为i的integer实例
  把这个实例存放在实例缓存中
  返回这个实例
}

在以下程序代码中,分别用new语句和integer类的valueof(int i)方法来获得integer实例。

integer a=new intege

扫描关注微信公众号