您的位置 首页 golang

C++ 后台开发面试时一般考察什么?

C++ 后台开发面试时一般考察什么?

带领研发团队多年,现对应试者在面试中锁需要准备的知识进行总结,主要涉及C++/C/Golang语言基础,数据结构与算法,TCP/IP协议,网络编程, LINUX

虽然面试技巧和心态也很重要,但这里只有24K纯技术干货,期望大家能够准备好,进入我司。 点赞后,收藏吧!

C++ 后台开发面试时一般考察什么?

C++ 后台开发面试时一般考察什么?

C和C++语言基础

参考书籍:《C++ primer》,《effective C++》,《STL源码解析》,《深度搜索C++对象模型》

  • extern关键字作用
  • static关键字作用
  • volatile是干啥的
  • 说说const的作用,越多越好
  • new与malloc区别
  • C++ 多态 性与 虚函数
  1. C++多态的实现?
  2. 虚函数的作用?
  3. 虚函数用于实现多态,这点大家都能答上来但是虚函数在设计上还具有封装和抽象的作用。比如抽象工厂模式。
  4. 动态绑定是如何实现的?
  5. 静态多态和动态多态。静态多态是指通过模板技术或者函数重载技术实现的多态,其在编译器确定行为。动态多态是指通过虚函数技术实现在运行期动态绑定的技术。
  6. 虚函数表
  7. 虚函数表是针对类的还是针对对象的?同一个类的两个对象的虚函数表是怎么维护的?
  8. 编译器为每一个类维护一个虚函数表,每个对象的首地址保存着该虚函数表的指针,同一个类的不同对象实际上指向同一张虚函数表。
  • 纯虚函数如何定义,为什么对于存在虚函数的类中 析构函数 要定义成虚函数
  • 析构函数能抛出异常吗
  • 构造函数 和析构函数中调用虚函数吗?
  • 指针和引用的区别
  • 指针与数组千丝万缕的联系
  • 智能指针是怎么实现的?什么时候改变引用计数?
  1. 构造函数中计数初始化为1;
  2. 拷贝构造函数中计数值加1;
  3. 赋值运算符中,左边的对象引用计数减一,右边的对象引用计数加一;
  4. 析构函数中引用计数减一;
  5. 在赋值运算符和析构函数中,如果减一后为0,则调用delete释放对象。
  6. share_prt与weak_ptr的区别?
  • C++四种类型转换 static_cast, dynamic_cast, const_cast, reinterpret_cast
  • 内存对齐的原则
  • 内联函数有什么优点?内联函数与宏定义的区别?
  • C++内存管理
  • STL里的内存池实现
  • STL里set和map是基于什么实现的。红黑树的特点?
  • STL里的其他数据结构和算法实现也要清楚
  • 这个问题,把STL源码剖析好好看看,不仅面试不慌,自己对STL的使用也会上升一个层次。
  • 必须在构造函数初始化式里进行初始化的数据成员有哪些
  • 模板特化
  • 定位内存泄露
  • (1)在windows平台下通过CRT中的库函数进行检测;
  • (2)在可能泄漏的调用前后生成块的快照,比较前后的状态,定位泄漏的位置
  • (3)Linux下通过工具valgrind检测
  • 手写strcpy,memcpy,strcat,strcmp等函数

数据结构与算法

这一块考察范围太广,主要靠多刷题吧,牛客网,剑指OFFER,LeetCode等。

Hash表

  • Hash表实现(拉链和分散地址)
  • Hash策略常见的有哪些?
  • STL中hash_map扩容发生什么?
  • (1) 创建一个新桶,该桶是原来桶两倍大最接近的质数(判断n是不是质数的方法:用n除2到 sqrt ( n )范围内的数) ;
  • (2) 将原来桶里的数通过指针的转换,插入到新桶中(注意STL这里做的很精细,没有直接将数据从旧桶遍历拷贝数据插入到新桶,而是通过指针转换)
  • (3) 通过swap函数将新桶和旧桶交换,销毁新桶。

  • 二叉树 结构,二叉查找树实现;
  • 二叉树的六种遍历;
  • 二叉树的按层遍历;
  • 递归是解决二叉树相关问题的神级方法;
  • 树的各种常见算法题(;
  • 什么是红黑树?
  • 红黑树与AVL树的区别
  • Trie树(字典树)

链表

  • 链表和插入和删除,单向和双向链表都要会
  • 链表的问题考虑多个指针和递归
  • (1) 反向打印链表(递归)
  • (2) 打印倒数第K个节点(前后指针)
  • (3) 链表是否有环(快慢指针)等等。

栈和队列

  • 队列和栈的区别 ?(从实现,应用,自身特点多个方面来阐述,不要只说一个先入先出,先入后出,这个你会别人也会,要展现出你比别人掌握的更深)
  • 典型的应用场景

海量数据问题

  • 十亿整数(随机生成,可重复)中前K最大的数
  • 十亿整数(随机生成,可重复)中出现频率最高的一千个

排序算法

  • 排序算法当然是基础内容了,必须至少能快速写出,快排,建堆,和归并
  • 每种算法的时间空间复杂度,最好最差平均情况

位运算

布隆过滤器

几十亿个数经常要查找某一个数在不在里面,使用布隆过滤器,布隆过滤器的原理。布隆过滤器可能出现误判,怎么保证无误差?

网络与TCP/IP

参考书籍:《图解TCP/IP》,《TCP/IP详解 卷一》,《图解HTTP》,《 HTTP权威指南

  • TCP与 UDP 之间的区别
  • (1) IP首部,TCP首部,UDP首部
  • (2) TCP和UDP区别
  • (3) TCP和UDP应用场景
  • (4) 如何实现可靠的UDP
  • TCP三次握手与四次挥手
  • 详细说明TCP状态迁移过程
  • (1) 三次握手和四次挥手状态变化;
  • (2) 2MSL是什么状态?作用是什么?
  • (3)三次握手为什么不是两次或者四次?
  • TCP相关技术
  1. TCP重发机制,Nagle算法
  2. TCP的拥塞控制使用的算法和具体过程
  3. TCP的窗口滑动
  • TCP客户与服务器模型,用到哪些函数
  • UDP客户与服务器模型,用到哪些函数
  • 域名解析过程,ARP的机制,RARP的实现
  • Ping和TraceRoute实现原理

HTTP

  • http/https 1.0、1.1、2.0的特点和区别
  • get/post 区别
  • HTTP返回状态码
  • http 协议头相关

http数据由请求行,首部字段,空行,报文主体四个部分组成

首部字段分为:通用首部字段,请求首部字段,响应首部字段,实体首部字段

  • https与http的区别?如何实现加密传输?加解密方式?
  • 浏览器中输入一个URL发生什么,用到哪些协议?

安全相关

至少了解攻击的原理和基本的防御方法,常见的攻击方法有一下几种

  • SQL注入
  • XSS
  • CSRF
  • SYN洪水攻击
  • APR欺骗

数据库

主要参考书籍:《数据库系统概念》,《高性能MySQL》

  • SQL语言(内外连接,子查询,分组,聚集,嵌套,逻辑)
  • MySQL索引方法?索引的优化?
  • InnoDB与MyISAM区别?
  • 事务的ACID
  • 事务的四个隔离级别
  • 查询优化(从索引上优化,从SQL语言上优化)
  • B-与B+树区别?
  • MySQL的联合索引(又称多列索引)是什么?生效的条件?
  • 分库分表

Linux

主要参考书籍:《现代操作系统》,《APUE》,《UNP》,《LINUX内核设计与实现》,《深入理解LINUX内核》

  • 进程与线程

(1) 进程与线程区别?

(2) 线程比进程具有哪些优势?

(3) 什么时候用多进程?什么时候用多线程?

(4) LINUX中进程和线程使用的几个函数?

(5) 线程同步?

在Windows下线程同步的方式有:互斥量, 信号量 ,事件,关键代码段

在Linux下线程同步的方式有:互斥锁, 自旋锁 读写锁 ,屏障(并发完成同一项任务时,屏障的作用特别好使) 知道这些锁之间的区别,使用场景?

  • 进程间通讯方式
  1. 匿名管道与命名管道的区别 :匿名管道只能在具有公共祖先的两个进程间使用。
  2. 共享文件映射 mmap
  3. mmap建立进程空间到文件的映射,在建立的时候并不直接将文件拷贝到物理内存,同样采用缺页终端。mmap映射一个具体的文件可以实现任意进程间 共享内存 ,映射一个匿名文件,可以实现父子进程间共享内存。
  4. 常见的信号有哪些? :SIGINT,SIGKILL(不能被捕获),SIGTERM(可以被捕获),SIGSEGV,SIGCHLD,SIGALRM
  • 内存管理
  1. 虚拟内存的作用?
  2. 虚拟内存的实现?
  3. 操作系统层面对内存的管理?
  4. 内存池的作用?STL里内存池如何实现?
  5. 进程空间和内核空间对内存的管理不同?
  6. Linux的slab层,VAM?
  7. 伙伴算法
  8. 高端内存
  • 进程调度
  1. Linux进程分为两种,实时进程和非实时进程;
  2. 优先级分为静态优先级和动态优先级,优先级的范围;
  3. 调度策略
  4. 交互进程通过平均睡眠时间而被奖励;
  • 死锁

(1) 死锁产生的条件;

(2) 死锁的避免;

  • 命令行
  1. Linux命令 在一个文件中,倒序打印第二行前100个大写字母

cat filename | head -n 2 | tail -n 1 | grep ‘[[:upper:]]’ -o | tr -d ‘n’| cut -c 1-100 | rev

  1. 与CPU,内存,磁盘相关的命令(top,free, df, fdisk)
  2. 网络相关的命令netstat,tcpdump等
  3. sed, awk, grep三个超强大的命名,分别用与格式化修改,统计,和正则查找
  4. ipcs和ipcrm命令
  5. 查找当前目录以及字母下以.c结尾的文件,且文件中包含”hello world”的文件的路径
  6. 创建定时任务
  • IO模型
  1. 五种IO模型: 阻塞IO,非阻塞IO,IO复用,信号驱动式IO,异步IO
  2. select,poll,epoll的区别
  • 线程池,内存池 自己动手实现一遍

Linux的API

  • fork 与vfork区别
  • fork和vfork都用于创建子进程。但是vfork创建子进程后,父进程阻塞,直到子进程调用exit()或者excle()。
  • 对于内核中过程fork通过调用clone函数,然后clone函数调用do_fork()。do_fork()中调用copy_process()函数先复制task_struct结构体,然后复制其他关于内存,文件,寄存器等信息。fork采用写时拷贝技术,因此子进程和父进程的页表指向相同的页框。但是vfork不需要拷贝页表,因为父进程会一直阻塞,直接使用父进程页表。
  • exit()与_exit()区别
  • exit()清理后进入内核,_exit()直接陷入内核。
  • 孤儿进程与僵死进程
  1. 孤儿进程是怎么产生的?
  2. 僵死进程是怎么产生的?
  3. 僵死进程的危害?
  4. 如何避免僵死进程的产生?
  • Linux是如何避免内存碎片的
  1. 伙伴算法,用于管理物理内存,避免内存碎片;
  2. 高速缓存Slab层用于管理内核分配内存,避免碎片。
  • 共享内存的实现原理?
  • 系统调用与库函数(open, close, create, lseek, write, read)
  • 同步方法有哪些?
  1. 互斥锁,自旋锁,信号量,读写锁,屏障
  2. 互斥锁与自旋锁的区别:互斥锁得不到资源的时候阻塞,不占用cpu资源。自旋锁得不到资源的时候,不停的查询,而然占用cpu资源。
  3. 死锁

其他

  • ++i是否是原子操作
  • 明显不是,++i主要有三个步骤,把数据从内存放在寄存器上,在寄存器上进行自增,把数据从寄存器拷贝会内存,每个步骤都可能被中断。
  • 判断大小端

设计模式

  • 单例模式线程安全的写法
  • STL里的迭代器模式,适配器模式

分布式系统

  • map_reduce原理 (这篇文章讲的很通俗易懂)
  • 负载均衡
  • CDN

主要列出考察内容的方向,问题的理解就得靠自己实践和阅读书籍了,相关问题的答案在我这篇博客中给出了自己理解的程度,欢迎交流!

以下还总结成了文档,目录内容同上,同时总结了一些技巧:

C++ 后台开发面试时一般考察什么?

C++ 后台开发面试时一般考察什么?

你都看到这了,请转发文章后,加Q群领面试题总结:1*4*8*7*4*5*8*0*0

文章来源:智云一二三科技

文章标题:C++ 后台开发面试时一般考察什么?

文章地址:https://www.zhihuclub.com/86863.shtml

关于作者: 智云科技

热门文章

评论已关闭

33条评论

  1. Candidate genes in clock and inflammatory pathways were identified from a literature review, of which 50 single nucleotide polymorphisms SNPs in 7 genes were available A more dramatic version is that, as he seems to have already hinted, he is preparing to strike against a homosexual network in the Vatican and wants his motives to be clear that it is not the sexual orientation, or even behaviour, of its members that he condemns, but the formation of interest groups in an organisation that is meant to have only one interest, and one earthly boss

  2. In the animal models with mdr1 ER tumor, the weights and volumes of planted tumor were not affected by DOX or TAM treatment; however, in TAM and DOX group 425

  3. This has been an absolute joy, Kristi, thank you for spending this hour with me and the Plant Strong podcast Allen WE, Kauvar IV, Chen MZ, Richman EB, Yang SJ, Chan K, et al

  4. 6 Raj SG et al 1996 Case report systemic hypersensitivity reaction to goserelin acetate Am J Med Sci 312 187 90 DOI 10

  5. Grady, said Гў the provider prescribed 100 percent oxygen by norebreather mask after the client reported severe dyspnea

  6. c e Significant decrease in physical parameters such as c Feret diameter 8 Gy vs 0 Gy p d organoid count 8 Gy vs 0 Gy p e budding percentage 8 Gy vs 0 Gy 0

  7. Remarkably, not only was the long term usage of octreotide not associated with the development of resistance to its own effects 60 but could also reverse resistance to cisplatin of SSTR2 positive SKOV3 DDP ovarian cancer cells by downregulating EGFR and the MRP2 transporter Some invasion of tumor cells into the interstitium was confirmed

  8. To ensure the continued viability of public education in an ever changing world, the Horace Mann League dedicates itself to This study reviews the literature from laboratory investigations that document the antioxidant and oncostatic actions of melatonin and summarizes the evidence regarding the potential use of melatonin in cancer treatment

  9. Hypovolemia and hypotension via Ang II, and or hyperkalemia Do not stand still for prolonged periods

  10. com 20 E2 AD 90 20Viagra 20A 20Quoi 20Sert 20 20Viagra 20Lowest 20Prices viagra a quoi sert Sun Art s push into e commerce comes as competition in thehypermarket sector heats up, with a tie up between Tesco and China Resources Enterprise announced thismonth potentially posing a challenge to its lead

  11. 14 Molecular Pathology Lab, International Centre for Genetic Engineering and Biotechnology ICGEB, Trieste, Italy

  12. Box 5015, 100 Perth Drive, London, Ontario, Canada N6A 5K8 These changes occurring as early as one week after neck surgery 163

  13. This may lead to an underestimation of the risk of anorectal CT This product, HydroDoxx 500 mg g oral powder, was produced by Huvepharma, Bulgaria

  14. Currently, there are very few clinical trials performed to validate whether green tea possesses chemo preventive or curative activity in significantly reducing cancer development

  15. It seems you didn t check the ingridients in the label attached and it seems you don t know what you are taking

  16. BANCR is a lincRNA that facilitates the JNK signaling pathway in vascular smooth muscle cells VSMC allowing for VSMC proliferation and migration 40

  17. There is no evidence that CC or gonadotrophins differ in pregnancy- related adverse events

  18. All women were regularly monitored at our clinic until March 1, 2001, and were enrolled in clinical research programs approved by our medical ethics committee protocol DDHK 91 17, updated in 1995

  19. Mammosphere formation is generally regarded as a measure of CSC activity and or the ability of cells to undergo anchorage independent growth

  20. If you feel groggy and in pain in the morning, it may be a sign that it is time to upgrade your mattress

  21. In the majority of women, the normal fibroglandular tissue exhibits only mild enhancement, occurring only during the late phase of the dynamic series

网站地图