The problem with Java's everything-must-be-a-class OO fundamentalism is that a computer is actually has data AND executable code. Java forces everything into a noun (class/data), but some things are actually verbs. You can these because they have awkward names, like Runnable.
See Steve Yegge's rant: https://steve-yegge.blogspot.com/2006/03/execution-in-kingdo...