Static variables are one per class
Instance variables are one per instance (each object has its own copy)
Static methods/variables are on the stack, while objects and all their data (including their instance variables) are on the heap.
From what I understand, the stack is a set amount of memory given to a particular program. So when you start the program, the stack is a preset size, depending on the program, and it does not grow or shrink. The heap on the other hand is any free memory on your system. When you call the 'new' operator, the program requests some amount of memory from the system's free RAM. This whole concept is based on your entire system, but in the case of
Java, the Virtual Machine is the system.
As far as instance methods, I don't know if they are copied for each object, or if there is one copy somewhere on the heap. I'm sure someone else knows. If I had to guess, I'd say it's copied per instance in Java. But that's purely an uneducated guess.