首页 > 其他分享 >面试知识点

面试知识点

时间:2022-12-07 21:45:44浏览次数:34  
标签:知识点 标记 对象 回收 面试 计数 引用 垃圾

GC机制

python的垃圾回收,其实高级的语言都有自己的垃圾回收机制简称GC,python当中主要通过三种方式解决垃圾回收的方式,引用计数、标记清除、分代回收

1 引用计数:如果有新的引用指向对象,对象引用计数就加1,引用被销毁时,对象引用计数减1,当用户的引用计数为0时,该内存被释放

2 标记清除:首先标记对象(垃圾检测),然后清除垃圾(垃圾回收)
--->首先初始所有对象标记为白色,并确定根节点对象(这些对象是不会被删除),标记它们为黑色(表示对象有效)。 将有效对象引用的对象标记为灰色(表示对象可达,但它们所引用的对象还没检查),检查完灰色对象引用的对象后, 将灰色标记为黑色。重复直到不存在灰色节点为止。最后白色结点都是需要清除的对象

3 分代回收:垃圾回收器会更频繁的处理新对象
--->一个新的对象即是你的程序刚刚创建的,而一个老的对象则是经过了 几个时间周期之后仍然存在的对象。Python会在当一个对象从零代移动到一代,或是从一代移动到二代的过程中提升 这个对象.经历越多次数的垃圾收集且活下来的对象,说明该对象越不可能是垃圾,应该越少去收集。

装饰器、生成器、迭代器


标签:知识点,标记,对象,回收,面试,计数,引用,垃圾
From: https://www.cnblogs.com/zxr1002/p/16964628.html

相关文章

  • java面试(多线程)
    1. Callable、Future、FutureTash详解Callable与Future是在JAVA的后续版本中引入进来的,Callable类似于Runnable接口,实现Callable接口的类与实现Runnable的类都是可以被线程......
  • java面试(基础)
    0.面向对象1.1封装:利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。减少耦合,提高可重用性。1.2继承:is-a Cat可以当做Animal来使......
  • #yyds干货盘点# LeetCode程序员面试金典:返回倒数第 k 个节点
    题目:实现一种算法,找出单向链表中倒数第k个节点。返回该节点的值。注意:本题相对原题稍作改动示例:输入:1->2->3->4->5和k=2输出:4代码实现:/***Definitionforsingly-......
  • java高频面试题(反射、对象拷贝)
    java高频面试题(反射、对象拷贝)java高频面试题(反射、对象拷贝)1.什么是反射?反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力Java反射:在Java运行时环境......
  • C++知识点:数组末端下一位置
    c++语言规定,数组末端下一位置是合法的,但不允许对其解引用(即解引用是未定义的)。......
  • Spring面试
    0. 讲一下什么是SpringSpring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需......
  • java面试(JVM)
     1. JMM的两个语义1)happensbefore:一个线程前一个操作对后一个操作可见,具有传递性。确保多线程执行程序结果不变。2)asifserial:无论怎么重排序,程序执行结果不变,即不......
  • Spring Cloud 面试
    0.介绍1.架构2.对比3.负载均衡4.注册中心5.配置中心 6.熔断降级7. SpringCloudConfig8. SpringCloudGateway什么是网关?网关相当于一个网络服务架构的入口,所......
  • 分布式面试题
    0. 1.2.3. 分布式锁的几种实现方式分布式锁是控制分布式系统之间同步访问共享资源的一种方式。其典型的使用场景为:不同系统或者是同一系统的不同主机之间共享了一个或一......
  • Go常见面试题【由浅入深】2022版
    Go语言相比C++/Java等语言是优雅且简洁的,是笔者最喜爱的编程语言之一,它既保留了C++的高性能,又可以像Java,Python优雅的调用三方库和管理项目,同时还有接口,自动垃圾回收和goro......