Oh My, JAVA?!

Originally posted by Ilja Preuss:
The "new" operator creates a new object of the ClassA type on the heap and returns a reference to the object. The reference is then assigned to the obj variable. As obj is a local variable, it lives on the stack.

Does that help?



To add, the starting point to make the distinction is the lifetime-predictability of the variable (reference).

Since, for objects, the lifetime is unpredictable, they are always in the heap.

For in-method variables (primitives and references), like Ilja explains, the lifetime is predictable, and hence in the stack.

For instance variables (primitives and references), the lifetime is unpredictable, hence the heap.

This holds for both references and primitives.

I hope this properly summarizes the concept.                             

 

 

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html

JVM performance optimization, Part 3: Garbage collection

http://www.javaworld.com/article/2078645/java-se/jvm-performance-optimization-part-3-garbage-collection.html

 

How Garbage Collection Really Works

http://www.dynatrace.com/en/javabook/how-garbage-collection-works.html

 

JVM memory and garbage collection policy analysis model

http://www.codeweblog.com/jvm-memory-and-garbage-collection-policy-analysis-model/

 

Java (JVM) Memory Model and Garbage Collection Monitoring Tuning

http://www.journaldev.com/2856/java-jvm-memory-model-and-garbage-collection-monitoring-tuning

 

JVM performance optimization, Part 3: Garbage collection

http://www.javaworld.com/article/2078645/java-se/jvm-performance-optimization-part-3-garbage-collection.html

 

Java™ Memory: Understanding and Analyzing the Java Heap
http://www-01.ibm.com/support/docview.wss?uid=swg27019232&aid=1
 

Reference Types In Java - Part 1

http://java.dzone.com/articles/reference-types-java-part-1

 

 

 

posted on 2015-03-27 16:35  Shawn X.Y. Bai  阅读(168)  评论(0编辑  收藏  举报

导航