对象的生命周期

在解释“对象的生命周期”前,先来看下面这个例子:

有一个停车场共50个停车位,假如这个停车场是通过人工来管理停车位的使用情况,管理员有一个计数器,用来计录当前空闲的停车位有多少个,每当有新的停车位被使用了计数器就减1,而有新的停车位空闲了计数器就加1。

我们可以把这些停车位理解为【资源空间】,可支配的最大资源数为50(即停车位数量),记录资源使用情况的管理员可理解为资源的观察者(每当资源发生变化就对停车位进行计数)。

那么会存在有这样的场景,50个停车位都被使用了,如果有新来的车,那么就不允许进入停车场。这种场景可以理解为资源不足。

而计算机中的【内存】也跟【停车场】差不多,我们通常说的内存有4G、8G、16G等,那么该内存最多能够存储的数据量就是4G、8G、16G等,如果当前内存使用情况已达到瓶颈的话,运行的程序就会出现故障。

当内存使用达到瓶颈时,运行的程序为什么会出现故障?

因为计算机在运行一个程序的时候,会把要用到的数据先写入内存空间。当内存不足时,程序就无法继续对数据在内存上进行操作,此时就会导致程序故障。更具体的一些知识点,朋友们可以去查阅相关资料:程序是如何被计算机所执行的,本文不做讨论研究,因为这个问题本身就有很多可讨论的知识点。

上面解释到,计算机在运行一个程序的时候,会把要用到的数据先写入内存空间。这就相当于某些停车位被使用了(即资源空间被使用),而在内存中的表现就是占用了一块内存空间。但是内存的空间大小是有限的,那么在程序中什么时候会占用内存空间?并且有没有类似停车位的管理员一样的角色,来观察程序的相关使用情况呢?

先思考下程序中类的概念,虽然我们可以用“类”将生活中的各种事物进行抽象化来在程序中进行描述。但是“类”不能代表一个具体的东西,而这个具体的东西是以“对象”来表达,那么我们要想在程序中得到这个具体的“对象”则是需要【创建类的实例】来获取,这也就认证了前面文章所说的“类的具体实例就叫做对象”。那么这个“创建类的实例”也就是一个具体的【对象】诞生了,此时会在内存中占用一块空间。当这个具体的【对象】不再被使用后(相当于车离开了停车场,不需要使用停车位了),那么在程序中会有一个叫GC(垃圾回收机制)的东西来负责管理对象使用情况,类似停车场的管理员,职责就是:观察不再被使用的具体【对象】有哪些,然后将其销毁,腾出内存空间。GC(垃圾回收机制)管理对象的使用情况的详细说明本文暂不作讨论。

那么现在回到“生命周期”这个词,对于人来说就是从出生到死亡的一个过程。

所以在程序中,一个“对象的生命周期”就是指:对象的创建到使用结束后被销毁的一个过程。

(0)

相关推荐

  • 垃圾回收算法有几种类型? 他们对应的优缺点又是什么?

    常见的垃圾回收算法有: 标记-清除算法.复制算法.标记-整理算法.分代收集算法 标记-清除算法 标记-清除算法包括两个阶段:"标记"和"清除". 标记阶段:确定 ...

  • 万达也是卫生间造景高手!

    卫生间成为网红打卡点已不稀奇,声名远播的都不在少数,而原本给人标准化印象的万达广场在近几年的项目中,打造出多个独具特色的空间. 01 卫生间,也可以很有情调  02儿童专属卫生间,长什么样? 03女性 ...

  • 引用计数实现起来,真是太难了

    使用引用计数进行对象生命周期管理 使用托管代码的一个好处是:你不需要关心对象的生命周期管理工作. 下面的一个例子展示了在非托管代码中是如何进行引用计数管理的,并且代码中还有一些小Bug.让我们先来看看 ...

  • 《深入理解Java虚拟机》 Java对象的生命周期

    Java虚拟机运行时数据区 方法区:存储 类信息.常量.静态变量.即使编译器编译后的代码等数据,也有别名叫做非堆.  方法区其中有包含有 运行时常量池,用于存放编译期生成的各种字面量和符号引用.其中, ...

  • 六 领域驱动设计-领域对象的生命周期

    每个对象都有生命周期,如图6-1所示.对象自创建后,可能会经历各种不同的状态,直至最终消亡--要么存档,要么删除.当然,很多对象是简单的临时对象,仅通过调用构造函数来创建,用来做一些计算,而后由垃圾收 ...

  • 员工生命周期管理

    员工的生命周期是什么? 员工生命周期是涵盖了员工与其工作所在组织之间的整个关系,这包括吸引阶段,即人们熟悉公司的过程,一直持续到他们离开组织为止.    在员工与企业之间这种持续关系中,我们分为7个阶 ...

  • 动力电池全生命周期管理

    动力电池全生命周期管理

  • 【原创】基于生命周期的工艺验证之工艺设计阶段

    手把手教您把控技术转移.工艺验证和清洁验证的相互关系学习通道扫描右方二维码即刻报名01 基于生命周期的工艺验证 基于生命周期的工艺验证方法,将工艺研发/设计.商业生产工艺验证.常规商业化生产中控制状态 ...

  • 企业在不同的时期,生存法则是不一样的,如何突破生命周期呢?

    △是新朋友吗?记得先给余导说商点个关注哦- 我们一个人的生命周期有婴儿期, 发育期.青春期.成长期, 然后有可能不长身高了,慢慢步入成熟期. 公司和人一样,也会经历这么一个过程. 每个时期有每个时期不 ...

  • 一文读懂用户全生命周期?

    诸葛君说:诸葛io以用户为中心,打通用户全生命周期数据,构建完整的用户画像并提供营销工具和分析平台,从而为企业实现数据驱动的精准营销和精细化运营提供完整的解决方案. 在诸葛io赋能企业提供精准营销和精 ...

  • 诸葛io CEO孔淼:用户全生命周期 数据赋能下的新营销(附PPT)

    诸葛君说:9月18日,诸葛io CEO孔淼出席WAW X十年数据峰会,并发表主题为<用户全生命周期 数据赋能下的新营销>的演讲,讲述了现在企业面临的获客难,转化低的难题,以及诸葛io三年来 ...

  • 诸葛全面升级「数据接入」,打破数据孤岛,洞察用户全生命周期

    企业数字化的主要特征包括三个方面:第一是连接,连接员工.连接客户.连接机器设备:第二是数据,也就是连接之后实时产生的数据:第三是智能,是数据驱动的智能应用. 2020年,新技术发展的脚步并没有因为疫情 ...