java类与对象的内存分析

来源:互联网 发布:山阴俞氏 知乎 编辑:程序博客网 时间:2024/05/21 18:00

先上一句java的经典思想总结,      类(class)是组织代码。   对象是封装数据 。 总结下: 组织代码, 封装数据。   

一个类里 有静态的属性(其实是变量),有动态的方法(其实就是函数)  ,就像一个模板,批量生产对象。     

它们在内存里是怎么分布的呢?

堆栈出场!

堆里边 存放各个类,以及new出来的对象。栈里边存放的是局部变量,例如new对象的名字,  这个变量里存放的实际上是对象的句柄,即对象的首地址。(反正我一直觉得对象就是个结构体)

大概理清一下整个顺序

如果new了一个对象,系统会在堆里 申请一个新的内存空间,并把首地址存放到栈里的局部变量s里,s就是那个new对象的名称。  新申请的内存空间里  各个属性里 整数型默认为0,字符型默认为null。    类的作用就是new出对象并将地址存放在栈里,除此之外别无其他,再无其他。

对于多个类之间的穿插,本质是寻址。      


0 0
原创粉丝点击