Learn how to measure Java object sizes with various tools such as JOL, Java Agents, and the jcmd command-line utility
Has a BSc in Chemical Engineering and MSc in Information Technology. Except for the major change, nothing else has changed, still, a computer geek who is passionate about all aspects of software engineering looks for elegant and possibly new solutions, eager to learn and hopefully help fellow software geeks to do so.
Here's what I've written (so far):
Learn how to configure the thread stack sizes in the HotSpot JVM
Learn what causes Java to throw an ExceptionInInitializerError using a few practical examples
If you always wanted to know how JVM stores array length, you will find the answer here.
Learn how the JVM lays out objects and arrays in the heap
Learn a few ways to discover JVM tuning flags and learn how to work with them
Learn the footprint of a boolean value in the JVM in different circumstances
See how the compiler and runtime use the <init> and <clinit> methods for initialization purposes
Learn about relatively new Java optimization: string concatenation with invokedynamic
Learn how to preserve the generic type information at runtime using super type tokens.
Learn about invokedynamic and see how it can help library and language designers to implement many forms of dynamicity.
Compare the newCachedThreadPool() and newFixedThreadPool() implementations and their use-cases
Learn about what happens when a thread pool can’t accept any more tasks and how to control this by applying saturation policies
Learn about Spring’s Open Session In View pattern
Learn to manage transactions programmatically in Spring and why this approach is sometimes better than simply using the declarative Transactional annotation.
Learn about the counting sort and then implement it in Java.
Learn about the K-Means clustering algorithm using a real-world dataset from Last.fm
Find out how to tune the JVM to use memory more efficiently and address 32Gb of heap even in a 32-bit system.
Learn about native memory allocation in the JVM and how to track it.
Learn how to simplify test coverage in JUnit 5 with parameterized tests