Я только что прочитал статью в документах BlackBerry о writing efficient code in J2ME.Нестационарные статические строки более эффективны, чем статические конечные строки?
В этой статье есть раздел, который советует вам использовать статические переменные для строк. Причиной является то, что, поскольку компилятор в строках static final
ссылается как строковые литералы, лучше оставить его нефиналивым (я полагаю, предположение заключается в том, что получение статической ссылки дешевле, чем извлечение из пула строк?).
Это правда для всех JVM? Мой босс на моей последней работе ударил его в головы, чтобы мы всегда, всегда использовали static final
для наших констант. Мы занимались встроенным программированием на Java, поэтому он был настоящим приверженцем производительности (хотя я не уверен в этом случае, был ли он больше связан с памятью или скоростью). Мой босс уже много лет занимается Java и действительно знает его вещи, поэтому я принял его совет; теперь я получаю противоречивые советы!
Итак, какой из них действительно лучше? Вы можете ответить либо с точки зрения сохранения памяти, либо с точки зрения скорости, и для J2ME или J2SE.
Возможно, вы должны использовать статический финал. Пусть машина делает то, что она делает, чтобы определить, должно ли что-то быть встроено. Кроме того, если вы беспокоитесь о производительности встраивания строки и ее вызова, java, вероятно, не является подходящим языком для работы в – Falmarri 2010-11-23 23:57:28
Когда вы программируете интерфейс для Android или BlackBerry, у вас нет выбора языков , Но помимо этого, всегда лучше знать, что происходит под капотом! Да ладно, мужик, это принципиально! Вы не подчиняетесь машинам, машины подчиняются вам! Кроме того, почему это комментарий, а не ответ? – 2010-11-24 00:27:46