类型系统
1. 引用类型:类(Class)
2. 值类型
3. 类型装饰
类
1. 接口
属性表达状态
方法表达行为
2. 类型与实例
RPoint:类型
rp1:实例(称为“对象”)
alloc:请求动态内存分配
init:初始化(默认为0)
[]:发送消息
3. 结构(类似于C)
自动定义内存大小(与创建对象不同)
结构对应的实例称为“值”
不同点:内存分配方式不同,sp1不能发消息,引用类型与值类型
4. 对象的空间分析
栈上存储指针
指针指向的对象存储在堆上
只能通过指针访问对象
值的空间分析
实例值直接存储于栈
5. 栈(heap)堆(stack)
栈(sp1):存储值类型(较为自动化)
堆(rp1):存储引用类型对象(较为手动化)
6. 拷贝行为:rp1,rp2指向同一个对象;改变rp2会同时改变rp1
sp1,sp2是两个对象;改变rp2对rp1没有任何影响
7. 传参行为:调用函数需要前置声明
rp3和rp1指向同一个对象;改变rp3会同时改变rp1
sp1,sp3是两个对象;改变sp3对sp1没有任何影响
调用完成后process栈会被回收;回收后对rp1,sp1结果没有任何影响
8. 内存模型的重要性
网友评论