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...Short Notes
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...