奇思妙想 · 2024年 6月 15日 0

引用类型/类对象使用内存的差异

28 次浏览
  • C++作为一门自由博大的语言,类对象既可在栈,也可在堆,根据写法不同决定。
  • Java/C#约束了程序员的可控行为,如果是引用类型,就只能在托管堆(线程栈保存其引用/指针),对于C#的结构类型/枚举类型,只能保存在栈,不能在托管堆。
  • ObjC/Swift同样遵循类对象只会保存在堆中的原则。
    • ObjC 不允许ObjC 对象不以指针形式创建,否则会出现如下编译错误:
       Interface type cannot be statically allocated