UUIDs are an important element of programmers’ daily activities. In Java, as in practically every other language, we make extensive use of UUIDs to generate unique identifiers. There is a special class called java.util.UUID that exists solely to represent immutable universally unique identifiers. According to Java documentation, there are four...
Continue reading...Short Notes
Debugging drools project using KieRuntimeLogger (audit log)
I’m currently working under a project which utilizes Red Hat Decision Manager as a runtime to provide a real-time decisions for banking. It is not a secret that it has drools rule engine under the hood. It’s possible to debug drools applications using different tools and approaches, the one which...
Continue reading...Intellij IDEA + JUnit 4 + Gradle: Test events were not received
Столкнулся с проблемой, когда при попытке запустить цель test в gradle-проекте тесты не выполняются с сообщением Test events were not received. Такое может происходить потому, что тестируемые классы проекта не изменились с момента предыдущего запуска unit-тестов. Для очистки результатов всех тестов нужно запустить цель cleanTest. Подробнее можно почитать здесь.
Continue reading...Как работает обработка исключений на уровне виртуальной машины Java
Источник: Java Perfomance (Hunt & John, 2011) Виртуальные машины Java используют исключения в качестве сигнала о том, что программа нарушила некие семантические ограничения языка. Например, попытка получить доступ к индексу за пределами массива вызовет ошибку. Исключение провоцирует нелокальное перемещение контроля из точки возникновения или “выброса”, в точку, которая была определена...
Continue reading...Типы опций командной строки для запуска виртуальной машины Java
Источник: Java Perfomance (Hunt & John, 2011) Существует три типа опций командной строки: стандартные, нестандартные и опции разработчиков. Стандартные опции могут использоваться в любой реализации JVM, как того требует the Java Virtual Machine Specification. Они остаются неизменными от релиза к релизу, однако могут стать deprecated в релизах, следующих за тем,...
Continue reading...Integer Cache в Java
Для оптимизации потребления памяти некоторые классы-оболочки в Java (например Integer, Byte, Short, Long и Character ) кэшируют значения в ограниченном диапазоне (чаще всего от -128 до 127). Покопавшись в исходниках JDK, можно отыскать внутренний статический класс IntegerCache: В Static-блоке инициализируется массив cache, он заполняется объектами Integer со значениями от -128...
Continue reading...