Они не разрушают пользу от енамов. Поля (разумеется, константные) в енамах — это удобно. Это широко используется, например, в Java. Позволяет избавиться от лишних условных конструкций в коде.
Ну и если вдруг стабильная компания внезапно умирает, а так тоже бывает, то на рынке труда с java 7 будет сложновато.
Мне кажется, здесь вы преувеличиваете. Java 8 (которая сейчас LTS) не сильно отличается от Java 7. Streams API, Optional, лямбды — осиливаются за вечер-два. И вряд ли для потенциального работодателя отсутствие опыта работы с Java8+ будет принципиальным.
Java фреймворки тоже не то, чтобы должны были сильно поменяться между Java 7 и 8.
В общем, для Java разработчиков даже близко нет такой сильной проблемой с устареванием инструментов, как для JavaScript девелоперов.
Заучивая употребление без контекста вы катастрофически выхолащиваете смысл.
Тем не менее, это не повод совсем отказываться от интервального повторения. Для комфортного взаимодействия с материалами на иностранном языке (книги, аудиокниги, фильмы, игры и т.д.) необходимо знание очень большого количества слов. Большую часть этих слов вам навряд ли потребуется употребить в речи. Достаточно уметь их узнавать. Это уже сделает чтение/прослушивание гораздо более приятным.
If one of the case constants is equal to the value of the expression, then we say that the case label matches. Equality is defined in terms of the == operator (§15.21) unless the value of the expression is a String, in which case equality is defined in terms of the equals method of class String.
The Java Virtual Machine's tableswitch and lookupswitch instructions operate only on int data. Because operations on byte, char, or short values are internally promoted to int, a switch whose expression evaluates to one of those types is compiled as though it evaluated to type int.
Строки прямо не упомянуты. Но все остальные типы приводятся к int. Что делает версию с проверкой строки по хэшкоду весьма правдоподобной.
Не получив четкого ответа из доков, начал компилить и декомпилить. У меня HotSpot JVM 1.8. При декомпиляции switch по String видно, что используется и hashcode и equals:
switch(name.hashCode()) {
case 3556498:
if (name.equals("test")) {
// здесь код
}
и спасибо, что есть такие мнения, из-за них у нас (пентестеров) всегда будут простые и быстрые проекты.
Какие именно мнения? Что необходимо вести в проекте четко прописанную политику относительно security решений? Что все security механизмы нужно подвергать тестированию, как и обычную бизнес-логику? Что не нужно без необходимости городить монстроузные слои, которые дублируют друг друга и которые сложно понимать и поддерживать?
Рискну предположить, что Вы увидели в статье не совсем то, что я хотел донести.
en.wiktionary.org/wiki/ecosystem — английский викисловарь говорит, что можно так употреблять это слово.
Мне кажется, здесь вы преувеличиваете. Java 8 (которая сейчас LTS) не сильно отличается от Java 7. Streams API, Optional, лямбды — осиливаются за вечер-два. И вряд ли для потенциального работодателя отсутствие опыта работы с Java8+ будет принципиальным.
Java фреймворки тоже не то, чтобы должны были сильно поменяться между Java 7 и 8.
В общем, для Java разработчиков даже близко нет такой сильной проблемой с устареванием инструментов, как для JavaScript девелоперов.
Тем не менее, это не повод совсем отказываться от интервального повторения. Для комфортного взаимодействия с материалами на иностранном языке (книги, аудиокниги, фильмы, игры и т.д.) необходимо знание очень большого количества слов. Большую часть этих слов вам навряд ли потребуется употребить в речи. Достаточно уметь их узнавать. Это уже сделает чтение/прослушивание гораздо более приятным.
Спецификация языка Java согласна с Вами и утверждает, что строки в switch сравниваются через equals: docs.oracle.com/javase/specs/jls/se10/html/jls-14.html#jls-14.11.
Но в JVM спецификации написано следующее — docs.oracle.com/javase/specs/jvms/se10/html/jvms-3.html#jvms-3.10:
Строки прямо не упомянуты. Но все остальные типы приводятся к int. Что делает версию с проверкой строки по хэшкоду весьма правдоподобной.
Не получив четкого ответа из доков, начал компилить и декомпилить. У меня HotSpot JVM 1.8. При декомпиляции switch по String видно, что используется и hashcode и equals:
Какие именно мнения? Что необходимо вести в проекте четко прописанную политику относительно security решений? Что все security механизмы нужно подвергать тестированию, как и обычную бизнес-логику? Что не нужно без необходимости городить монстроузные слои, которые дублируют друг друга и которые сложно понимать и поддерживать?
Рискну предположить, что Вы увидели в статье не совсем то, что я хотел донести.