Variable access performance
I'm developing an app that has a DataManager class, which holds an ArrayList<Object[]>
. As this ArrayList needs to be used within other classes, I am wondering what would be the most efficient and fastest way of accessing this list, considering this application will be running on the Android platform.
A) create a 开发者_高级运维public static ArrayList<Object[]> data
in the DataManager class and reference it within other classes through DataManager.data
B) create a public ArrayList<Object[]> getData
method within the DataManager class and have methods within other classes create local variable ArrayList<Object[]> data = mDataManager.getData()
for temporary use.
C) ..?
It seems to me B has more overhead due to object creation. Also I read static is faster than non-static?
Option B does not increase memory use, since you will only have one ArrayList
object (all the objects that use it just hold a simple reference, not a copy). The objects that use the ArrayList
could also store this reference as an instance variable, instead of requesting it from the manager class each time it is needed.
I read somewhere that access to instance variables is slightly faster than accessing class (static
) variables, but I don't have the link to the source.
The difference in performance is not likely to be meaningful. However, Option B gives you better encapsulation.
精彩评论