java对象在创建和赋值时内存的执行流程
Posted 来根蘭州
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java对象在创建和赋值时内存的执行流程相关的知识,希望对你有一定的参考价值。
Person p1 = new Person(); p1.age = 10; p1.name = "小明"; Person p2 = p1; System.out.println(p2.age);
//1.先加载静态值,Person类的属性和方法 Person p1 = new Person(); //2.因为new在堆中开辟空间,创建Person对象并生成地址,把地址返回给p1,然后p1通过地址指向对象 //因为静态加载了Person类,所以属性已知,此时没有赋值,属性ageg和name为该数据类型的默认值0和null p1.age = 10; //3.先找到p1,在通过地址找到堆中的age,然后赋值10 p1.name = "小明"; //4.先找到p1,在通过地址找到堆中的name,因为是String类型字符串常量,则在常量池生成"小明"和地址 //再把地址返回给堆中的name,然后堆中的name通过地址指向常量池中的"小明" Person p2 = p1; //5.把p1赋给p2,p2指向p1,p2和p1是指向的同一个对象 System.out.println(p2.age); //6.通过地址找到堆中对象里的属性age,值为10 //7.如果通过p2修改对象属性,因为p2p1是指向的同一个对象,则通过p1去访问的也是修改之后的值
以上是关于java对象在创建和赋值时内存的执行流程的主要内容,如果未能解决你的问题,请参考以下文章