В частности, в J2ME, который использует больше ресурсов: манипулирует переменными public static
или обрабатывает методы set()
и get()
?Какой подход потребляет больше ресурсов: статический или геттер/сеттер?
ответ
public static
доступ к полю будет стоить вам меньше ресурсов, чем setter/getter
методов. Если вы находитесь в современной JVM Hotspot, будет минимальная разница.
установить и получить больше, чем доступ к нормальным полям. Вероятно, вы не имели в виду static
.
Это невозможно сказать, так как это зависит от реальной среды выполнения. Компилятор JIT, AOT или Hotspot может очень хорошо оптимизировать накладные расходы потенциального метода.
Использование get()
и set()
методов может быть немного дороже, чем прямой доступом атрибутов (хотя компилятор или JIT мои оптимизирует метод требует от встраивания их), но в любом случае разница незначителен. Кроме того, в общем случае вы не должны объявлять все свои атрибуты как static
, а только постоянные значения.
С другой стороны, использование методов get()
и set()
является предпочтительным вариантом для обеспечения инкапсуляции данных, это хорошая объектно-ориентированная практика программирования. Не имея этих методов, вы вынуждаете выставлять атрибуты снаружи, уменьшая способность класса скрывать детали реализации и делая будущие изменения в реализации сложнее.
Внедрение методов доступа значительно увеличивает размер файлов классов. Однако:
- статика зла
- предпочитают немного OO, и инкапсулировать с поведенческими методами, а не писать структуры с бессмысленными шаблонным
- вы, вероятно, можно найти обфускатор, который будет компактнее объектный код для вас
- 1. Статический подход или нестационарный подход?
- 2. Java I/O потребляет больше ресурсов ЦП
- 3. Какой из них больше потребляет память? Матричные или тригонометрические преобразования
- 4. Jhipster потребляет много ресурсов
- 5. AdMob потребляет больше памяти
- 6. Почему STRAIGHT_JOIN потребляет больше процессора?
- 7. OpenCL copyto() потребляет больше времени
- 8. Какой дизайн потребляет меньше памяти?
- 9. Какой подход рекомендуется: aggregateRoot.Items.Add (...) или aggregateRoot.AddItem (...)
- 10. Какой код потребляет меньше энергии?
- 11. WSDL потребляет - Какой инструмент использовать?
- 12. Android admob потребляет больше cpu
- 13. Какой SQL потребляет меньше памяти?
- 14. Какой подход использовать MVVM или Static
- 15. Какой подход лучше вернуть true или false?
- 16. Что потребляет больше памяти boolean или integer в mongodb?
- 17. Почему Java socket.connect() потребляет 100% ресурсов процессора?
- 18. Filewatcher потребляет большую часть ресурсов ПК
- 19. действительно ли сравнение regex потребляет много ресурсов?
- 20. Сколько ресурсов потребляет неурожайный прослушиватель событий?
- 21. Статический конструктор ресурсов с параметрами
- 22. Gwan умирает каждый день и потребляет много ресурсов rss
- 23. «Использует пространство имен», «потребляет больше памяти?
- 24. Neon VLD потребляет больше циклов, чем ожидалось?
- 25. Java-приложение потребляет больше процессорных циклов
- 26. Какой лучший подход?
- 27. Какой подход строителя предпочтительнее?
- 28. byte.TryParse(), какой подход лучше
- 29. Почему повторный JSON-анализ потребляет все больше и больше памяти?
- 30. Больше путаницы ресурсов
Почему закрытые голоса? –
Думаю, вам нужно немного расширить этот вопрос, какие ресурсы вы имеете в виду. Кстати, я думаю, что эти два не обязательно являются взаимозаменяемыми, либо использование статических переменных, скорее всего, потребует разработки вашего кода определенным образом. Я бы предложил использовать геттеры и сеттеры по всем «обычным причинам», просто для простоты – posdef
Даже вы просите J2ME на Android, есть лучшая практика: не используйте внутренний геттер/сеттер. Объяснение [здесь] (http://developer.android.com/guide/practices/design/performance.html#internal_get_set) – PeterMmm