计算机是怎样跑起来的 摘录

一。计算机三大原则

  1. 硬件:输入,运算,输出
  2. 软件(程序);数据+指令
  3. 计算机有自己的处理方式;对计算机来说,所有东西都是数字
  4. 所以规范都是适合计算机处理方式而产生制定的;如soap规范,就是定义了指令和数据的规范。
  5. 为了更贴近人类,编程方法也在进化,分为面向组件编程和面向对象编程。

二。程序的流程

  1. 程序的三种编程方式类似河流的运动方式:顺序,循环,条件
  2. 流程图:
  3. 高级语言可以不写跳转指令,但是实际上到本地代码,还是会转换为跳转指令。
  4. 算法,就是解决既定问题的步骤。
  5. 中断机制,事件驱动机制(调用Windows)
  6. 状态图,通过状态图可以理清思路

三。算法

  1. 算法中解决问题的步骤必须明确且有限
  2. 计算机不靠直觉,而是机械的解决问题
  3. 典型算法,可以参考的书目包括:算法技术手册,算法精解;主要典型算法:辗转相除法,埃拉托斯特尼筛法(判定素数),顺序查找,二分查找,哈希查找,冒泡排序,快速排序。
  4. 无论多么冗长繁琐的步骤,只要明确并且机械就能构成优秀算法。
  5. 使用哨兵策略
  6. 发现数字之间的规律
  7. 先在纸上写算法,包括步骤,画流程图等===》这步刚开始我是这么做的,后面不知道为什么就怠惰了;algorithm+data structures=programs

四。数据结构

  1. 变量的实质是按照变量存储数据的大小被分配到的一块内存空间。数组的实质是连续分配的一块特定大小的内存空间,数组是数据结构的基础,因为数组反映了内存的物理结构。
  2. 典型数据结构:栈,队列,二叉树,链表;都是基于数组衍生的数据结构
  3. 实现栈,需要先定义一个数组和一个变量,数组用来表示元素个数,变量中存储的索引指向最顶端数据,称为栈顶指针。
  4. 实现队列,需要一个任意大小的数组,两个变量(分别指向队首和队尾),两个函数(插入数据,读取数据);所以队列表面看是直线,实际上是圆环形
  5. 二叉树和链表都是基于数组的自我引用结构体

五。面向对象编程

  • 继承inheritance,
  • 封装encapsulation,在类所拥有的成员中,隐藏没有必要展现给该类调用者的成员。
  • 多态polymorphism,针对同一种消息,不同的对象可以进行不同的操作。
  1. 面向对象编程就是在为现实世界建模
  2. UML(unified modeling laguage)
  3. 消息传递:调用其他对象的函数
  4. 面向对象:类是对象的定义,对象是类的实例。
  5. 有的人负责创建类,有的人负责使用类。调用类有三种方法:调用类的个别成员,如函数,变量;继承类的基础上定义新类;在类的定义中包含其他的类(也称为组合)
  6. java其实是位于操作系统之上,旨在通过隐藏操作系统的复杂性从而提升开发效率的程序集,也称为“框架framework”。框架由两部分构成,一部分是负责安全执行程序的执行引擎,另一部分是类库。java框架之上用的是java语言。

综上,面向对象编程就是通过把组件拼装到一起进行编程的方法。

六。数据库

  1. 每个值都唯一标识一条记录的字段为主键;与其他表建立关系而在表中添加的,其他表主键的字段为外键。
  2. 数据库系统=数据文件+DBMS+应用程序
  3. 索引是提升数据检索和排序速度的内部机制。一旦在字段上设置了索引,DBMS就会自动为这个字段创建索引表。代价是插入或更新数据的速度降低。
  4. 一般的开发工具都包含了数据对象组件,ADO(activex data object),包括用于建立和dbms链接的connection类,向dbms发送sql语句的command类以及存储返回结果的recordset类等。
  5. 事务控制:事务由若干条sql语句构成。为了防止数据不一致,sql语言设计了三条语句:begin transcation,commit,roll back

七。网络

  1. 集线器hub,负责把各个计算机的网线连接起来。路由器router负责把公司内网络和互联网连接起来。
  2. CSMA/CD:career sense multiple access with collision detection带冲突检测的载波监听多路访问,适用于LAN
  3. MAC:media access control;在每一块网卡所带的rom中,都预先烧录了一个mac地址。使用ipconfig /all可以查看mac地址,前三位代表制造商,后三位代表产品编号。
  4. ip地址中表示分组的部分称为网络地址,表示计算机部分的称为主机地址。子网掩码的作用是标识出网络地址和主机地址的区间,将子网掩码用二进制表示,值为1的对应ip地址中的网络地址,值为0的地址对应主机地址。
  5. DHCP:dynamic host configuration protocol动态主机配置协议,DHCP服务器上记录着可以被分配到LAN内计算机的ip地址范围和子网掩码的值。路由器和dns服务器的ip地址也可以通过dhcp获得。
  6. 路由器的工作原理:查看附加到数据的ip地址中的网络地址部分,只要不是发给lan内的数据,就把它发送给LAN外,也就是WAN。路由表中,只会记录相邻路由器的路径。route print命令可以查看路由表信息
  7. tracert 目标路径,查看路由器的路由过程;如tracert www.baidu.com
  8. DNS服务器,部署在各个LAN中,记录着主机名和ip地址的对应关系表。hostname命令可以列出主机名主机名+dns后缀就是FQDN(fully qualified domain name完整限定域名 )
  9. ARP(address resolution protocol地址解析协议),实现由ip地址到mac地址的转换。向所有lan内的计算机发送数据的过程称为广播;提供了缓存功能,将得到的mac地址和ip地址的关系缓存到内存中,这些缓存关系称为arp缓存表。用arp -a命令可以查看arp缓存表内容。
  10. tcp协议使用被称作tcp端口号的数字识别上层的应用程序,有一些是预先定义的。如web 80,smtp 25发送,110接收

八。加密解密

  1. 密钥每增长一倍,花费时间就会翻10倍。
  2. 对称密钥加密技术:加密解密所用密钥相同
  3. 非对称加密技术,也称为公开密钥加密技术,公钥公开,私钥属个人所有
  4. MD5:message digest5,使用的是发送者的密钥对儿,用发送者的私钥加密,接受者用发送者的公钥解密;如果计算出的信息摘要和发送的匹配,则证明文件在传输过程没有被篡改。

九。xml

  1. xml:extensible markup language,可扩展标记语言
  2. 通过添加标签为数据赋予意义的行为称为“标记”,为这种行为定义规则的语言就是“标记语言”。
  3. xml仅仅限定了进行标记时标签的书写格式,并没有限定标签的使用方式,通常把这种用于创造语言的语言称作“元语言”。
  4. xml的主要约束:
  5. xmlns:xml nameSpace
  6. DTD:document type definition,定义xml实例的结构。
  7. SOAP:simple object access protocol,部署分布式服务

猜你喜欢

转载自blog.csdn.net/Trival_dreamy/article/details/81982976