01. 计算机中的三大件

计算机中包含有较多的硬件,但是一个程序要运行,有 三个

  1. CPU
  • 中央处理器,是一块超大规模的集成电路
  • 负责 处理数据计算
  1. 内存
  • 临时
  • 速度快
  • 空间小(单位价格高)
  1. 硬盘
  • 永久
  • 速度慢
  • 空间大(单位价格低)




JAVA 小程序 接收消息 java小程序运行过程_Python


JAVA 小程序 接收消息 java小程序运行过程_数据_02



思考题

  1. 计算机中哪一个硬件设备负责执行程序?
  • CPU
  1. 内存 的速度快还是 硬盘
  • 内存
  1. 我们的程序是安装在内存中的,还是安装在硬盘中的?
  • 硬盘
  1. 我买了一个内存条,有 500G 的空间!!!,这句话对吗?
  • 不对,内存条通常只有 4G / 8G / 16G / 32G
  1. 计算机关机之后,内存中的数据都会消失,这句话对吗?
  • 正确

02. 程序执行的原理


JAVA 小程序 接收消息 java小程序运行过程_Python_03


JAVA 小程序 接收消息 java小程序运行过程_数据_02



  1. 程序 运行之前,程序是 保存在硬盘
  2. 当要运行一个程序时
  • 操作系统会首先让 CPU 把程序复制到 内存
  • CPU 执行 内存 中的 程序代码

程序要执行,首先要被加载到内存

2.1 Python 程序执行原理


JAVA 小程序 接收消息 java小程序运行过程_Python_05


JAVA 小程序 接收消息 java小程序运行过程_数据_02



  1. 操作系统会首先让 CPUPython 解释器 的程序复制到 内存
  2. Python 解释器 根据语法规则,从上向下CPU 翻译 Python 程序中的代码
  3. CPU

Python 的解释器有多大?

  • 执行以下终端命令可以查看 Python 解释器的大小
# 1. 确认解释器所在位置
$ which python

# 2. 查看 python 文件大小(只是一个软链接)
$ ls -lh /usr/bin/python

# 3. 查看具体文件大小
$ ls -lh /usr/bin/python2.7


软链接 的目的,是为了方便使用者不用记住使用的解释器是 哪一个具体版本

03. 程序的作用

用来处理数据

  • 新闻软件 提供的 新闻内容、评论……
  • 电商软件 提供的 商品信息、配送信息……
  • 运动类软件 提供的 运动数据……
  • 地图类软件 提供的 地图信息、定位信息、车辆信息……
  • 即时通讯软件 提供的 聊天信息、好友信息……
  • ……

3.1 思考 QQ 程序的启动过程

  1. QQ 在运行之前,是保存在 硬盘
  2. 运行之后,QQ 程序就会被加载到 内存


JAVA 小程序 接收消息 java小程序运行过程_python_07


JAVA 小程序 接收消息 java小程序运行过程_数据_02



3.2 思考 QQ 程序的 登录

  1. 读取用户输入的 QQ 号码
  2. 读取用户输入的 QQ 密码
  3. QQ 号码QQ 密码

思考 1

QQ 号码QQ 密码 发送给服务器之前, 是否需要先存储一下 QQ 号码 和 密码?

答案

肯定需要!—— 否则 QQ 这个程序就不知道把什么内容发送给服务器了!

思考 2

QQ 号码QQ 密码

答案

保存在 内存

思考 3

QQ 号码QQ 密码

答案

  1. 在内存中为 QQ 号码QQ 密码
  • 在 QQ 程序结束之前,这两块空间是由 QQ 程序负责管理的,其他任何程序都不允许使用
  • 在 QQ 自己使用完成之前,这两块空间始终都只负责保存 QQ 号码QQ 密码
  1. 使用一个 别名 标记 QQ 号码QQ 密码


JAVA 小程序 接收消息 java小程序运行过程_小程序执行运行过程原理_09


JAVA 小程序 接收消息 java小程序运行过程_数据_02



  • 在程序内部,为 QQ 号码QQ 密码 在内存中分配的空间就叫做 变量
  • 程序就是用来处理数据的,而变量就是用来存储数据的