米哈游 8月19日 客户端开发 一面
自我介绍
基类和子类构造函数和析构函数的顺序(基类的一些变量,子类如果先构造,无法继承)
析构函数定义成虚函数的作用(一方面是动态多态,一方面???),假设不是虚函数的话,会怎么样?
智能指针主要的作用?(内存泄漏,更好地与C++兼容)
说一下new/delete和malloc/free的区别
new会调用析构函数吗?
static的作用(定义全局静态变量,局部静态变量,延长变量的生命周期)
static修饰全局变量的作用(为了防止被修改,多个对象共同访问/拥有静态变量)
静态,多态,动态的区别(静态:重载;动态:虚函数重写;都是多态的体现)
内存对齐的作用(硬件设备兼容,提高内存访问的效率)
struct内存对齐的规则
编译器的内存对齐是4字节对齐,struct是8字节对齐(选小的,怎么对齐???)
valotile修饰修饰变量的作用(强制编译器进行优化:从寄存器取值,强制从内存取值)
TCP的三次握手和四次挥手(为什么需要三次握手?第二次握手更复杂)
第三次握手是确认什么事情?(提示:让服务端知道???)
select与epoll的区别(说出3点:select:轮流查询,O(n),数组实现 epoll:基于事件驱动,O(1),?)
数据结构中堆和栈的区别?(堆是一棵树,堆排序,栈:先进后出)
vector和list的区别
二叉树和数的区别
手撕:
递归实现第K大的数(快速排序+单支路递归)
#米哈游面试#