In the Java programming language, static final fields can never be reassigned after the class they belong to has been loaded. Given that, you might be surprised that they go through a two-phase initialization process: they are first assigned their type's default value, and only after that their ultimate value. This sounds surprising at first – why bother initializing something that is constant twice? But as it turns out, there are some subtleties in Java that make this necessary. In this article, we dive into those corner-cases.
In this article, I want to talk about what I believe is the fundamental principle underlying all successful software development: shortening the feedback loop.
November saw the release of a new version of Specnaz, my Java and Kotlin testing library. This relase brings with it one major feature – support for JUnit 5 as the test execution engine.
All articles »