数组和对象

//创建一个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 }
运行结果:

输出a数组
4    5    6    

 

数组和对象在JvM中的样子

posted @ 2019-12-27 10:35  Tripple_Redddddddd  阅读(129)  评论(0)    收藏  举报