Java developers evolving their equality-checking techniques like they're climbing the social ladder at a fancy dinner party.
First panel: The peasant's approach with ==
that compares memory references instead of actual content. How primitive!
Second panel: The middle-class obj1.equals(obj2)
method - respectable, gets the job done, but lacks a certain... je ne sais quoi.
Third panel: The aristocratic Objects.equals(obj1, obj2)
with its monocle and top hat - handles null checks and prevents NullPointerExceptions with the elegance of someone who has staff to handle their exceptions for them.