Short Notes

A modest introduction to UUIDs in Java

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

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