手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >Android仿String的对象驻留示例分析
Android仿String的对象驻留示例分析
摘要:本文实例分析了Android仿String的对象驻留。分享给大家供大家参考,具体如下:Stringa="abc";Stringb="abc"...

本文实例分析了Android仿String的对象驻留。分享给大家供大家参考,具体如下:

String a = "abc";

String b = "abc";

a == b true;

变量a和变量b是同一个值。这不只是说它俩的值是一样的,而是说就是同一个字符串对象。用Java的话来说就是a==b的结果是true。然而这个只对字符串以及小的整型或者长整型有效。其它的对象是不会被驻留的,也就是说如果你创建了两个对象而他们的值是相等的,但他们并不是同一个对象。这个问题有时候很讨厌,尤其是当你从某个持久化存储中取出一个对象时。如果同一个对象你取了两次,你当然希望最终取出的是同一个对象,不过实际上你取出的是两份拷贝。换句话说你其实希望的是取出的是存储中那个对象在内存里面的同一个拷贝。有些存储层是会做这样的处理的。比如说JPA的实现就是遵循这个模式的,而别的情况可能你就得自己去做缓存了。

如何让自己的对象,也好似上面string一样呢;使用下面这个类吧

import java.lang.ref.WeakReference; import java.util.WeakHashMap; class WeakPool<T> { private final WeakHashMap<T, WeakReference<T>> pool = new WeakHashMap<T, WeakReference<T>>(); public T get(T object) { final T res; WeakReference<T> ref = pool.get(object); if (ref != null) { res = ref.get(); } else { res = null; } return res; } public void put(T object) { pool.put(object, new WeakReference<T>(object)); } }

希望本文所述对大家Android程序设计有所帮助。

【Android仿String的对象驻留示例分析】相关文章:

android开发之欢迎界面的小例子

Android开发之软键盘用法实例分析

android 网络连接处理分析

Android之网络通信案例分析

Android RelativeLayout相对布局属性简析

Android SQLite数据库增删改查操作的案例分析

Android 不同Activity间数据的传递 Bundle对象的应用

Android CheckBox 的使用案例分析

Android 游戏引擎libgdx 资源加载进度百分比显示案例分析

Android相册效果

精品推荐
分类导航