您的位置:首页 > 移动开发 > Objective-C

既然 int是值类型,而 class是引用类型,那么int是怎样从Object派生的呢?

2010-11-22 10:20 183 查看
是这样的,当int用作int时候,这是一个值类型(在栈上),然而,当它用作是Object时,这是一个引用堆上的整数值的引用类型。换而言之,当你将int看作对象时,运行层将它自动转化为对象引用,这个转化过程称作装箱(boxing)。这个转换包括将栈里的值拷贝到了堆里,并且新建了一个对象的实例来引用该值。拆箱操作(unboxing)是个反过程——将对象转化为基于栈的值类型。
int x = 3;
// 堆栈上新的int类型,值为3

object objx = x;
// 堆上新的int, 设定值为3,x=3仍然在堆栈上

int y = (int)objx;
//新的int类型的值3在堆栈上,x=3在堆栈上,objx=3在堆上

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