11.5投简历,11.5来电话,11.6一二面,至今(11.16)无回复,估计是凉了。
一面
1.上来面试官先自我介绍,然后我自我介绍。
2.面试官说作品展示点不开(实习僧简历),那就不问简历了,写题。
3.第一题反转链表leetcode206,太紧张了差点写错。
4.第二题岛屿数量leetcode200,见我写的太快,变形,输出岛屿面积;又变形,输出岛屿最大长宽。
5.了解的数据结构
栈,队列,树……不知道他想问什么
6.说说指针和引用
指针4个字节,有自己的内存空间,除了保存所指变量的地址,自身也有地址。
引用必须初始化,指针可以不初始化,等以后要用时再赋值。
7.说说class和struct
class默认private访问级别,struct默认public访问级别。
8.反问。我答的怎样。还行吧,我去叫二面的面试官
二面
1.自我介绍
2.字符串转整数leetcode 8
3.简历点不开,只看到Web后端的。
4.默认构造函数,拷贝构造函数不写的时候会发生什么。
编译器会给你生成默认构造函数,拷贝构造函数,析构函数,如果不写的话。
5.结构体对齐,有什么好处。这个我不太清楚,说内存-4 -8比较方便访问,面试官不是很满意。
其一是方便内存分配和回收,不对齐的话会产生许多内存碎片,即使对象已经销毁,空闲内存也不是特别容易回收合并。其二是方便CPU访问,比如CPU一次能访问四个字节,那么1+4的话,访问第二个变量就需要访问两次,而变成8个字节都方便很多。
6.虚函数相关。子类重写之类的答出来了。虚函数表会不会导致sizeof的值变大?这个真不知道
如果类内有虚函数,则会在类头生成一个虚函数指针,占四个字节,指向虚函数表。
7.static有什么用
对普通变量使用,可以将变量放到全局区。对类成员变量和函数使用,可以使得该变量和函数属于类,不属于对象。static还可以把函数限制在本文件内调用。
8.vector map hash_map查找一个元素的复杂度
vector,有序的话二分ologn,无序on;map用的红黑树,ologn,hash_map用的哈希表,o1。
9.vector内存扩张与释放
当插入一个新的元素时,会检查是否到达容量上限,如果没有,直接插入。如果到达上限,则申请一块新的内存空间,大小是原来的两倍,然后将所有元素拷贝过去。所以如果事先知道要存储多少元素,应该提前用reserve开好容量。
10.static函数和非static函数调用有什么区别
有一个this指针。
11.反问。我答的怎么样。还行吧。
总结
第一次面试,很紧张,算法题差点写不出来。
自我感觉良好,我简历上写的多线程epoll服务器没被看到,也没被问相关问题,不知道是幸运还是不幸。