Java objects are stored in an area called "the Java heap," yes. But it's important to realize that this is an abstract concept. The Java specification says remarkably little about how a Java Virtual Machine should be implemented. Every implementation is free to do many things in its own way. As far as the language and VM specs go, you're not allowed to know things like where in the real computer's memory Java objects go; it's implementation-dependent.