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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© DaoDao2 中级黑马   /  2016-8-29 23:27  /  528 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

内存图:
                        代码:
                                public static void main(String[] args) {
                                        Car car = new Car();
                                        car.color = "红色";
                                        car.count = 5;
                                        car.run();
                                }
                        内存中的执行顺序:
                                1、main函数进栈,然后从main函数的第一行代码开始执行。
                                2、在栈内创建Car类的引用car,等待接收堆中传过来的地址值。
                                3、看到new Car()会在堆内存开辟一块儿空间。
                                4、该类的成员变量进堆,系统给出默认值。
                                5、至此,对象创建完毕,把堆中对象的地址值赋值给栈中的引用car。
                                6、执行car.color = "红色"; 把对象的color属性值改为"红色"。
                                7、执行car.count = 5; 把对象的count属性值改为5。
                                8、执行car.run(); run()方法进栈,开始执行run()方法。
                                9、run()执行完毕后弹栈。
                                10、main()函数弹栈,程序结束。
                                //先这么记忆,不严谨。  类加载器,构造方法

3 个回复

倒序浏览
收到了,谢谢分享
回复 使用道具 举报
恩,非常适合初学者。
回复 使用道具 举报
哈哈哈哈哈
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马