Переменная производительность доступа - PullRequest
1 голос
/ 20 мая 2011

Я занимаюсь разработкой приложения с классом DataManager, который содержит ArrayList<Object[]>.Поскольку этот ArrayList необходимо использовать в других классах, мне интересно, какой будет самый эффективный и быстрый способ доступа к этому списку, учитывая, что это приложение будет работать на платформе Android.

A) создать public static ArrayList<Object[]> data в классе DataManager и ссылаться на него в других классах через DataManager.data

B) создать метод public ArrayList<Object[]> getData в классе DataManager и иметь методы в других классах для создания локальной переменной ArrayList<Object[]> data = mDataManager.getData() для временного использования.

C) ..?

Мне кажется, что B создает больше накладных расходов из-за создания объекта.Также я читаю статические быстрее, чем нестатические?

1 Ответ

0 голосов
/ 21 мая 2011

Опция B не увеличивает использование памяти, поскольку у вас будет только один объект ArrayList (все объекты, которые его используют, просто содержат простую ссылку, а не копию). Объекты, которые используют ArrayList, могут также хранить эту ссылку как переменную экземпляра, вместо того, чтобы запрашивать ее у класса менеджера каждый раз, когда это необходимо.

Я где-то читал, что доступ к переменным экземпляра немного быстрее, чем доступ к переменным класса (static), но у меня нет ссылки на источник.

Разница в производительности вряд ли будет значимой. Тем не менее, вариант B обеспечивает лучшую инкапсуляцию.

...