All about Java class loaders
Here's a quick look at the three types of class loaders and everything you need to know to work with them in your Java programs.
How to use callbacks in Java
Learn how to use synchronous and asynchronous callbacks in Java—including callbacks with lambda expressions, CompletableFuture, and more.
Intro to the Observable design pattern
The Observable design pattern is found in many Java APIs and in reactive programming. Here's an introduction to the timeless Observable pattern in Java.
Lazy vs. eager instantiation in Java: Which is better?
Learn how to use lazy instantiation and eager instantiation in your Java programs. Which approach is better? It depends on the scenario.
How to use the Command pattern in Java
Learn how to use the Command pattern to encapsulate requests as objects that you can execute alone or in sequence in your Java programs.
Abstract classes vs. interfaces in Java
When should you choose an abstract class over an interface in Java? Take the challenge! Learn the difference between these Java language elements and how to use them in your programs.
Java inheritance vs. composition: How to choose
Compare inheritance and composition, the two fundamental ways to relate Java classes, then practice debugging ClassCastExceptions in Java inheritance.
Does Java pass by reference or pass by value?
You've probably heard that Java passes by value, but what matters is how well you understand the concept and the code. Find out what happens when you pass an object reference to a method in Java.
Comparing Java objects with equals() and hashcode()
What is the contract between equals() and hashcode()? Learn how these methods work together when comparing Java objects.
Polymorphism and inheritance in Java
Challenge yourself, with this brain-teasing introduction to Java method invocation in polymorphic method calls.
Thread behavior in the JVM
The JVM does what it wants to do, so how can you predict the order of thread execution?
String comparisons in Java
Have you ever wondered how Java's String methods, keywords, and operators process comparisons in the String pool? Here's your chance to find out!
Sorting with Comparable and Comparator in Java
Comparable or Comparator—which should it be? Learn how to choose the correct interface for the sorting algorithm you need.
Method overloading in the JVM
Test your mind with the first Java Challenger in a new series. Can you outthink the Java virtual machine?