1

学习思路

  • 其实不仅是计算机, 其他学问亦是如此。 首先要划出一个“知识的范围”, 精通一门学问所必知必会的知识都在这个范围内。 其次是掌握该范围内每个知识点中“基础中的基础知识”。 最后是能独当一面的“目标”, 即掌握了这些知识可以做什么。
  • 下面就以学习音乐为例说明这三点。 首先, 划出的“知识范围” 是节奏、 旋律、 和弦这三个知识点。 所谓“基础中的基础知识”, 对于节奏来说就是四拍子( 大、 大、大、 大), 对于旋律来说就是 C 大调( do re mi fa so la si do), 对于和弦来说就是大三和弦( do mi so)。 以四拍子为基础就能理解更加复杂的三拍子或五拍子; 以 C 大调为基础就能理解更加复杂的降 B 小调; 以大三和弦为基础就能理解更加复杂的减三和弦。 而最终的“目标” 就是能够自己作曲并演奏, 尽管这时仅能完成很简单的曲子。

计算机的三个根本性基础

  1. 计算机是执行输入、运算、输出的机器
    无论是多么复杂的功能, 都是通过组合一个又一个由输入、 运算、 输出构成的流程单位来实现的
  2. 程序是指令和数据的集合
    无论程序多么高深、 多么复杂, 其内容也都是指令和数据
  3. 计算机的处理方式有时与人们的思维习惯不同
    对于计算机来说,什么都是数字

2、3

4——程序设计

程序流程

程序的流程分为三种

  • 顺序执行
  • 条件分支
  • 循环

不论规模多么大多么复杂的程序,都是通过把以上三种流程组合起来实现

流程图

  • 流程图的方便之处在于它并不依赖于特定的编程语言。可以认为编程语言只不过
    是将流程图上的流程用文字( 程序) 重现出来罢了。 各种编程语言的差异正如一种自然语言中各地方言的差异一样。 只要给出了详细的流程图, 就可以编写出基本相同的程序。 笔者也曾有过这样的经历, 画流程图花费了一个月之久, 但是对照着流程图专心写程序只需要两天的时间。
    实际上用于表示程序流程的最基础的符号并没有多少。 只要先记住表 4.1 中的符号就足够了。 就连笔者也很少使用这张表以外的符号


表示循环程序块的“帽子”和“短裤”

  • “帽子” 和“短裤” 把需要反复执行的步骤包围起来。 如果要在循环中嵌套循环, 就需要对每个循环分别使用一对“帽子” 和“短裤”。 为了区分成对出现的“帽子” 和“短裤”,要为每一对起不同的名字


知乎观点

  • 初学者还是要的,可以帮助理清思路,但是反对学院派教科书式的流程图

结构化程序设计

  • 所谓结构化程序设计就是“为了把程序编写得具备结构性, 仅使用顺序执行、 条件分支和循环表示程序的流程即可, 而不再使用跳转指令”。“

流程图设计

  • 编程时,我们考虑如何把若干条指令组合起来并形成一个解决问题的流程。如果能够想出可以巧妙实现“石头剪刀布游戏” 的流程, 那么这个问题也就解决了, 换言之算法也就实现了。
  • 思考算法时的要点是要分两步走, 先从整体上考虑程序的粗略流程, 再考虑程序各个部分细节的流程。 这是一种相当简单的流程, 虽然或多或少会有例外, 但是几乎所有的程序从整体来看都具有一个一成不变的流程, 那就是“初始化处理” →“循环处理” →“收尾处理”。


特殊的程序流程——事件驱动

  • 程序员们经常用事件驱动的方式编写那些工作在 GUI( GraphicalUser Inteface, 图形用户界面) 环境中的应用程序, 例如 Windows 操作系统中的应用程序。事件驱动其实有点像两个程序在对话。
  • 下面列出了一段用 C 语言编写的 Windows 应用程序, 这里只列出了程序的骨架。 在程序中有WinMain() 和 WndProc() 两个函数( 代码块)。 WinMain() 是在程序启动时被调用的主例程( Main Routine)。 而 WndProc() 并不会被诸位所编写的程序本身调用, Windows 操作系统才是 WndProc() 的调用者。


事件驱动

  • 通常把用户在应用程序中点击鼠标或者敲击键盘这样的操作称作“事件”( Event)。 负责检测事件的是 Windows。 Windows 通过调用应用程序的 WndProc() 函数通知应用程序事件的发生。 而应用程序则根据事件的类型做出相应的处理。 这种机制就是事件驱动。通常把用户在应用程序中点击鼠标或者敲击键盘这样的操作称作“事件”( Event)。 负责检测事件的是 Windows。 Windows 通过调用应用程序的 WndProc() 函数通知应用程序事件的发生。 而应用程序则根据事件的类型做出相应的处理。 这种机制就是事件驱动。
  • 可以说事件驱动也是一种特殊的条件分支, 它以从 Windows 送来的通知为条件,根据通知的内容决定程序下一步的流程

状态转换图

  • 虽然事件驱动的流程也可以用流程图表示, 但是由于要排列很多的菱形符号( 表示条件分支), 画起来会很复杂。 所以下面介绍便于表示事件驱动的“状态转化图”。 状态转化图中有多个状态, 反映了由于某种原因从某个状态转化到另一个状态的流程。


状态转换表

  • 如果觉得上面的图画得麻烦,还可以弄成状态转换表

5

算法

  • 算法就是“把解决问题的步骤无一遗漏地用文字或图表示出来”。 要是把这里的“用文字或图表示” 替换为“用编程语言表达”, 算法就变成了程序
  • 步骤必须是明确的并且步骤数必须是有限的

算法书

  • 笔者建议从事编程工作的人手中要有一本能作为算法辞典的书 。就像新入职的员工为了书写商务文书去买“商务文书范文” 方面的书一样。 虽然算法应该由诸位自己思考, 但是如果遇到了不知道从哪里下手才好的问题, 也可以利用这类辞典查查已经发明出来的算法
  • 作为程序员的修养,还应该了解一些经典的算法

哨兵算法:

  • 假设有 100 个箱子, 里面分别装有一个写有任意数字的纸条, 箱子上面标有 1~100 的序号。 现在要从这100 个箱子当中查找是否有箱子装有写着要查找数字的纸条。

常规算法:

  • 从第一个箱子开始依次检查每个箱子中的纸条。 每检查完一个纸条, 还要再检查箱子的编号( 用变量 N表示), 并进一步确认编号是否已超过最后一个编号了

哨兵处理

  • 添加了一个 101 号箱子, 其中预先放入的纸条上写有正要查找的数字。 这种数据就被称为“哨兵”。通过放入哨兵, 就一定能找到要找的数据了。 找到要找的数据后, 如果该箱子的编号还没有到 101 就意味着找到了实际的数据; 如果该箱子的编号是 101, 则意味着找到的是哨兵, 而没有找到实际的数据。
  • 需要多次反复检查的就只剩下“第 N 个箱子中包含要找的数字吗?” 这一点了, 程序的执行时间也因此大幅度地缩减了。

一个算法优化例子

写一个猜拳游戏
判断输赢的时候,方法之一就是根据找所有的可能情况,然后对号入座
但这样写出来的程序比较长

通过分析数字规律我们发现

  • 如果变量 A 和 B 相等就是“平局”
  • 如果用 B+ 1 除以 3 得到的余数与变量 A 相等就是“ 玩家 B获胜”
  • 其余的情况都是“玩家 A 获胜”

根据这个规律写出来的代码就很短小了

先在纸上考虑算法

  • 最后介绍最为重要的一点, 那就是思考算法的时候, 要先在纸上用文字或图表描述出解决问题的步骤, 而不要立刻开始编写代码。
  • 画流程图就可以方便地把算法用图表示出来, 因此请诸位大量地、灵活地运用它。 如果不想画流程图, 也可以用语言把算法描述出来,写成文书。 总之先写到纸上这一点很重要。
  • 在纸上画完或写完流程以后, 再把具体的数据代入以跟踪流程的处理, 确认是否能得到预期的结果。 在验算的时候, 建议使用简单的数据, 这样即使是用心算也能得出正确的结果。

6

变量是怎么来的

  • 依靠指定地址的方式编写程序很麻烦, 所以在 C 语言、 Java、BASIC 等几乎所有的编程语言中, 都是使用变量把数据存储进内存,或从内存中把数据读出来的。
  • char a通过这一行代码就在内存中预留了一块空间, 并为这块空间起了个名字叫作 a。
  • 对于程序员来说, 他们并不需要知道变量 a 被存储到内存空间中的哪个地址上了。 因为当程序运行时是由操作系统为我们从尚未使用的内存空间中划分出一部分分配给变量 a 的。

数组怎么来的

  • 在实际应用的程序中经常需要处理大量的数据, 比如那种用于统计 1000 名职员的工资之类的程序。如果定义大量的变量就很麻烦,于是发明出一种叫数组的东西,通过使用数组,既可以同时定义出多个变量, 又可以提高编写程序的效率。
  • 数组实际上是为了存储多个数据而在内存上集中分配出的一块内存空间, 并且为这块空间整体赋予了一个名字。

算法提醒

  • 即便是有了由睿智的学者们提出的那些了不起的算法和数据结构, 也不能 100% 地依赖它们。 希望诸位要经常自己动脑思考算法和数据结构。 在了解了典型的算法和数据结构( 也就是基础) 之后, 请不要忘记还要灵活地去运用它们。 只要诸位灵活地去运用典型算法和数据结构, 就能创造出出色的原创作品, 而能够创造出原创作品的程序员才是真正的技术者。

7——面向对象

面向对象

  • 面向对象编程是一种基于以下思路的程序设计方法: 将关注点置于对象( Object) 本身, 对象的构成要素包含对象的行为及操作, 以此为基础进行编程。 这种方法使程序易于复用, 软件的生产效率因而得以提升。 其中所使用的主要编程技巧有继承、 封装、 多态三种。
  • 在 C 语言中, 结构体是数据的集合, 它将数据捆绑在一起, 使得我们可以将这些数据看作是一个整体。 而对结构体中的数据进行操作的函数却写在了结构体的外部。 然而在面向对象编程中, 将表示事物行为的函数也放入了这个整体, 这就形成了对象的概念, 使得这个整体既能描述属性, 又能描述行为。

面向对象编程通过把组件拼装到一起构建程序

  • 在面向对象编程中, 使用了一种称为“类” 的要素, 通过把若干个类组装到一起构建一个完整的程序。 从这一点来看, 可以说类就是程序的组件( Component)。 面向对象编程的关键在于能否灵活地运用类

类是怎么来的

  • 在大型程序中需要用到大量的函数和变量。 假设要用非面向对象的编程方法编写一个由 10000 个函数和 20000 个变量构成的程序, 那么结果就很容易是代码凌乱不堪, 开发效率低到令人吃惊, 维护起来也十分困难。于是一种新的编程方法就被发明出来了, 即把程序中有关联的函数和变量汇集到一起编成组。 这里的组就是类。
  • 因为程序的构成要素中只有函数和变量, 所以把它们分门别类组织起来的类也理所当然地成了程序的 组 件。 通 常 把 汇 集 到 类 中 的 函 数 和 变 量 统 称 为 类 的“成 员 ”( Member)

面向对象编程能够提升程序的开发效率和可维护性

  • 在使用面向对象编程语言开发时, 并不是所有的类都必须由程序员亲自编写。 大部分的类都已内置于面向对象编程语言中了, 这些类可以为来自各个领域的程序员所使用。 通常将像这样的一组类( 一组组件) 称作“类库”。 通过利用类库可以提升编程的效率。 还有一些类原本是为开发其他程序而编写的, 如果可以把这些现成的类拿过来使用,那么程序的开发效率就更高了。
  • 所谓企业级的程序, 指的是对可维护性有较高要求的程序。 可维护性体现在当程序投入使用后对已有功能的修改和新功能的扩充上。如果所维护的程序是用一组类组装起来的话, 那么维护工作就轻松了。

例子

  • 之所以这样说, 是因为作为维护对象的函数和变量, 已经被汇聚到名为类的各个组中了。 举例来说, 假设我们已经编写出了一个用于员工薪资管理的程序。 随着薪资计算规则的变更, 程序也要进行修改, 那么需要修改的函数和变量就应该已经集中在一个类中了, 比如一个叫作 CalculationClass 的类( 如图 7.2 所示)。 也就是说, 维护时没有必要去检查所有的类, 只需修改类 CalculationClass 就可以了。
  • 开发小组中的全体成员没有必要都对程序中的方方面面有所了解, 而是组中有些人只负责制作组件( 类), 有些人只负责使用组件。


接口

  • 对于创造类的程序员, 他们考虑的是程序的开发效率和可维护性,并决定应该将什么抽象为类。 如果一个类的修改导致其他的类就也要跟着修改, 这样的设计是不行的。 必须把组件设计成即使是坏了( 有缺陷了) 也能轻松地替换, 就像在汽车或家电等工业制品中所使用的组件那样
  • 在功能升级后, 旧组件能够被新组件所替换的设计也是必不可少的。 因此, 创造者和使用者之间就需要事先商定类的使用规范。 请诸位记住, 对于类的使用者而言“类看起来是什么样子的” 这种关于规范的描述通常被称为“接口”( Interface)。 例如只要把接口告诉合作公司, 就可以要求他们编写类, 编写出的类也就自然能够与程序中的其他部分严丝合缝地拼装起来。 在面向对象语言中, 也提供了用于定义接口的语法。

面向对象编程是适用于大型程序的开发方法

  • 假设一个程序需要 10000 个函数和 20000 个变量,如果把这个程序用 100 个类组织起来, 那么平均一个类里就只有 100个函数和 200 个变量了。 程序的复杂度也就降到了原来的 1%。 而如果使用了封装这种编程技巧( 即将函数和变量放入黑盒,使其对外界不可见), 还可以更进一步降低复杂度。

设计程序

  • 在进行面向对象编程的设计时, 要在一开始就把所需要的类确定下来, 然后再在每个类中列举出该类应该具有的函数和变量, 而不要到了后面才把零散的函数和变量组织到类中。 也就是说, 要一边观察作为程序参照物的现实世界, 一边思考待解决的问题是由哪些事物( 类) 构成的。 正因为在设计时要去关注对象, 这种编程方法才被称为面向对象编程( Object Oriented Programming, 其中的 Oriented 就是关注的意思)。
  • 而在那些传统的开发方法中, 进行设计则是要先考虑程序应该由什么样的功能和数据来构成, 然后立即确定与之相应的函数和变量。 与此相对在面向对象编程的设计中, 因为一上来就要确定有哪些类, 从而构成程序的函数和变量就必然会被组织到类中。

面向对象时序图

  • 可以使用 UML 中的“时序图”和“协作图” 表示程序的运行过程

在面向对象编程中使用继承、封装和多态

  • 继承指的是通过继承已存在的类所拥有的成员而生成新的类。
    只要去继承已存在的类, 就能高效地生成新的类。 如果一个类被多个类所继承, 那么只要修正了这个类, 就相当于把继承了这个类的所有类都修正了。
  • 封装指的是在类所拥有的成员中, 隐藏掉那些没有必要展现给该类调用者的成员。
    只要通过封装把外界不关心的成员隐藏起来, 类就可以被当作是黑盒, 变成了易于使用且便于维护的组件了。 而且由于隐藏起来的成员不能被外界所访问, 所以也就可以放心地随意修改这些成员。
  • 多态指的是针对同一种消息, 不同的对象可以进行不同的操作
    只要利用了多态, 生成对同一个消息可以执行多种操作的一组类, 使用这组类的程序员所需要记忆的东西就减少了。
  • 总之, 无论是哪一点, 都是面向对象编程所带来的好处, 都可以实现开发效率和可维护性的提升。

类和对象

  • 虽然定义了类,但是我们还无法直接使用类所持有的成员,要想使用就必须在内存上生成该类的副本, 这个副本就是对象。
  • 举例来说, 假设我们定义了一个表示企业中雇员的类Employee。 如果仅仅是定义完就可以立刻使用类 Employee 中的成员,那么程序中实际上就只能存在一名雇员。 而如果规定了要先创建类Employee 的对象才能使用, 那么就可以需要多少就创建多少雇员了( 通过在内存上创建出类 Employee 的副本)。

类的使用

  • 而使用类的程序员可以通过三种方法使用类。 这三种方法分别是: 1. 仅调用类所持有的个别成员( 函数和变量) ; 2. 在类的定义中包含其他的类( 这种方法被称作组合) 3. 通过继承已存在的类定义出新的类。 应该使用哪种方法是由目标类的性质以及程序员的目的决定的

8——数据库

数据库构成要素

  • 数据库系统的构成要素包括“数据文件”“DBMS”“应用程序” 三部分。
  • 在小型系统中, 把三个要素全部部署在一台计算机上, 称作“独立型系统”。
  • 在中型系统中, 把数据文件部署在一台计算机上, 并且使数据文件被部署了 DBMS 和应用程序的多台计算机共享, 这样的系统被称为“文件共享型系统”。
  • 在大型系统中, 把数据文件和 DBMS 部署在一台( 或者多台) 计算机上, 然后用户从另外一些部署着应用程序的计算机上访问, 这样的系统被称作“客户端/ 服务器型系统”。 其中部署着数据文件和 DBMS 的计算机是服务器( Server), 即服务的提供者; 部署着应用程序的计算机是客户端( Client), 即服务的使用者。
  • 如果把服务器和客户端之间用互联网联结起来, 就形成了 Web 系统。 在 Web 系统中, 一般情况下应用程序也是部署在服务器中的, 在客户端只部署 Web 浏览器

设计数据库

  • 使用名为 Microsoft Access 的 DBMS 实现一个独立型系统。 应用程序部分, 使用 Visual Basic 6.0 编写
  • 几乎所有的 DBMS 都提供了通过可视化界面设置数据属性的工具。通过这种工具, 既可以生成逻辑上的表, 又可以生成物理上存储数据
    的数据文件。
  • 所谓规范化, 就是将一张大表分割成多张小表, 然后再在小表之间建立关系, 以此来达到整理数据库结构的目的。 通过规范化, 可以形成结构更加优良的数据库。 DBMS 提供了可视化的工具, 用户仅仅通过简单的操作就可以进行规范化
  • 用主键和外键在表间建立关系

索引

  • 可以在表的各个字段上设置索引( Index), 这也是 DBMS 所具备的功能之一。 虽然索引和键这两个概念容易让人混淆, 但其实两者是完全不同的。 索引仅仅是提升数据检索和排序速度的内部机制。 一旦在字段上设置了索引, DBMS 就会自动为这个字段创建索引表。索引表是一种数据结构, 存储着字段的值以及字段所对应记录的位置。
  • 例如, 如果在顾客表的顾客姓名字段上设置了索引, DBMS 就会创建一张索引表( 如图 8.13 所示), 表中有两个字段, 分别存储着顾客姓名和位置( 所对应的记录在数据文件中的位置)。 与原来的顾客表相比, 索引表中的字段数更少, 所以可以更快地进行数据的检索和排序
  • 当查询数据时, DBMS 先在索引表中进行数据的检索和排序, 然后再根据位置信息从原来的数据表中把完整的记录取出来。 索引所起的就是“目录” 的作用。 与图书的目录一样, 数据库的索引也是一种能够高效地查找目标数据的机制。

能否向所有字段加上索引?

  • 一旦设置了索引, 每次向表中插入数据时, DBMS 都必须更新索引表。 提升数据检索和排序速度的代价, 就是插入或更新数据速度的降低。 因此, 只有对那些要频繁地进行检索和排序的字段, 才需要设置索引。

9

有了MAC地址为什么要IP地址

  • 因为企业或组织需要对计算机分组管理, 但是他们却没有办法把 MAC 地址前面的若干位统一起来。 而且在互联网那种把全世界的计算机都连接在一起的大型网络中, 又必须要有一种机制能够把数据的发送目的地像邮政编码那样整理并标识出来。 假如在互联网中只能使用 MAC 地址, 那么会发生什么呢? 在接入互联网的数量众多的计算机中, 只有尚未进行任何分组处理的编号( MAC 地址)。 这样的话, 仅仅是寻找信息的发送目的地就要花费大量的时间。
  • 通过 IP 地址就可以轻松地对计算机进行分组管理了。 比如用 IP 地址中第 1 段到第 3 段的数值代表公司, 用第 4 段的数值代表公司内部的计算机。

DHCP服务器

  • DHCP 的全称是 Dynamic Host Configuration Protocol( 动态主机设
    置协议)。
  • 在windows网络设置中,有自动获得 IP 地址” 这个选项。 这个选项使得计算机在启动时会去从 DHCP 服务器获取 IP 地址和子网掩码, 并自动地配置它们。
  • DHCP 服务器上记录着可以被分配到 LAN 内计算机的 IP 地址范围和子网掩码的值。 作为 DHCP 客户端的计算机在启动时, 就可以从中知道哪些 IP 地址还没有分配给其他计算机。
  • 默认网关,路由器的 IP 地址也可以从 DHCP 服务器获取。 最后再请诸位注意一点, 这里选择了“自动获得 DNS 服务器地址” 这一选项。也就是说, DNS 服务器的 IP 地址也可以从 DHCP 服务器获取。

10

11——xml

12

所谓设计,就是拆解

  • 庞大复杂的事物往往无法直接做出来。 这个道理不仅适用于计算机系统, 也同样适用于建筑物或是飞机。 人们往往要把庞大复杂的事物先分解成细小简单的要素来进行设计。 有了各个要素的设计图, 整体的设计图也就出来了。
  • 老一辈工程师们已经发明出了可作为规范的各种各样的设计方法, 这些方法之间的差异只是拆解时的关注点不同。

计算机是怎么跑起来的——简记相关推荐

  1. 计算机是怎样跑起来的

    一直对「程序如何在计算机中跑起来的」很感兴趣,也看过一些相关的书籍和文章,前段时间在多看阅读上看到一本相关的书,用了几天时间看完后,觉得很不错,用简单易懂的语言,围绕计算机是怎样跑起来的,把相关的知识 ...

  2. 《计算机是怎样跑起来的》学习笔记

    <计算机是怎样跑起来的>学习笔记 前言 1 计算机的三大原则 2 试着制造一台计算机吧 3 体验一次手工编程 4 程序像河水一样流动着 5 与算法成为好朋友的七个要点 5.1 算法中解决问 ...

  3. 计算机是如何跑起来的--读书笔记

    计算机是怎样跑起来的 1.首先要划出一个"知识的范围",精通一门学问必知必会的知识都在这个范围之内.其次是掌握该范围内每个知识点中"基础中的基础知识".最后是能 ...

  4. 《计算机是怎样跑起来的》优化使用VBScript语言编写的石头剪刀布游戏

    今天在看失泽久雄先生著写的<计算机是怎样跑起来的>时,其中有一段使用VBScript编写的石头剪刀布游戏.由于自己是个小白,从来没听说过这种不是特别热门的脚本语言,一看用windows系统 ...

  5. 计算机是怎样跑起来的笔记摘要

    文章摘抄于矢泽久雄的<计算机是怎样跑起来的>,用于个人学习,内容有不当或错误的地方请见谅.让我们一起学习,共同进步. 文章目录 第一章 计算机三大原则 1.1三个根本性基础 1.2计算机网 ...

  6. 计算机是怎样跑起来的(读书笔记)

    计算机是怎样跑起来的 计算机的三大原则 计算机的三个根本性基础 输入.运算.输出是硬件的基础 软件是指令和数据的集合 计算机的处理方式和人们的思维习惯不同,对计算机来说什么都是数字 只要理解了三大原则 ...

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

    推荐语 这本书用通俗的语言讲解计算机相关组成,内容比较浅显易懂,适合初级程序员学习,中级程序员查漏补缺,不适合高级程序员. 给个四星级推荐(满分五星). 关注公众号<嵌入式小散修>,回复 ...

  8. rw_《计算机是怎样跑起来的》4-11 章

    2016.07.15 - 08.19 <计算机是怎样跑起来的>4-11 章. - 矢泽久雄 / 著 - 胡屹 / 译 个人学习笔记. [知识的范围(编程)] 4 程序像河水一样流淌着 问题 ...

  9. 计算机是怎样跑起来在线看,计算机是怎样跑起来的

    领取成功 您已领取成功! 您可以进入Android/iOS/Kindle平台的多看阅读客户端,刷新个人中心的已购列表,即可下载图书,享受精品阅读时光啦! - | 回复不要太快哦~ 回复内容不能为空哦 ...

最新文章

  1. 电脑桌面壁纸app_「Dynamic Wallpaper」Mac动态桌面壁纸软件,200+精美视频素材
  2. 6.ajax应用,ajax应用
  3. python3经典实例_Python3十大经典错误及解决办法
  4. EdgeRoutine技术专家教你把JS代码跑到CDN边缘
  5. 在Session中存储和获取
  6. 读RESTful API 设计指南心得体会
  7. web前端实战小游戏两则(附源码)
  8. 终极算法——第二章:终极算法
  9. 双击div变成可编辑区的简单实现
  10. 华为云influxdb+grafana+ prometheus安装和如何外网访问华为云+java环境安装配置+jmeter安装配置+Jmeter后端监听器+非GUI执行jmeter脚本
  11. 列宽一字符等于多少厘米_excel表格换算厘米的方法
  12. Java 8 获取本(天周月季度年)的开始、结束时间
  13. MAC软件推荐(Java方向)
  14. 《斩魔问道》突破传统玩法,实时强战PK,爆裂高清画质的仙侠手游巨作
  15. 竟有比双十一更令人发指的福利……
  16. Android studio设计一个简易微信界面
  17. RFID固定资产管理系统更好更快捷的掌握资产情况 资产盘查好帮手
  18. 学计算机专业的人,如何让别人明白“学习或从事计算机专业的人不一定会修电脑”,只是会秃头!...
  19. Tomcat8:java.lang.IllegalArgumentException: 为此cookie指定的域[.xxx.com]无效
  20. 汽车零部件电商_精准电商解决方案

热门文章

  1. 北师大计算机在线作业9,北师大网络教育《计算机动画》在线作业-20210614020942.pdf-原创力文档...
  2. 安卓手机管理软件_安卓苹果手机电池使用久了该不该换
  3. C++ - CString 用法
  4. oss调整图片大小宽高
  5. 晨读一年的复盘会议_一年后,在家中远程办公,网真和视频会议
  6. HTTP-XMLHttpRequest
  7. matlab音乐键盘模拟,科学网—[原][Matlab][04] Midi音乐键盘 - 王楠的博文
  8. 全国计算机二级算国奖吗,如何区分竞赛证书的等级和含金量?(太多人傻傻分不清国奖、省奖、市奖)...
  9. [web效果实现-3] 拼音排序通讯录实现
  10. php gbk转拼音