最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2015年12月12日 10:46:38   作者:lee0oo0  
這篇文章主要介紹了Android仿String的對象駐留,較為詳細(xì)的分析說明了對象駐留的概念及Android實(shí)現(xiàn)仿String對象駐留的相關(guān)技巧,需要的朋友可以參考下

本文實(shí)例分析了Android仿String的對象駐留。分享給大家供大家參考,具體如下:

String a = "abc";

String b = "abc";

a == b     true;

變量a和變量b是同一個(gè)值。這不只是說它倆的值是一樣的,而是說就是同一個(gè)字符串對象。用Java的話來說就是a==b的結(jié)果是true。然而這個(gè)只對字符串以及小的整型或者長整型有效。其它的對象是不會被駐留的,也就是說如果你創(chuàng)建了兩個(gè)對象而他們的值是相等的,但他們并不是同一個(gè)對象。這個(gè)問題有時(shí)候很討厭,尤其是當(dāng)你從某個(gè)持久化存儲中取出一個(gè)對象時(shí)。如果同一個(gè)對象你取了兩次,你當(dāng)然希望最終取出的是同一個(gè)對象,不過實(shí)際上你取出的是兩份拷貝。換句話說你其實(shí)希望的是取出的是存儲中那個(gè)對象在內(nèi)存里面的同一個(gè)拷貝。有些存儲層是會做這樣的處理的。比如說JPA的實(shí)現(xiàn)就是遵循這個(gè)模式的,而別的情況可能你就得自己去做緩存了。

如何讓自己的對象,也好似上面string一樣呢;使用下面這個(gè)類吧

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程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評論

河北省| 延边| 桐柏县| 曲阜市| 屏山县| 晋中市| 南乐县| 资中县| 东平县| 呼玛县| 涞水县| 闻喜县| 水富县| 太康县| 牙克石市| 株洲市| 南康市| 天津市| 禄丰县| 宁明县| 莱州市| 漾濞| 溆浦县| 文安县| 阳春市| 根河市| 桂平市| 开原市| 贵阳市| 安达市| 汕头市| 观塘区| 洪江市| 轮台县| 神池县| 云梦县| 新和县| 绥化市| 大田县| 达孜县| 青铜峡市|