程序运行内存分析

public class Doll{
String name;
public void Doll(String name){
this.name=name;
}
public static void main(String[] args) {
Doll doll1= new Doll("贝贝");
Doll doll2= new Doll("晶晶");
Doll doll3=doll1;
System.out.println(doll1.name);
System.out.println(doll2.name);
System.out.println(doll3.name);
}
}

以上程序的运行结果为:晶晶  晶晶  晶晶。

public class Doll {
static String name;
public void printDoll(){
System.out.println(name);
}

public static void main(String[] args) {
Doll doll1= new Doll();
doll1.name = "贝贝";
Doll doll2= new Doll();
doll2.name = "晶晶";
Doll doll3=doll1;
doll1.printDoll();
doll2.printDoll();
doll3.printDoll();
}
}

该程序运行结果为:贝贝  晶晶  贝贝。

程序运行的内存分析过程如下:

程序运行内存分析程序运行内存分析

程序运行内存分析

其中Doll  doll3 = doll1;的演示过程如下:程序运行内存分析

程序运行内存分析程序运行内存分析