Photo by Artem Sapegin on Unsplash

In today’s post, I’ll talk about something that always interested me, but never had the time to perform a deep dive on, that is invokedynamic bytecode and boostrap methods (BSM) in the JVM.

Life before indy

As you all are aware by this point, up until Java 1.7, the JVM was an ecosystem mainly built around static method resolution, which should not be confused with method dispatch. JVM has always had what is called single-dispatch polymorphism.

When the program was compiled, the bytecode emitted would include an invokeX bytecode with a direct reference to the target method (MethodRef structure), and this is what…


Domain modeling is the act of translating the business concepts, such as nouns, rules, and structures into a conceptual representation. It will serve as the source to create elements used in the application source code, like classes, functions, data structures, etc.

Domain modeling very heavily relates to Domain Driven Design (DDD) but is not something that should be used exclusively with it. In fact, I would argue it should be used whenever possible.

Domain modeling is not restricted by the programming language used, but it will be much easier to use with a strong static type system. The ultimate feature…


Photo by Markus Spiske on Unsplash

A long time has passed since Java 8 release, back in 2014, and a lot has changed in the meantime. New frameworks were built, new programming languages were created and some of the existing ones have been adapted to better fit modern developer requirements.

Java was no exception to this trend. In the last years, the Java language has been the target of several additions, that have been requested by developers for quite some time. Some of these are record classes, variable type inference, sealed classes, pattern matching, etc. All of the above fall into the scope of project amber.

Nuno Caro

Computer science geek with a splash of party animal.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store