I won’t let Java confuse you #5: let’s talk lambdasLambdas are interesting structures. What are they exactly? And why can’t we use non-final local variables in lambda bodies?Jun 30, 2024Jun 30, 2024
I won’t let Java confuse you #4: unreachable statementsDo you think Java consistently rejects all unreachable code? Well…May 9, 2024May 9, 2024
I won’t let Java confuse you #3: wideningWelcome to the fourth episode of our Java-unconfusing series, where we look at some basic concepts in Java (in fact, it applies to many…May 1, 2024May 1, 2024
I won’t let Java confuse you #2: expressionsWelcome to the third episode of the Java-unconfusing series, where we talk about the things that look innocent, while the results seem…Mar 25, 2024Mar 25, 2024
I won’t let Java confuse you #0: incrementSometimes the code that seems really clear can turn out to be quite deceiving, even in some really basic concepts. In these situations…Mar 6, 2024Mar 6, 2024
The Hidden Dynamic Life of JavaThis article is an (elaborate) transcript of my talk, ‘The Hidden Dynamic Life of Java’, presented on J-Fall 2023.Nov 13, 20231Nov 13, 20231
Java compiler-decompiler ping-pongThis small episode related to Java compilation seemed interesting and a bit funny to me, so I’m sharing it here and hope you enjoy it too!Oct 31, 2023Oct 31, 2023
Published inBetter ProgrammingJava Invokedynamic: Bootstrapping an Alternative MethodThis experiment intends to demonstrate the power of invokedynamic instruction in JVM. Let’s redefine some bootstrapping logic!Sep 18, 20231Sep 18, 20231
Published inBetter ProgrammingJava 21: So How Should We Construct Strings Now?Java 21 brings yet another way of constructing Strings. Is it good? Were the “old” ways good too? So what do we use now? Let’s look insideApr 15, 20246Apr 15, 20246