赞 | 15 |
VIP | 71 |
好人卡 | 24 |
积分 | 36 |
经验 | 70116 |
最后登录 | 2025-1-10 |
在线时间 | 3065 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 3593
- 在线时间
- 3065 小时
- 注册时间
- 2011-11-17
- 帖子
- 980
|
本帖最后由 yagami 于 2013-10-26 21:25 编辑
内存布局 其中有3块 栈 堆 全局区
类的实例 也可说对象 一般都是new出来的(在C里有些时候是直接在栈里生成的 不用new) 这时这个对象内存所在区域就是堆 堆一般是由程序员自由分配的区域 RUBY有内存回收机制 但是你完全可以不依赖这机制 手动释放内存 @的变量 作为实例的实变量 也可以说是成员变量 当然和类的实例一样存放在堆里 这个变量的生命周期 也就是实例的周期 当实例被销毁时 这个变量也就被回收了
局部变量 一般都在栈里 栈的特点 先进后出 紧密排列 高效 局部变量 一般在函数里生成 当函数结束时 也就被销毁了
我定义了个 xxx函数 当调用该函数时先生成a 放到栈里 在生成b 放在a的上面
等函数结束时 回收局部变量 因为在栈里 先回收b 再回收a 先进后出原则
至于全局变量 放在全局区 生命周期 是整个程序运行时 当程序结束才回收 |
评分
-
查看全部评分
|