偶然看到一道面试题,Java在实例化一个类的时候,数据在堆和栈中是如何存放的? public class A{ public int i=1; public static A a1 = new A(); public static void mian(String args[]){ int c = 2; A a=new A(); } } 答案是: 处于栈中的数据:A对象的引用a和局部变量c 处于堆中的数据:变量a所指向的对象,变量a1所指向的对象,成员变量i,静态变量a1 Java的内存机制 Java把内存分为堆内存