【转载】计算机程序的思惟逻辑 (1) - 数据和变量

程序大概是怎么回事

计算机就是个机器,这个机器主要由CPU、内存、硬盘和输入输出设备组成。计算机上跑着操做系统,如Windows或Linux,操做系统上运行着各类应用程序,如Word, QQ等。程序员

操做系统将时间分红不少细小的时间片,一个时间片给一个程序用,另外一个时间片给另外一个程序用,并频繁地在程序间切换。不过,在应用程序看来,整个机器资源好像都归他使,操做系统给他提供了这种假象。 对程序员而言,咱们写程序,基本不用考虑其余应用程序,咱们想好怎么作本身的事就能够了。编程

应用程序看上去能作不少事情,能读写文档,能播放音乐,能聊天,能玩游戏,能下围棋 ...... 但本质上,计算机只会执行预先写好的指令而已,这些指令也只是操做数据或者设备。所谓程序,基本上就是告诉计算机要操做的数据和执行的指令序列, 即对什么数据作什么操做。数组

好比说:网络

  • 读文档,就是将数据从磁盘加载到内存,而后输出到显示器上
  • 写文档,就是将数据从内存写回磁盘。
  • 播放音乐,就是将音乐的数据加载到内存,而后写到声卡上。
  • 聊天,就是从键盘接收聊天数据,放到内存,而后传给网卡,经过网络传给另外一我的的网卡,再从网卡传到内存,显示在显示器上。

基本上,全部数据都须要放到内存进行处理,程序的很大一部分工做就是操做在内存中的数据。编程语言

本文主要就说说这个"数据"。(以Java为例)操作系统

数据

数据是什么?数据在计算机内部都是二进制,不方便操做,为了方便操做数据,高级语言引入了"数据类型"和"变量"的概念。对象

数据类型

数据类型用于对数据归类,方便理解和操做,对Java语言而言,有以下基本数据类型:游戏

  • 整数类型:有四种整型 byte/short/int/long,分别有不一样的取值范围
  • 小数类型 :有两种类型 float/double,有不一样的取值范围和精度
  • 字符类型:char,表示单个字符
  • 真假类型:boolean,表示真假

基本数据类型都有对应的数组类型,数组表示固定长度的同种数据类型的多条记录,这些数据在内存中挨在一块儿存放。 好比说,一个天然数能够用一个整数类型数据表示,100个连续的天然数能够用一个长度为100的整数数组表示。一个字符用一个char表示,一段文字能够用一个char数组表示。内存

Java是一个面向对象的语言,除了基本数据类型,其余都是对象类型 ,对象究竟是什么呢?简单的说,对象是由基本数据类型、数组和其余对象组合而成的一个东西,以方便对其总体进行操做。资源

好比说,一个学生对象,能够由以下信息组成:

  • 姓名:一个字符数组
  • 年龄:一个整数
  • 性别:一个字符
  • 入学分数:一个小数

日期在Java中也是一个对象,内部表示为整形long。

就像世界万物的组成,都是由元素周期表中的108个基本元素组成的,基本数据类型就至关于化学中的基本元素,而对象就至关于世界万物。

变量

为了操做数据,须要把数据存放到内存中,所谓内存在程序看来就是一块有地址编号的连续的空间,放到内存中的某个位置后,为了方便地找到和操做这个数据,须要给这个位置起一个名字。编程语言经过变量这个概念来表示这个过程。

声明一个变量,好比 int a其实就是在内存中分配了一个空间,这个空间存放int数据类型,a指向这个内存空间所在的位置,经过对a操做便可操做a指向的内存空间,好比a=5这个操做便可将a指向的内存空间的值改成5。

之因此叫量,是由于它表示的是内存中的位置,这个位置存放的值是能够变化的。

虽然变量的值是能够变化的,但名字是不变的,这个名字应该表明程序员心目中这块内存位置的意义,这个意义应该是不变的,好比说这个变量int second表示时钟秒数,在不一样时间能够被赋予不一样的值,但它表示的就是时钟秒数。之因此说应该是由于这不是必须的,若是你非要起一个变量名叫age但赋予它身高的值,计算机也拿你没办法。

重要的话再说一遍!变量就是给数据起名字,方便找不一样的数据,它的值能够变,但含义不该变。再好比说一个合同,能够有四个变量:

  • first_party: 含义是甲方
  • second_party: 含义是乙方
  • contract_body: 含义是合同内容
  • contract_sign_date: 含义是合同签署日期

这些变量表示的含义是肯定的,但对不一样的合同,他们的值是不一样的。

初学编程的人常常使用像a,b,c,hehe,haha这种无心义的名字,给变量起一个有意义的名字吧!

经过声明变量,每一个变量赋予一个数据类型和一个有意义的名字,咱们就告诉了计算机咱们要操做的数据。

有了数据,怎么对数据进行操做呢?

相关文章
相关标签/搜索