//创建一个Cat类
public class Cat{
public int age;
public String name;
}
1 public class Testcat {
2 public static void main(String[] args) {
3 Cat a=new Cat();
4 a.age=3;
5 a.name="小白";
6
7 Cat b=new Cat();
8 b.name="小黑";
9 b.age=5;
10
11 b=a;
12 System.out.println("A_Name:"+b.name+"\n"+"A_Age:"+b.age);
13 System.out.println("B_Name:"+b.name+"\n"+"B_Age:"+b.age);
14 }
15 }
运行结果:
A_Name:小白
A_Age:3
B_Name:小白
B_Age:3
1 public class Testcat {
2 public static void main(String[] args) {
3 Cat a=new Cat();
4 a.age=3;
5 a.name="小白";
6
7 Cat b=a;
8 b.name="小黑";
9 b.age=5;
10
11 //b=a;
12 System.out.println("A_Name:"+b.name+"\n"+"A_Age:"+b.age);
13 System.out.println("B_Name:"+b.name+"\n"+"B_Age:"+b.age);
14 }
15 }
运行结果:
A_Name:小黑
A_Age:5
B_Name:小黑
B_Age:5
这种情况Cat b 根本没在堆内存创建一个新Cat,而是直接拿到了Cat a在栈内存的地址,Cat b直接指向了Cat a创建的对象空间,并赋值修改了name和age属性的值。
1 public class Arr {
2 public static void main(String[] args) {
3 int a[]={1,2,3};
4 int b[]={4,5,6};
5
6 a=b;
7 System.out.println("输出a数组");
8 for(int c:a){
9 System.out.print(c+"\t");
10 }
11 }
12 }
![数组和对象在JvM中的样子]()