国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

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

2020-04-11 11:12:08
字體:
來源:轉載
供稿:網友

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蕲春县| 布拖县| 湾仔区| 桦甸市| 孟津县| 黎城县| 锦屏县| 五寨县| 日土县| 兰西县| 泌阳县| 隆昌县| 民乐县| 桃园县| 北碚区| 炎陵县| 克什克腾旗| 齐河县| 郎溪县| 合水县| 县级市| 安吉县| 广河县| 胶南市| 桃江县| 教育| 阜南县| 全椒县| 江门市| 松溪县| 长垣县| 民县| 江源县| 建水县| 新疆| 三亚市| 连山| 伊春市| 明星| 栾城县| 太谷县|