计算机基础相关的问题(数据结构、数据库、密码学等)

C/S与B/S

  1. C/S结构,即Client/Server(客户机/服务器)结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端 硬件环境的优势。早期的软件系统多以此作为首选设计标准。

    优点:

    2.1 C/S架构的界面和操作可以很丰富。
    2.2 安全性能可以很容易保证,实现多层认证也不难。
    2.3 由于只有一层交互,因此响应速度较快。
    

    缺点:

    2.4 适用面窄,通常用于局域网中。
    2.5 用户群固定。由于程序需要安装才可使用,因此不适合面向一些不可知的用户。
    2.6 维护成本高,发生一次升级,则所有客户端的程序都需要改变。
    
  2. B/S结构,即Browser/Server(浏览器/服务器)结构,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现

    优点:

    1)客户端无需安装,有Web浏览器即可。
    2)BS架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。
    3)BS架构无需升级多个客户端,升级服务器即可。
    

    缺点:

    1)在跨浏览器上,BS架构不尽如人意。
    2)表现要达到CS程序的程度需要花费不少精力。
    3)在速度和安全性上需要花费巨大的设计成本,这是BS架构的最大问题。
    4)客户端服务器端的交互是请求-响应模式,通常需要刷新页面,这并不是客户乐意看到的。(在Ajax风行后此问题得到了一定程度的缓解)
    

数据库

  1. 数据库的ACID:
    原子性(Atomicity):事务是一个不可再分割的工作单元,事务中的操作要么都发生,要么都不发生
    一致性(Consistency):事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。这是说数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。
    隔离性(Isolation):多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其它事务运行效果。
    持久性(Durability):在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。
    
  2. 数据库的死锁

    原因:

    1.  系统资源不足
    2.  进程运行推进的顺序不合适
    3.  资源分配不当
    

    四个必要条件:

    1.  互斥条件:一个资源每次只能被一个进程使用
    2.  请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放
    3.  不可剥夺条件
    3.  循环等待条件
    

    预防与解除:避免产生的四个条件

    1.  按同一顺序访问对象
    2.  避免事务中的用户交互
    3.  保持事务简短并在同一个批处理中
    4.  使用低隔离级别
    5.  使用绑定连接
    

密码学

  1. RSA算法原理(欧拉定理)

    RSA算法原理

    【技术分享】CTF中RSA的常见攻击方法(没有细看,有时间的话要仔细看看看啊!!!!

数据结构

  1. KMP

  2. 二叉树:

    1.  完全二叉树:若设二叉树的深度为h,除第h层外,其它各层 (1~h-1) 的结点数都达到最大个数,第h层所有的结点都连续集中在最左边,这就是完全二叉树
    
  3. :堆是完全二叉树

  4. 前缀、中缀、后缀表达式

    选B

  5. 线性表:

    • 插入和删除的时间复杂度为:O(n),其余操作(如访问)为O(1)