您的位置:首页 > 其它

虚拟机调用函数是栈堆之间的变化

2016-04-05 15:27 267 查看
使用new就会到堆中开辟空间来存放实例对象(new Point())

使用赋值语句就会到栈中开辟空间存放它并存放堆中指向对象的地址(如果只是Point p;它只会在栈中开辟空间其内容没有任何值)

注意刚开始堆类对象的属性会有默认值对象属性是null在构造函数中对其赋值如果是对象其值也是指向他的属性对象的地址如果调用一方法而方法中的参数又为变量这时就会到栈中把这两个变量放入









这个图反映对于对象的操作都是先有其地址指向堆中的真正对象



当你对一个对象调用函数时有一个额外的开销首先存在栈上的是对象指示器它叫做this指示器

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: