博客
关于我
校招面试题演练
阅读量:243 次
发布时间:2019-03-01

本文共 1527 字,大约阅读时间需要 5 分钟。

技术面试备考内容总结

一、语言与编程基础

  • static关键字作用

    • 加static:将变量或函数限定在当前类或文件中,仅在文件内可见。
    • 不加static:变量或函数在整个程序范围内可见。
  • const关键字与宏定义的区别

    • const:常量,表示只读,编译时已知类型,运行时不可修改。
    • 宏定义:预处理阶段展开,支持类型检查,但不具备类型安全性。
  • 虚函数实现

    • 虚函数表:记录类的虚函数地址,用于子类重写父类虚函数。
    • 虚函数指针:指向当前对象的虚函数表,存在于每个对象中。
  • 进程与线程区别

    • 线程:进程的轻量级执行单元,共享地址空间和资源,生命周期短。
    • 进程:资源分配独立,地址空间独占,生命周期长。
  • 线程同步与通信

    • 线程间:全局变量、自定义消息、std::promise等。
    • 进程间:管道、共享内存、信号量、套接字等。
  • 常见线程模型

    • 单线程模型:简单的任务执行。
    • 多线程模型:并发执行多任务,适合资源密集型任务。
  • 快排时间复杂度与实现

    • 时间复杂度:O(N log N),平均每次比较log N次。
    • 实现:分治策略,递归或迭代方式。
  • 二、算法与数据结构

  • 二叉树中序遍历

    • 递归实现:直接递归访问左、右节点。
    • 非递归实现:使用栈或队列模拟递归过程。
  • 寻找两个有序数组中的第N大元素

    • 合并法:时间复杂度O(N),空间复杂度O(N)。
  • 分糖果问题

    • 思路:将糖果分配给比自己高的孩子,逐层解决。
  • 常见排序算法

    • 堆排序:适合稳定排序,时间复杂度O(N log N)。
  • 三、操作系统与网络

  • 进程与线程切换

    • 进程切换:资源分配,频繁切换效率低。
    • 线程切换:更高效,适合I/O密集型任务。
  • TCP与UDP通信

    • TCP:可靠传输,三次握手建立连接。
    • UDP:无连接,传输速度快。
  • 网络协议

    • HTTP与HTTPS:HTTP明文传输,HTTPS加密传输。
    • HTTP状态码:常见状态码包括200、301、404、500等。
  • 网络设备与OSI模型

    • 路由器:负责将数据包从一个网络接口发送到另一个网络接口。
    • OSI模型:七层协议架构,包括物理层、数据链路层等。
  • 四、数据库与系统设计

  • 数据库索引

    • 适合建立索引:查询字段频繁访问或区分度高的字段。
    • 不适合建立索引:非键字段、经常更新字段。
  • 数据库事务与隔离性

    • 事务特性:原子性、一致性、隔离性、持久性。
    • 实现隔离性:通过锁机制或读写红蓝机制。
  • 缓存策略

    • FIFO:先进先出,简单实现。
    • LRU:按访问频率或最近使用时间淘汰。
  • 五、高级编程与系统优化

  • 智能指针

    • 四种智能指针shared_ptrunique_ptrweak_ptrintrusive_ptr
  • 内存管理与垃圾回收

    • 动态内存分配:使用newdelete
    • 智能指针:自动管理内存生命周期。
  • 多态与虚函数

    • 多态实现:通过虚函数和虚函数表。
    • 钻石继承:避免多个虚函数引起的异常。
  • 线程与进程同步

    • 互斥机制:确保多个线程/进程访问同一资源时不发生冲突。
    • 同步机制:信号量、互斥锁、临界点等。
  • 六、其他常见问题

  • TCP四次握手

    • 四次握手:确保数据可靠传输,防止丢失。
    • 2MSL等待:防止数据丢失和已失效报文段。
  • 网络协议与 socket 编程

    • socket:描述符用于网络通信,支持TCP和UDP协议。
    • I/O多路复用selectpollepoll均用于监控多个I/O事件。
  • 内存管理与缓存

    • 缓存策略:FIFO、LRU、LFU等。
    • 内存泄漏:避免使用newdelete不匹配,或不释放动态内存。
  • 数据结构与算法

    • 树与图:应用场景包括排序、搜索、网络路由等。
    • 图遍历:深度优先搜索、广度优先搜索等。

  • 以上内容涵盖了常见的技术面试问题,结合实际开发经验,可针对性地进行准备和练习。

    转载地址:http://yeev.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现naive string search字符串搜索算法(附完整源码)
    查看>>
    Objective-C实现natural sort自然排序算法(附完整源码)
    查看>>
    Objective-C实现nested brackets嵌套括号算法(附完整源码)
    查看>>
    Objective-C实现nevilles method多项式插值算法(附完整源码)
    查看>>
    Objective-C实现newtons second law of motion牛顿第二运动定律算法(附完整源码)
    查看>>
    Objective-C实现newton_raphson牛顿拉夫森算法(附完整源码)
    查看>>
    Objective-C实现NLP中文分词(附完整源码)
    查看>>
    Objective-C实现NLP中文分词(附完整源码)
    查看>>
    Objective-C实现not gate非门算法(附完整源码)
    查看>>
    Objective-C实现number of digits解字符数算法(附完整源码)
    查看>>
    Objective-C实现NumberOfIslands岛屿的个数算法(附完整源码)
    查看>>
    Objective-C实现numerical integration数值积分算法(附完整源码)
    查看>>
    Objective-C实现n皇后问题算法(附完整源码)
    查看>>
    Objective-C实现O(E + V) 中找到 0-1-graph 中的最短路径算法(附完整源码)
    查看>>
    Objective-C实现OCR文字识别(附完整源码)
    查看>>
    Objective-C实现odd even sort奇偶排序算法(附完整源码)
    查看>>
    Objective-C实现ohms law欧姆定律算法(附完整源码)
    查看>>
    Objective-C实现P-Series algorithm算法(附完整源码)
    查看>>
    Objective-C实现page rank算法(附完整源码)
    查看>>
    Objective-C实现PageRank算法(附完整源码)
    查看>>