Лучший способ сохранить глобальные переменные

Ваш код будет зависать, если:

  • myArrayList содержит элемент null (NullPointerException)
  • myArrayList содержит пустую строку (IndexOutOfBoundsException)
  • Любой элемент myArrayList не начинается с «B» (ConcurrentModificationException)

. Последнее и наиболее вероятное: см. вопрос , связанный с @Todd в комментариях.

Кроме того, в Java вы должны сравнивать строки, используя .equals вместо == или !=.

5
задан Steve Gattuso 13 January 2009 в 20:45
поделиться

2 ответа

define() функция создает константы, не глобальные переменные. Глобальные переменные должны использоваться экономно, поскольку они могут быть повреждены случайно (или злонамеренно!), однако константы совершенно безопасны.

Я нахожу самым легким просто иметь файл, названный 'config.php', который настраивает все константы, это быстрее и более просто.

9
ответ дан 14 December 2019 в 01:19
поделиться

Ну, это зависит от структуры Вашего приложения. Если в данной загрузке страницы Вам только действительно будет нужно один или две из нескольких сотен переменных, то эталонное тестирование могло бы показать, что запросы базы данных могли бы быть более быстрыми, чем включение крупного конфигурационного файла. Однако необходимо будет опасаться срывания база данных со слишком многими запросами каждый раз, когда пользователь хочет сделать что-либо. Кэширование может сократить издержки, добавленные избыточными запросами, но это - степень ее использования.

Если эти переменные являются главным образом короткими строками или булевыми флагами, я думаю, что Ваш ответ в основном возложит то, что Вы сможете обслужить скважину. Хорошо структурированный .ini файл было бы легче поддержать, чем большая база данных, если те переменные редко изменяются и всегда заменяются вручную. Если бы эти переменные изменяются постоянно и никогда вручную, Вы, вероятно, были бы более умными, чтобы просто загрузить все переменные в базу данных.

Лично, я оказался в обеих ситуациях, и я использовал оба метода соответственно. Если Вы действительно нерешительны, можно всегда просто делать некоторые оценочные испытания. Время загрузка страницы, которая вытягивает информацию о конфигурации от базы данных, затем время загрузка страницы с помощью .ini файла (или .php файл, полный define()s).

(И педантично разговор, define() создает константы в глобальной области видимости, не глобальные переменные.)

0
ответ дан 14 December 2019 в 01:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: