zoukankan      html  css  js  c++  java
  • 1.变量、常量、小整数池和垃圾回收机制

    1 变量

    1.1 什么是变量?

    量是记录事物的状态/特征。变化的量就是可以变化的量。
    

    1.2 变量的组成

    1) 变量名:描述变量的信息。
    (2) 赋值符号‘=’:建立变量名与值的绑定关系。
    (3) 值。
    变量的组成

    1.3 变量的命名规则

    1) 变量只能由数字、下划线和英文字母组成。
    (2) 变量不能以数字开头。
    (3)   变量不能用关键字。
    注意:变量尽量不用下划线开头,下划线开头有特殊意义。
            变量默认用小写字母和下划线组合。
            js默认使用驼峰体,常量默认全大写。
            
    变量的命名规则
    变量的命名一般见名知意
    注意

    1.4 变量的属性

    1) id:可以说是变量的内存地址。
    (2) type:变量的类型(常用的有7种,分别是:intfloat,str,list,dict,tuple以及set。)
    (3)  value:值。
    变量的属性
    1 值相同的变量,id值不一定相同。(因为python优化了内存机制即小整数池,使得在小整数池范围内,变量的值相同的情况下,id值相同)
    2 id值相同,变量的值一定相同。
    注意

     

    2 常量

    2.1 什么是常量?

    常量是不变的量。
    
    python中没有常量,一般默认全大写的为常量。这与js不同,js是有常量的。
    如果没有别人的允许,一般不要修改别人的常量。如果是你自己写的,也尽量不要修改。
    注意

    3 小整数池 

    3.1 产生的原因

    1 小整数是经常被使用的整数
    2 如果有多个变量名绑定相同的值,计算机会为每一个值开辟一个内存地址,这样造成了资源的极大浪费。为了节省空间资源以及提高空间资源的利用率,python优化了内存机制,将那些经常使用的整数提前分配好内存地址。如果有多个变量名绑定那些值,不需要去额外开辟新的内存空间。这就是小整数池。
    View Code

    3.2 范围

    -5~256

    4 垃圾回收机制

    垃圾回收机制是python自带的。
    1 引用计数:如果变量名与值有一个绑定关系,他的引用计数就记为1,如果有n个,就记为n。
    每增加或减少一个,引用计数就增加或减少一,当引用计数为0时,系统自动回收其资源。
    2 标记清除:当内存即将溢出或达到一个阈值时,系统会阻塞所有程序,对那些引用计数为零的进行标记,进行批量清除。
    3 分代回收:分代回收是一种以空间换时间的操作方式,Python将内存根据对象的存活时间划分为不同的集合,每个集合称为一个代,Python将内存分为了3“代”,分别为年轻代(第0代)、中年代(第1代)、老年代(第2代),他们对应的是3个链表,它们的垃圾收集频率与对象的存活时间的增大而减小。
    新创建的对象都会分配在年轻代,年轻代链表的总数达到上限时,Python垃圾收集机制就会被触发,把那些可以被回收的对象回收掉,而那些不会回收的对象就会被移到中年代去,依此类推,老年代中的对象是存活时间最久的对象,甚至是存活于整个系统的生命周期内。
    同时,分代回收是建立在标记清除技术基础之上。分代回收同样作为Python的辅助垃圾收集技术处理那些容器对象
       
    View Code
  • 相关阅读:
    Apache 常用伪静态配置
    Nginx 常用伪静态配置
    数组的完全随机排列
    PHP获得IP地址
    百度编辑器ueditor代码高亮效果前台不显示的解决方法
    ckeditor 图片上传功能配置
    sendmail 邮件服务器搭建
    关于MYSQL Incorrect string value
    linux 常见命令
    zend framework 初识
  • 原文地址:https://www.cnblogs.com/cmd61/p/11115965.html
Copyright © 2011-2022 走看看