Недавно я столкнулся с проблемой при отладке интеграции с одним из сторонних приложений, которое поставляется ‘as is’ и работает на IBM WebSphere. Оно использует внутренние JMS-очереди сервера для коммуникации с нашими приложениями, развернутыми там же. При миграции на новую версию сервера я столкнулся с NoClassDefFoundError, возникающей в одном из классов...
Continue reading...Java Core
hashCode() и equals(): нарушить (,) нельзя (,) соблюдать
Второй по популярности (после различий между LinkedList и ArrayList) вопрос на собеседованиях – контракт между методами hashCode() и equals(). Метод hashCode() класса Object – нативный (то есть написан не на Java и вызывается с помощью JNI). Из сигнатуры следует, что хэш-код является некоторым целочисленным значением типа int. Полагаю, что реализация...
Continue reading...“String pool в Java” или почему не надо сравнивать строки при помощи “==”
Разбирая недавно старый код, доставшийся мне по наследству на одном из проектов, я наткнулся на дефект, который отнял у меня добрую часть рабочего дня. Ошибка была самым настоящим heisenbug’ом: несколько лет этот код успешно работал в продукционной среде и дефект вышел из тени только при миграции на новую версию одного тяжеловесного JEE-совместимого сервера приложений.
Continue reading...