程序构成和核心内容
- 程序:算法+数据结构
- 数据:程序的核心
- 数据结构:数据在计算机中的组成和类型,数组、列表、链表
- 算法:处理数据的方法,数学家高斯累加的故事
程序类型
- 面向过程
把整个事情拆分成不同的先后步骤,并按步骤执行,必须确定好步骤的先后顺序,表现为串行
汇编,c,shell
- 面向对象
把所有的事情都归结为对象,只需要处理好对象之间的关系,对象可以同时执行,也就是并行
java,python,c++
开发难点并不在语言的语法上,而是在编程思想和算法上。
就像学一门语言,基本的语法和单词就像3岁的小孩子,但想写出《红楼梦》或者《哈姆雷特》却需要大量的积累。
高级编程语言
- 编译型语言:源代码->编译器->二进制机器代码->执行 C,C++ 执行效率高
将编写好的源代码放入编译器中直接编译成对应的二进制机器代码后即可执行,执行效率很高。
相当于一个人自己本身会说外语,但这个人会说外语有限,所以适用性较窄。
编译型语言的好处是可以将写好的代码直接生成二进制交给用户,而不是将代码直接给出去,这样有利于保护知识产权。就像我们使用的windows就是闭源的封装好的二进制程序,我们只能使用,但不能在其基础上进行修改再重新发布
- 解释型语言:源代码<->解释器<->二进制代机器码<->执行 shell,heml,python 逐条解释执行,效率低
将编写好的源代码发送给解释器,解释器逐条翻译成对应的二进制机器代码
翻译一条,执行一条。开发效率高,可以写一条执行一条。但是执行效率低。
相当于这个人聘请了一个当地的翻译,和机器对话的时候,他说一句,翻译就翻译一句给机器听。
解释型语言给对方的就是源代码,并不能防止对方直接对源代码进行修改和重新发布,就像html网页,我们拿到后可以改成我们想要的样子
- 半编半解型语言: 源代码->编译器->特定文件->虚拟机->执行 Java 不高不低
Java比较特殊,写好的java源代码需要经过编译器的编译生成对应的二进制java代码
运行时java并不能直接在计算机上执行。
java需要被装入java自己的虚拟机上执行,从而达到多平台通用的效果。
java相当于聘请了一个常驻对方国家的翻译团队,发言的时候,把自己的讲稿交给这个专门的团队,由这个搞笑的翻译团队一次性解释给对方听。
三种处理逻辑
- 顺序执行 按照一定的顺序,从上到下依次执行
- 选择执行 按照从上到下的顺序,遇到分支进行选择后执行对应操作
- 循环执行 按照从上到下的顺序,根据特定的条件循环执行某个操作