Android仿String的對(duì)象駐留示例分析
本文實(shí)例分析了Android仿String的對(duì)象駐留。分享給大家供大家參考,具體如下:
String a = "abc";
String b = "abc";
a == b true;
變量a和變量b是同一個(gè)值。這不只是說它倆的值是一樣的,而是說就是同一個(gè)字符串對(duì)象。用Java的話來說就是a==b的結(jié)果是true。然而這個(gè)只對(duì)字符串以及小的整型或者長整型有效。其它的對(duì)象是不會(huì)被駐留的,也就是說如果你創(chuàng)建了兩個(gè)對(duì)象而他們的值是相等的,但他們并不是同一個(gè)對(duì)象。這個(gè)問題有時(shí)候很討厭,尤其是當(dāng)你從某個(gè)持久化存儲(chǔ)中取出一個(gè)對(duì)象時(shí)。如果同一個(gè)對(duì)象你取了兩次,你當(dāng)然希望最終取出的是同一個(gè)對(duì)象,不過實(shí)際上你取出的是兩份拷貝。換句話說你其實(shí)希望的是取出的是存儲(chǔ)中那個(gè)對(duì)象在內(nèi)存里面的同一個(gè)拷貝。有些存儲(chǔ)層是會(huì)做這樣的處理的。比如說JPA的實(shí)現(xiàn)就是遵循這個(gè)模式的,而別的情況可能你就得自己去做緩存了。
如何讓自己的對(duì)象,也好似上面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));
}
}
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
相關(guān)文章
Android開發(fā)中CheckBox的簡(jiǎn)單用法示例
這篇文章主要介紹了Android開發(fā)中CheckBox的簡(jiǎn)單用法,結(jié)合實(shí)例形式分析了Android中CheckBox控件的基本功能設(shè)置與頁面布局技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07
Android App中讀取XML與JSON格式數(shù)據(jù)的基本方法示例
這篇文章主要介紹了Android App中讀取XML與JSON格式數(shù)據(jù)的基本方法示例,Android中自帶的JSONObject非常好用,需要的朋友可以參考下2016-03-03
Android百度定位導(dǎo)航之基于百度地圖移動(dòng)獲取位置和自動(dòng)定位
項(xiàng)目需求是這樣的,首先定位我當(dāng)前的起始位置,并跟隨移動(dòng)不斷自動(dòng)定位我的當(dāng)前位置,下面通過本文給大家介紹android百度定位導(dǎo)航之基于百度地圖移動(dòng)獲取位置和自動(dòng)定位,需要的朋友參考下2016-01-01
Android開發(fā)返回鍵明暗點(diǎn)擊效果的實(shí)例代碼
這篇文章主要介紹了Android開發(fā)返回鍵明暗點(diǎn)擊效果的實(shí)例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
詳解Android內(nèi)存泄漏檢測(cè)與MAT使用
編寫沒有內(nèi)存泄漏的程序,對(duì)提高程序穩(wěn)定性,提高用戶體驗(yàn)具有重要的意義。這篇文章主要介紹了詳解Android內(nèi)存泄漏檢測(cè)與MAT使用,有興趣的可以了解一下。2016-12-12
Android編程簡(jiǎn)單設(shè)置ListView分割線的方法
這篇文章主要介紹了Android編程簡(jiǎn)單設(shè)置ListView分割線的方法,涉及Android布局簡(jiǎn)單操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02
android使用Jsoup 抓取頁面的數(shù)據(jù)
本篇文章主要介紹了android使用Jsoup 抓取頁面的數(shù)據(jù),jsoup 是一款Java的HTML解析器,有需要的朋友可以了解一下。2016-11-11
點(diǎn)擊圖標(biāo)進(jìn)入指定瀏覽器將首頁設(shè)置全透明解決一閃而過問題
進(jìn)入瀏覽器之前有一個(gè)頁面閃了一下,那是因?yàn)閺哪莻€(gè)空白的首頁跳過去的。解決的辦法是把他變成透明的就好了2014-08-08

