zoukankan      html  css  js  c++  java
  • 对象占用空间

    1、对象分为字段和方法,字段分为:static,non-static。方法分为static,non-static,virtual

    2、static字段,放在静态存储区,所有的对象共享。non-static字段,每个对象拥有自己的一份内存copy

    3、static方法,non-static方法,virtual方法都放在代码区,所有的对象共享。调用方法的时候,如何区分方法内的数据是那个对象的呢?

      方法内的数据是方法绑定对象的数据,因为调用方法的时候,需要指定对象。对于virtual方法,还要增加一个额外指针,用于在运行时,根据对象的真实类型绑定方法。注意:就算有多个virtual方法,也只有一个额外指针。

    4、因此,对象占用的空间大小就是:

      不存在virtual方法:就是实例字段的大小

      存在virtual方法(一个或多个)就是:实例字段的大小+virtual方法的额外指针

  • 相关阅读:
    用Python实现多核心并行计算
    Sublime Text 中文乱码
    Python_pickle
    New blog
    git Bash常用命令
    用TTS实现文本转语音
    bc#54 div2
    用Python制作新浪微博爬虫
    hdu5000 背包dp
    mac下配置Qt for Android+iOS
  • 原文地址:https://www.cnblogs.com/nzbbody/p/3382973.html
Copyright © 2011-2022 走看看