我正在開發一個具有DataManager類的應用程序,該類包含ArrayList<Object[]>
。由於此ArrayList需要在其他類中使用,因此考慮到此應用程序將在Android平臺上運行,我想知道訪問此列表的最有效和最快速的方式是什麼。可變訪問性能
A)創建在DataManager類一個public static ArrayList<Object[]> data
並通過DataManager.data
乙其他類中引用它)創建DataManager類內的方法public ArrayList<Object[]> getData
和具有其它類內的方法創建臨時使用的局部變量ArrayList<Object[]> data = mDataManager.getData()
。
C)..?
在我看來,由於對象的創建,B有更多的開銷。另外我讀靜態比非靜態更快?
也就是說,選項B將與選項A相同,都引用相同的對象。通過公共方法訪問靜態成員vs創建本地成員的性能如何? – 2011-05-20 20:10:51
對不起,我第一次誤讀了你的問題。 局部變量通常比'static'更快。選項B強加了方法調用的輕微開銷,但沒有意義。關注設計的清晰度,並讓編譯器負責優化代碼。 – 2011-05-20 20:13:49
C)如何在DataManager中創建非靜態數據變量並直接從其他類訪問它,忽略封裝?或者性能增益可以忽略不計,所以最好使用適當的OOP並使用選項B? – 2011-05-20 20:24:37