Какой подход потребляет больше ресурсов: статический или геттер / сеттер? - PullRequest
2 голосов
/ 20 декабря 2011

Особенно в J2ME, который использует больше ресурсов: манипулирование переменными public static или манипулирование методами set() и get()?

Ответы [ 5 ]

2 голосов
/ 20 декабря 2011

Введение методов доступа значительно увеличивает размер файлов классов. Тем не менее:

  • статика зла
  • предпочитают немного ОО и заключают в капсулу поведенческими методами, а не пишут структуры с бессмысленным образцом
  • вы, вероятно, можете найти обфускатор, который сжимает объектный код для вас
2 голосов
/ 20 декабря 2011

Невозможно сказать, так как это зависит от фактической среды выполнения. Компилятор JIT, AOT или Hotspot может очень хорошо оптимизировать потенциальные издержки метода.

2 голосов
/ 20 декабря 2011

Использование методов get() и set() может быть немного более дорогостоящим, чем прямой доступ к атрибутам (хотя компилятор или JIT могут оптимизировать вызовы методов путем их встраивания), но в любом случае разница незначительна. Кроме того, в общем случае вы не должны объявлять все свои атрибуты как static, только постоянные значения.

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

0 голосов
/ 20 декабря 2011

public static доступ к полям будет стоить вам меньше ресурсов, чем setter / getter методы. Если вы находитесь на современной горячей точке JVM, разница будет минимальной.

0 голосов
/ 20 декабря 2011

установить и получить потреблять больше, чем доступ к обычным полям. Вы, вероятно, не имели в виду static.

...