问题
Q1: 硬件和软件区别是什么?
A1: 硬件是可以看见的实物,软件是看不见的、虚拟的计算机执行的程序,是指令和数据的集合。
Q2: 存储字符串“中国”需要几个字节?
A2: 在 GBK 编码下,“中国”需要4字节,在 UTF-8 编码下,“中国”需要6字节。
Q3: 编码是什么?
A3: 将非数字信息变为数字信息成为编码。
三大原则
计算机是执行输入、运算、输出的机器。
程序是指令和数据的集合。
计算机的处理方式和人的思维习惯不同。
第一原则
计算机是执行输入、运算、输出的机器。第一原则是从硬件的角度来描述的。
计算机硬件由大量的 IC 组成,每块 IC 上都有许多引脚,这些引脚有的用于输入数据,有的用于输出。
IC:Integrated Circuit,集成电路。
输入、运算、输出三者缺一不可。目前计算机还没有发展到通过自己的思考创造信息的底部,因此缺少输入,计算机就不能工作;缺少运算,那么就是电线而不是计算机了;缺少输出,那么就只是堆积信息的垃圾箱。
第二原则
程序是指令和数据的集合。第二原则是从软件角度描述的,程序 = 软件。
指令是控制计算机进行输入、运算、输出的命令,把向计算机发出的指令一条条地列出来,就得到了程序。
在程序设计中,为一组指令赋予一个名字,可称之为函数、方法、语句、子例程等待;为数据赋予名字,可称其为变量。
看到变量和函数也许会联想到数学吧,正如数学中函数的表记方法那样,在许多编程语言中都是用这类似于 y = f(x) 的语法。
第三原则
计算机的处理方式和人的思维习惯不同。对于计算机来说,什么都是数字。对于非数值类型数据,计算机内部会先把其转换成相应的数据再做运算 —— 这也就是编码的过程。
计算机的进化
计算机进化的目的只有一个 —— 更贴近人类。因为计算机的处理方式和人的思维习惯不同,因此想要贴近人类,就需要摒弃计算机处理方式中不符合人类思维习惯的部分。
相应的,编程方法也在进化,诞生了更加符合人类思维习惯的两种编程方法 —— 面向组件的编程和面向对象的编程。
面向组件编程的方法是通过将组件组装到一起完成程序。
面向对象编程的方法是先如实地对现实世界的业务建模,然后把模型搬到程序中。