在解释“对象的生命周期”前,先来看下面这个例子:spa
有一个停车场共50个停车位,假如这个停车场是经过人工来管理停车位的使用状况,管理员有一个计数器,用来计录当前空闲的停车位有多少个,每当有新的停车位被使用了计数器就减1,而有新的停车位空闲了计数器就加1。对象
咱们能够把这些停车位理解为【资源空间】,可支配的最大资源数为50(即停车位数量),记录资源使用状况的管理员可理解为资源的观察者(每当资源发生变化就对停车位进行计数)。生命周期
那么会存在有这样的场景,50个停车位都被使用了,若是有新来的车,那么就不容许进入停车场。这种场景能够理解为资源不足。内存
而计算机中的【内存】也跟【停车场】差很少,咱们一般说的内存有4G、8G、16G等,那么该内存最多可以存储的数据量就是4G、8G、16G等,若是当前内存使用状况已达到瓶颈的话,运行的程序就会出现故障。资源
当内存使用达到瓶颈时,运行的程序为何会出现故障?垃圾回收
由于计算机在运行一个程序的时候,会把要用到的数据先写入内存空间。当内存不足时,程序就没法继续对数据在内存上进行操做,此时就会致使程序故障。更具体的一些知识点,朋友们能够去查阅相关资料:程序是如何被计算机所执行的,本文不作讨论研究,由于这个问题自己就有不少可讨论的知识点。程序
上面解释到,计算机在运行一个程序的时候,会把要用到的数据先写入内存空间。这就至关于某些停车位被使用了(即资源空间被使用),而在内存中的表现就是占用了一块内存空间。可是内存的空间大小是有限的,那么在程序中何时会占用内存空间?而且有没有相似停车位的管理员同样的角色,来观察程序的相关使用状况呢?数据
先思考下程序中类的概念,虽然咱们能够用“类”将生活中的各类事物进行抽象化来在程序中进行描述。可是“类”不能表明一个具体的东西,而这个具体的东西是以“对象”来表达,那么咱们要想在程序中获得这个具体的“对象”则是须要【建立类的实例】来获取,这也就认证了前面文章所说的“类的具体实例就叫作对象”。那么这个“建立类的实例”也就是一个具体的【对象】诞生了,此时会在内存中占用一块空间。当这个具体的【对象】再也不被使用后(至关于车离开了停车场,不须要使用停车位了),那么在程序中会有一个叫GC(垃圾回收机制)的东西来负责管理对象使用状况,相似停车场的管理员,职责就是:观察再也不被使用的具体【对象】有哪些,而后将其销毁,腾出内存空间。GC(垃圾回收机制)管理对象的使用状况的详细说明本文暂不做讨论。计算机
那么如今回到“生命周期”这个词,对于人来讲就是从出生到死亡的一个过程。生活
因此在程序中,一个“对象的生命周期”就是指:对象的建立到使用结束后被销毁的一个过程。