zoukankan      html  css  js  c++  java
  • 编程语言和python介绍, 变量,小整数池,垃圾回收机制

    1.编程语言的发展史

      计算机是基于电工作(基于高、低电平)1010010101011

      1、机器语言
      优点:执行速度够快
      缺点:开发效率非常低


      2、汇编语言(通过英文字符组成)
      优点:执行效率相较于机器语言略低
      缺点:开发效率相较于机器语言略高

    ; hello.asm
      section .data ; 数据段声明
      msg db "Hello, world!", 0xA ; 要输出的字符串
      len equ $ - msg ; 字串长度
      section .text ; 代码段声明
      global _start ; 指定入口函数
      _start: ; 在屏幕上显示一个字符串
      mov edx, len ; 参数三:字符串长度
      mov ecx, msg ; 参数二:要显示的字符串
      mov ebx, 1 ; 参数一:文件描述符(stdout)
      mov eax, 4 ; 系统调用号(sys_write)
      int 0x80 ; 调用内核功能
      ;退出程序
      mov ebx, 0 ; 参数一:退出代码
      mov eax, 1 ; 系统调用号(sys_exit)
      int 0x80 ; 调用内核功能
    汇编代码示例

      3.高级语言

      c、c++、c#、java、php、python、go
      优点:开发效率高
      缺点:执行效率低

      编译型:谷歌翻译
      c、c++、go

      解释型:同声传译
      c#、python、java(先编译后解释)


      开发效率:
      (解释型>编译型)>汇编语言>机器语言

      执行效率:
      (解释型<编译型)<汇编语言<机器语言

      跨平台:
      解释型>编译型

      学习难度:
      机器语言>汇编语言>高级语言

    2.python介绍

    python解释器:

      python版本分类:

        python2.x

        python3.x

    python执行代码的两种方式:

      1.交互型:有来有往

      2.命令行执行:python文件约定俗成将后缀名定义为.py,其实.py单纯就是文本文件

    IDE工具pycharm:

      专门用于编写python代码

      优点:提升开发效率

      缺点:比较占用内存的资源

    注释:

      单行注释: #

      多行注释:   """  双引号      或     '''

            """         '''

      快捷键: ctrl+?

    变量:

      什么是变量: 变:事物的状态是可以变化的

              量:描述事物的状态

      变量的使用:1.变量名

             2.赋值符号

             3.变量值

      变量名的命名规范:1.只能由字母、数字、下划线组成

               2.不能用中文

                  3.不能以数字开头

                4.区分大小写

      变量名的命名风格:1.驼峰体

                  UserAge=18

                  print(UserAge)

               2.下划线体

                  user_age=18

                  print(user_age)

      变量的三大特征

        值:value

        内存地址:id  id()

        变量的类型:type  type()

      常量:python中没有常量,但python程序员约定俗成将字母全部大写的变量定义为常量

         例:NAME = 'SEAN'

              HOST = '127.0.0.1'

    内存管理:

      小整数池:假设有a,b两个变量,当a=b,并且在[-5,256]的整数区间内,那么他们指向相同的地址,即id相同

             #pycharm优化了这个功能,能包含更大的数,字符串,也有小整数池的机制

      例:

    >>> a = 257
    >>> b = 257
    >>> print(id(a))
    2335729820784
    >>> print(id(b))
    2335761804048
    >>> a = 255
    >>> b = 255
    >>> print(id(a))
    1838517664
    >>> print(id(b))
    1838517664

      垃圾回收机制

      1.引用计数:当内存中的值引用记数为0,垃圾回收机制就会自动清除    #执行效率低

          

       

      2.标记清除:当应用程序将内存撑满时,会自动停止,然后进行两项工作,第一项是标记,第二项是清除

       计数机制还有个致命弱点,即循环引用(也称交叉引用),需要用到标记清除

       循环引用会导致:值不再被任何名字关联,但值的引用计数并不会为0,应该被回收但不能被回收

      直接引用指的是从栈区出发直接引用到内存地址,间接引用指从栈区出发引用到堆区后再进一步引用到内存地址

      3.分代回收:历经多次扫描的情况下,都没有被回收的变量,gc机制就会认为,该变量是常用变量,gc对其扫描的频率会降低。  #gc:Garbage Collector(垃圾收集器)

     

     

     

  • 相关阅读:
    二进制或者其他进制转为十进制
    十进制转为二进制或者其他进制
    0.1 + 0.2 !== 0.3
    [git]删除远程分支
    [git]一个本地仓库,多个远程仓库
    [git]用户名,邮箱
    npm install命令
    常用命令:查看端口
    std::lock_guard 与 std::unique_lock
    std::mutex
  • 原文地址:https://www.cnblogs.com/ludingchao/p/11777845.html
Copyright © 2011-2022 走看看