Passing an instance is passing a function pointer. Along with a ton of other things, of course. Java introduced the concept of "single abstract method" types to do function pointer-like things.
Although jstack (Java Stack Trace) is a useful tool for learning more about a how a Java thread is behaving, VisualVM is an even easier method for obtaining the same type of information. It is easy to ...