And I dont know the difference between Class Methods and instance Methods.
1. Class Methods are only the static methods?
*With classMethod() though. since (ahem) it's a class method, the compiler and JVM don't expect to need an actual instance to invoke the method. And even if you provide one (which we did: the instance referred to by f) the JVM will never look at it. https://coderanch.com/how-to/java/OverridingVsHiding
How the JVM knows classMethod() its a classMethod, and why never look to the instance referred?
because class methods are declared with "static" modifier. also to add , you cannot access non-static members(variables and instance members) from static context(block/method). why ? as you wrote yourself, jvm don't expect you to provide any instance when you run static method, so that means it is possible that when you invoke static method, there is no object.