Skip to the content.
blog talks media about resources

I won’t let Java confuse you #4: unreachable statements



Do you think Java consistently rejects all unreachable code? Well...

Welcome back to the Java-unconfusing series! Usually here we take a look at the pieces of code which may look really innocent, but not work as we expect. Or not compile at all. It's good to dive into the reasons why it is a certain way, so we can learn more about Java ideology and design decisions. Let's get unconfused together!

I won’t let Java confuse you #3: widening



Welcome to the fourth episode of our Java-unconfusing series, where we look at some basic concepts in Java (in fact, it applies to many other languages too) that result in confusing outcomes in certain cases...

I won’t let Java confuse you #2: expressions



Welcome to the third episode of the Java-unconfusing series, where we talk about the things that look innocent, while the results seem confusing. Today I'm going to show you a simple numeric expression...

I won’t let Java confuse you #1: String concatenation operator +



Welcome to the second episode of this little Java-unconfusing series. Today I would like to talk briefly about String concatenation operator +...

I won’t let Java confuse you #0: increment



Sometimes the code that seems really clear can turn out to be quite deceiving, even in some really basic concepts. In these situations, it’s good to question whether that code doesn’t smell...

The Hidden Dynamic Life of Java



This article is an (elaborate) transcript of my talk, ‘The Hidden Dynamic Life of Java’, presented on J-Fall 2023...

Java compiler-decompiler ping-pong



This small episode related to Java compilation seemed interesting and a bit funny to me, so I’m sharing it here...

Java Invokedynamic: Bootstrapping an Alternative Method



This experiment intends to demonstrate the power of the invokedynamic instruction in JVM. This instruction is used for different pieces of Java functionality these days, such as switch statements, lambdas, and many cases of String concatenation...

Java 21: So How Should We Construct Strings Now?



Java 21 brings in a lot of cool features, and one of them is the preview of String Templates*. While it serves more purposes than just classic String interpolation, for us Java developers, it’s yet another way to concatenate Strings in a “proper” way...

static final what?



I accidentally discovered something interesting about constant fields in Java, so I decided to share it here in a short article. When we need to create a constant field in Java, we somehow automatically use this conventional construction...