当前位置:首页 > 公众号精选 > 后端技术指南针
[导读]“互联网企业每年校招的技术面试形式类似,大多是对面试者技术基础的考察。本文面对C++后台开发岗位,收集总结了百余道技术基础题。供大家学习和准备。 ” 文 | Amazing10 c++具有哪些特点和性质,和c有什么区别 指针的作用 全局变量的缺点 c++对象的生命周期

互联网企业每年校招的技术面试形式类似,大多是对面试者技术基础的考察。本文面对C++后台开发岗位,收集总结了百余道技术基础题。供大家学习和准备 



文 | Amazing10




  • c++具有哪些特点和性质,和c有什么区别
  • 指针的作用
  • 全局变量的缺点
  • c++对象的生命周期
  • c和C++中动态分配内存是怎样实现
  • 为什么建议多用组合少用继承
  • 编译语言和解释语言的区别
  • 面对对象的思想,还有什么其它编程思想
  • 多态是什么,有哪几种
  • doule 和float二进制怎么存的,double 1.5 和 float 1.5 的大小
  • c++的对象模型(内存模型,虚函数表,虚函数指针)
  • 有没有了解智能指针
  • dynamic_cast有什么用
  • 智能指针shared_ptr,循环引用的情况怎么办,weak_ptr的弱引用什么意思
  • 野指针是什么
  • lambda函数
  • rand函数需要注意什么
  • c++模板
  • static关键字
  • 常量指针与指针常量
  • 函数参数传常引用和普通函数参数
  • 内存泄漏原因及如何避免
  • 深拷贝和浅拷贝
  • 右值引用
  • 虚表
  • 所有类都有虚表吗
  • C++是单继承还是多继承,菱形继承的问题,为什么虚继承能解决
  • 强制类型转换,static_cast和dynamic_cast的区别,为什么dynamic_cast能够向上向下转
  • RTTI的底层实现原理,如何动态获得类型,怎么判断指针对象的继承关系
  • 函数重载? 有什么用?怎么实现的?为什么不能用返回值不同函数名形参列表相同做重载呢?
  • 重载和重写
  • 结构体和类的区别
  • 拷贝构造和移动构造
  • 什么情况下必须使用拷贝构造函数
  • 内存堆栈对比,分配效率
  • 全局变量放哪儿
  • 碎片会出现在哪内存区域
  • malloc底层实现
  • volatile作用,寄存器
  • new和malloc的区别
  • delete的几种方式
  • 面向对象的特点
  • 子类和父类在构造和析构的时候有什么特点吗,顺序
  • 基类的析构函数,不是虚函数会造成什么问题
  • 纯虚函数和虚函数的区别
  • 引用的作用
  • 常引用
  • 结构体和联合体,对联合不同成员赋值,其它的值会改变吗
  • c++是类型安全的吗
  • const和define的区别,哪种更好
  • 指针和数组的区别
  • 全局变量和局部变量的区别,操作系统和编译器是怎么知道的
  • 标准模板库,哪些数据结构,怎么分类
  • 迭代器
  • 什么时候用vector和list,实现的方案
  • STL vector扩容怎么实现
  • STL中map和unordered_map的区别,两种map的底层实现


  • 设计模式原则

  • 单例模式的线程安全实现

  • 观察者模式

  • 代理模式

  • 为什么要采用工厂模式,策略模式,一定要用吗


  • 常见排序算法及其复杂度,哪些稳定和非稳定

  • 快速排序为什么随机选初始值

  • 建堆的过程及建堆后如何排序

  • 快速排序和归并排序的过程

  • 数据结构知道哪些,对比下数组和链表

  • 链表的作用

  • 红黑树和平衡二叉搜索树

  • 哈希表

  • 哈希冲突解决办法

  • 如何判断图的连通性

  • 堆和栈的区别

  • b+树


  • Linux常用命令,查看系统负载情况,查看端口号,端口号被占用怎么办

  • 如何查看服务器运行时间?看是否有重启和宕机?

  • Linux系统的gdb调试

  • Linux查看进程的命令

  • ping一个ip发生了什么

  • 锁的概念

  • 如何避免死锁

  • 进程和线程的区别

  • 线程同步的方式,读写锁

  • 进程间的通信方式

  • 多线程中对A,B同时加锁的时候,需要注意什么问题(死锁的情况)

  • 如何避免死锁

  • epoll和select区别,水平触发和边沿触发

  • Reactor模式,调度器、工作线程和请求队列都会干什么,状态发生什么改变

  • 单进程如何进行IO复用

  • epoll的单线程

  • select的实现需要多线程吗

  • 虚拟内存和物理内存

  • 为什么用多线程,不同线程共享栈吗

  • 软中断什么时候发生

  • 僵尸进程、孤儿进程

  • 操作系统复制粘贴如何实现

  • 页面置换算法

  • 进程调度算法

  • 线程池怎么实现



  • TCP的TIME_WAIT 和CLOST_WAIT

  • time_wait 和close_wait,客户端断开连接了,服务器会怎样

  • TCP的可靠性,超时重传怎么实现

  • UDP和TCP对比

  • http状态码

  • HTTP和HTTPS

  • HTTPS加密过程

  • 非对称加密和对称加密算法

  • 代理

  • udp的限制,udp是有序还是无序 

  • 输入一个URL,回车后直到渲染出页面中间发生了什么?(dns是属于TCP还是UDP)

  • tcp三次握手

  • session和cookie的区别

  • get和post的区别

  • 滑动窗口

  • ARP协议,描述一下原理

  • 路由器和交换机分别在什么层


  • 手写LRU页面置换算法

  • 手写最小堆

  • 从n个数中抽m个出来,按从大到大输出所有排列组合

  • 改编的约瑟夫环问题

  • 计算化学分子式每个元素的个数,如HMg2(H2O(P2S3))3NH3,每个元素以大写字母开头

  • 链表操作,奇数位递增,偶数为递减,重新排序为递增

  • 链表每隔k个反转

  • 实现 void* memmove(void* dst, const void* src, size_t n)

  • N个数重复3次,一个数重复一次,请找到这个数;  3N+1, int32_t, vector<int32_t>

  • 实现一下string类,包括构造函数,拷贝构造函数,析构函数,运算符重载等

  • 一颗多叉树,实现层序遍历以及元素赋值操作

  • 手写快排


  • 如何看待加班现象

  • 手机的指纹识别是如何实现的?

  • 抽奖箱设计,三种颜色A,B,C,要求每种颜色的权重(概率)分别为1:10:100,怎么产生三种颜色

  • 两个文件有上亿个qq号,找重复的

  • 大量qq号存储、查询和查重

  • 1-n,缺失了一个数,找到这个数

  • 假设内存不够,相加溢出,怎么办


  • 如何看待加班现象

  • 不做技术转什么方向

  • 看过什么书,看过什么库

  • 意向城市

  • 有没有了解显卡

  • 课余时间都在干什么

  • 学科课程比较突出的

  • 在项目中的优势和劣势

  • 字节范儿

  • 作为项目负责人要注意到什么

  • 目前为止经历最大的挫折是什么?如何走出来的?

  • 平时有什么兴趣爱好?

  • 为什么不继续做原来的方向?

  • 对工作的诚实有什么看法?

  • 你的职业规划?




关注公众号【业余码农】,回复 关键字[ 秋招 ],有面经解答资源相送哦。



文来源业余码农,转载请联系本公众号获得授权





推荐阅读


生物专业女生教你准备两个月签约AI独角兽

生物专业却能签约字节跳动,在大学期间他经历了什么

一文教你如何做好大厂技术岗的面试准备


免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
关闭
关闭