![translation](https://cdn.durumis.com/common/trans.png)
这是AI翻译的帖子。
选择语言
durumis AI 总结的文章
- 总结了新手开发者面试中常见的技术相关问题,涵盖内存区域、数据结构、数据库、编程、页面替换算法、进程和线程、OSI 七层模型、TCP 和 UDP 等主题,并提供相应的解释。
- 通过简洁的概念解释和典型示例帮助理解每个主题。
- 包含了开发者在准备面试时需要掌握的基本技术知识,提供有用的信息。
非计算机专业,如何成为一名开发人员
#14. 新手开发人员常问的技术面试内容
[主内存的区域]
- 代码区域:存储程序源代码的区域,CPU 从代码区域获取存储的指令(源代码、函数、控制语句)并处理。例如,当用 C 语言编写的程序执行时,代码区域存储了该程序的源代码。
- 数据区域:存储全局变量和静态变量的区域,从程序开始分配,直到程序结束才释放。例如,当用 C 语言编写的程序执行时,数据区域存储了该程序中声明的全局变量或静态变量。
- 堆栈区域:程序使用的临时内存区域,存储与函数调用相关的局部变量和参数。在函数调用时分配,函数结束时释放。例如, 当用 C 语言调用函数时,该函数使用的局部变量或参数将在堆栈区域分配。
- 堆区域:用户动态分配和释放内存空间的区域。例如,当用 C 语言使用 malloc() 函数动态分配内存时,分配的内存 空间将存储在堆区域。
[数据结构]
- 栈:后进先出(LIFO)的数据结构。例如,计算机中的“后退”按钮类似于堆栈。之前访问过的页面存储在栈中, 点击“后退”按钮时,会取出最近存储的页面,与之类似。
- 队列:先进先出(FIFO)的数据结构。例如,在银行取号并在等候区排队,类似于队列。先到达的人先被处理,最后 到达的人最后被处理,与之类似。
- 树:将数据以层次结构表示的数据结构。例如,HTML 的 DOM 树类似于树。HTML 页面结构以树的形式表示, 从根节点 html 标签开始,依次表示子节点。
- 堆:二叉树结构的一种,分为最大堆和最小堆。例如,在优先级队列中,优先级最高的 数据位于堆的根节点,其次优先级的数据位于子节点,这就是最大堆的示例。
[RDBMS 和 NoSQL]
- RDBMS:通过严格的模式对数据进行结构化定义和管理的数据库。可以分布式存储数据,易于修改。例如,MySQL、 Oracle、MS-SQL 等是 RDBMS 的典型例子。
- NoSQL:通过灵活的模式存储和管理数据的数据库。适用于大容量数据处理和存储,可扩展性也高。例如,MongoDB、 Cassandra、HBase 等是 NoSQL 的典型例子。
[过程式和面向对象]
- 过程式编程:强调顺序处理的编程技术。C、Pascal 等语言是过程式语言。
- 面向对象编程:以对象(Object)为基础,将数据和过程逻辑地捆绑在一起进行处理的方法。Java、C++、Python 等语言是面向对象的语言。例如,在汽车模拟程序中,将汽车表示为对象,将汽车的属性(颜色、加速度等)表示为数据, 将汽车执行的功能(行驶、停止等)表示为方法。
[重写和重载]
- 重写:在子类中重新定义父类拥有的方法。当子类调用父类的方法时,会执行子类中重新定义的方法,而不是父类 的方法。例如,Java 中的 toString() 方法就是重写的例子。
- 重载:定义多个具有相同名称的方法,但参数类型和数量不同,以响应不同类型的调用。多个具有不同参数 但相同名称的方法将运行。例如,Java 中的 print() 方法就是重载的例子。
[页面置换算法]
- FIFO:将最先加载到物理内存中的页面替换。在计算机中发生的“从任务栏中关闭”也类似于 FIFO 算法。 第一个运行的程序最后显示并关闭,与之类似。
- LRU:替换最长时间未使用的页面。类似于“应用程序关闭应用程序”,它会终止长时间不使用的应用程序中 最老的应用程序。
- LFU:替换引用次数最少的页面。例如,在浏览器中,关闭使用次数最少的选项卡类似于 LFU 算法。
- MFU:替换引用次数最多的页面。MFU 算法使用率不高。
[进程和线程]
- 进程:从操作系统分配的执行作业单元,指程序。如果多个进程同时执行,则每个进程都会分配独立的内存空间 和 CPU。
- 线程:在进程中运行的执行单元,共享进程分配的资源运行。例如,在网页浏览器中,每个选项卡不是进程, 而是线程。
[OSI 7 层]
- 应用层:连接用户和网络的层,包括 HTTP、FTP、SMTP 等协议。
- 表示层:定义数据的表示方式的层,包括 JPEG、MPEG、SSL 等协议。
- 会话层:管理两个通信系统之间会话的层。
- 传输层:负责数据传输的层,包括 TCP、UDP 等协议。
- 网络层:设置用于传输数据的路径的层,包括 IP、ICMP 等协议。
- 数据链路层:通过物理地址(MAC 地址)传输数据的层,包括以太网、令牌环等协议。
- 物理层:负责物理连接和传输介质通信的层。
[TCP 和 UDP]
- TCP:连接型服务,以可靠的方式传输数据。通过 3 路握手和 4 路握手方式建立或断开连接。例如,在网站上登录 或传输文件时,使用 TCP 方式。
- UDP:无连接服务,不进行数据传输的信号处理,数据可靠性低,但处理速度快。例如,视频流或在线游戏等, 需要快速传输,因此使用 UDP 方式。