A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Test
{
        public static void main(String[] args)
        {
                int a = 2;
                int b = a;
                b = b+3;
                System.out.println("a="+a);
                System.out.println("b="+b);
//a与b存在栈内存中,将a的值复制一份给bint b = a是将a的值复制一份给b,复制之后a与b之间就没有任何关联,b的修改影响不到a。
//所以上面打印的结果是:a=2, b=5


                Person p1 = new Person();//p1变量存在栈内存
                p1.setName("张三");
                p1.setAge(20);//在堆内存中开辟了一个空间存储对应的name=“张三”和age=20,然后将地址值赋给p1;

                Person p2 = p1;//栈内存新建一个p2,将p1的地址值赋给了p2,使p2也指向了name=“张三”和age=20;
                p2.setName("李四");
                p2.setAge(40);//将“张三”和20,变成了“李四”和40。
                System.out.println(p1.getName()+":"+p1.getAge());
                System.out.println(p2.getName()+":"+p2.getAge());       
//输出结果:李四:40,李四:40
        }
}
class Person
{
        private String name;
        private int age;
        public void setName(String name)
        {
                this.name = name;
        }
        public void setAge(int age)
        {
                this.age = age;
        }
        public String getName()
        {
                return name;
        }
        public int getAge()
        {
                return age;
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马