您的位置:首页 > 理论基础

《计算机是怎样跑起来的》读书笔记

2016-06-15 19:02 190 查看
《计算机是怎样跑起来的》

前言:

ü  真正的了解计算机,探索其本质,培养对技术本质的兴趣。

ü  不要把技术当作是黑盒子。

ü  如何学习一门学问:(1)要划出一个“知识的范围”,让精通这门学问所必知必会的知识都在这个范围内。(2)掌握这个范围内每个知识点中“基础的基础知识”。(3)以独当一面为目标,掌握了这些知识可以来做什么?

ü  计算机技术的知识范围是什么样的(本书总结)。

计算机的3大原则:

ü  编码:为了便于计算机处理而经过数字化处理的信息。

ü  GBK字符编码一个汉字占用2个字节。UTF-8字符编码下,一个汉字占用3个字节。

ü  计算机的3个根本性原则是:

1.      计算机是执行输入、运算、输出的机器。(三者一定成套出现。计算机无法自己产生数据,不运算就是电线,不输出就是个垃圾桶)

2.      程序是指令和数据的集合。(数据分两类—指令执行对象的输入数据、处理结果的输出数据)、(机器语言代码只每个数值要么是指令要么是数据)

3.      计算机的处理方式和人类的思维习惯不同。(能力不同决定)

计算机硬件:

ü  1M(兆)=100W.

ü  CPU: Central Processing Unit.

ü  时钟信号频率衡量CPU速度。

ü  内存墙的概念。

算法:Algorithm

ü  流程图解释算法,先整体后局部。

ü  辗转相除法的算法实现(多种)。

ü  哨兵:含有特殊值得数据,一般用来标识数据的结尾。

ü  理清楚现实世界解决问题的步骤,结合计算机的特性创造的算法。常思常想才能培养着中能力。

ü  学习算法的7个要点:

1.      算法中解决问题的步骤是明确而且有限的。(与人的直觉思维形成对比)

2.      计算机是机械的解决问题而不是靠直觉。

3.      了解并应用典型算法。(总结学习)

4.      学会利用计算机的处理速度解决问题。(计算机计算速度比人快的特性)

5.      使用编程技巧提升执行速度。(执行速度快才是最终目的,有些技巧比算法还有用,学习这些技巧-如哨兵)

6.      所有信息都可以表示成为数据,找出数据间的关系或者规律。

7.      在纸上考虑算法,活用流程图。算法必须和数据结构一起考虑。

数据结构:

ü  变量是数据的容器。

ü  学习数据结构的7个要点:

1.      了解内存和变量的关系。(变量是程序中数据存储的最小单位,每个变量都对应一块物理上的内存空间)

2.      数据结构的基础是数组,掌握它。

3.      了解数组的应用,典型算法的数据结构。

4.      掌握典型数据结构:栈、队列、链表、二叉树等。

5.      了解栈和队列的实现方法。

6.      了解链表和二叉树的实现方法。

7.      了解结构体的组成。

面向对象编程:OOP—Object Oriented Processing

ü  在未来的开发环境中,将成为主流的不是Java就是.Net。

ü  开发环境是通过隐藏系统的复杂性从而提升开发效率的程序集(或者说是框架,框架包括执行引擎和类库)。

ü  对象的构成要素包括对象的行为及操作。

ü  C语言中结构体是数据的集合,它将数据绑定在一起,使得我们可以将这些数据看作是一个整体。而在面向对象的编程中将数据的行为也放在了这个整体中,形成了对象的概念。对象既能描述属性(数据),又能描述行为。

ü  只有通过编程实践才能真正理解面向对象是什么。

ü  通常把汇集到类中的函数和变量统称为类的“成员”。

ü  大部分的类都已经内置于面向对象编程语言中了(库)。

ü  类的使用规范通过“接口”实现。

ü  面向对象编程可以借助UML设计实现。UML   — Unified ModelingLanguage(统一建模语言)

ü  UML规定了9种图,理解了UML图的作用就能从宏观上理解面向对象编程的思想。

ü  面向对象编程通过在对象间传递消息驱动程序。(对象间调用)

ü  继承,多态,封装是OOP的3个基本特性。

ü  类是对象的定义,对象是类的实例。

ü  类有3种使用方法:1. 使用类的成员。2. 类的定义中包含其它类(组合)3. 继承已存在的类产生新的类。

ü  不要把面向对象当成一门学问,它是一个工具。程序员是工程师,工程是实践活动。不要被面向对象的各种概念以及所谓的技巧所束缚住。

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: