面试基础知识记录

  1. 内存碎片怎么产生的
  • 内存碎片通常分为内部碎片和外部碎片:
  • 内部碎片是由于采用固定大小的内存分区,当一个进程不能完全使用分给它的固定内存区域时就产生了内部碎片,通常内部碎片难以完全避免;
  • 外部碎片是由于某些未分配的连续内存区域太小,以至于不能满足任意进程的内存分配请求,从而不能被进程利用的内存区域。
  • 现在普遍采用的段页式内存分配方式就是将进程的内存区域分为不同的段,然后将每一段由多个固定大小的页组成。通过页表机制,使段内的页可以不必连续处于同一内存区域,从而减少了外部碎片,然而同一页内仍然可能存在少量的内部碎片,只是一页的内存空间本就较小,从而使可能存在的内部碎片也较少。
  1. c++反射
  • 如何通过类的名称字符串来生成类的对象。比如有一个类 ClassA,那么如何通过类名称字符串 “ClassA” 来创建类的对象呢?
  • 反射是指计算机程序在运行时可以访问、检测和修改它本身状态或行为的一种能力。 有点抽象,实际上反射就是程序在运行时动态获取对象信息以及调用对象方法的能力。
  1. 操作系统分页和分段
    链接

  2. 点乘和叉乘的区别
    点乘是向量的内积,几何意义是可以用来表征或计算两个向量之间的夹角,以及在b向量在a向量方向上的投影,结果是标量。
    叉乘又叫向量积、外积、叉积,叉乘的运算结果是一个向量而不是一个标量。并且两个向量的叉积与这两个向量组成的坐标平面垂直。可以通过两个向量的叉乘,生成第三个垂直于a,b的法向量,从而构建X、Y、Z坐标系。

  3. 非递归实现前、中、后序遍历
    利用栈实现

  4. redis怎么实现负责均衡 (一致性hash)

  5. 智能指针
    auto_ptr、unique_ptr、shared_ptr和weak_ptr

  6. 多个客户端怎么同步

  7. 客户端太多,怎么减少服务端压力

  8. Redis怎么优化

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务