Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android仿String的對象駐留示例分析

Android仿String的對象駐留示例分析

編輯:關於Android編程

本文實例分析了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程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved