不知道我理解的对不对,
比如下面两个方法
public static void a(Object obj){
Object a = obj;
int i = 0;
}
public void b(Object obj){
Object a = obj;
int i = 0;
}
a 方法字节码随类加载永久储存到方法区
b 方法则在对象创建的时候才会随对象暂时储存到堆区
a 方法和b方法在运行的时候表现形式完全一样,每次运行都会在上图的虚拟机栈区开辟栈桢,方法内部的变量都是局部变量并且随栈桢开辟而初始化,栈内代码运行完则释放栈桢全部内存,不会出现内存泄漏。