Q: Static methods and variables I do know that in java static methods can only use static variables and static methods and but non static methods can use non static variables and methods. is there any explanation why static methods can only access static variables/methods? and cannot access non static methods and variables?

A: to access non-static methods/fields, you require an instance of the class.

A: When you instantiate a class, it will be loaded into a heap or stack. In this case your application has references to those parts of memory instances are located. However, static methods are just functions loaded into the memory. That is why if your static method wants to access a class variable or method it cannot just call it because there may be multiple references to that class in the heap contrary to one and only one static method can exist. 
If you want to call any non-static method from a static method, you should use the instance (or create one) to that class so that you can define which class reference you really mean. 

A: Think about it:
a) Suppose you were a static method.  
b) You exist independently of any object instance. You exist even if there's NO class instance.
c) You want to access a non-static variable.  A variable that exists in ONE and ONLY one object instance - a variable that's SPECIFIC to THAT PARTICULAR object instance.
d) Which object instance's non-static variable are you going to use???
Static methods MAY access non-static members of classes... provided they do it through a class reference.
Otherwise - no class reference - no access.
Make sense? ;)

A: In the Static context 'this' keyword is not accessible . we cannot use this keyword in the static context . Instance variables are initialized when the constructor invokes. But static variables are initialized when the class loads. during the loading of the class , instance variables are still not identified during this time if we use instance variables in static context it leads to compile time error because they are not identified at that time 
