zoukankan      html  css  js  c++  java
  • 类型内存模型(对象内存模型)

    类型的内存模型的3个问题:

    1、包含什么:附加信息

    2、怎么布局:内存对齐

    3、使用场景:怎么使用附加信息

    一、包含什么?

    除了包含结构类型的显式成员变量外,类型内存模型需要解决附加信息的引入问题

    1、附加信息(Opaque)有哪些:

    类型信息、函数信息、继承信息、内存计数等;

    2、为什么有附加信息:

    1)解决多态问题;

    2)解决类型运行时信息问题;

    3)解决类型的运行时内存管理问题(引用计数)。

    3、附加信息怎么包含进去:三个方案:

    1)类型本身隐式自带(Opaque成员);

    2)编译器定制处理:编译器针对类型引入(c++的虚函数表);

    3)编译器引入中间容器类型:swift的存在容器;

    二、怎么布局:

    详见内存布局;

    三、怎么使用:

    1、多态机制:

    函数的调用解释:

    1)虚函数表的查找、绑定与调用;

    2)类型信息的查找与使用

    2、内存模型的内存自管理:

    引用计数;

    3、容器中间类型的使用:

    编译器实现,开发者不可见;类型的打包、解包

    4、运行时类型信息:

    开发者调用类型信息接口获取;

  • 相关阅读:
    Android ContentProvider 简介
    Android Broadcaset 简介
    Android Service 简介
    XML SAX解析
    XML DOM解析
    RSS新闻阅读器
    XML PULL模型
    Android调用 Webservice报org.ksoap2.serialization.SoapPrimitive(转)
    Android调用Asp.net Web Service示例
    Eclipse编辑器基本设置
  • 原文地址:https://www.cnblogs.com/feng9exe/p/10579546.html
Copyright © 2011-2022 走看看