@sarada
"Stack is a memory place where the methods and the local variables are stored."
By "methods", I am assumming that you mean the callstack -- not the actual code for the methods.
"Heap is a memory place where the objects and its instance variable are stored."
Yes.
"Also it is to be remembered that the variable references (either primitive or object references) are stored in the stack."
Only for local variables. For instance and class variables, they are part of the object, hence, on the heap.
Finally, Java 6 may throw a monkey wrench into this. Due to "escape analysis" optimization, sometimes Java 6 will allocate objects on the stack.
Thanks.