Linux
22.liunx下如何shell下查看cpu内存资源使用情况用什么命令
- 内存泄漏
- Linux 查看某个进程内存泄漏的指令
- kill一个进程的过程是什么样子的
- 查看当前网络连接的指令
- 查看当前内存使用状态的?。。问题记不太清了
数据库
- 使用数据库的选择. 答Myiasm和InnoDB的特性 范式那里忘光了
18.mysql常见的存储引擎,innoDB和Myisam区别
19.为什么数据库要有外键
select的限制
epoll相对于select的优势
select相比于epoll最关键的提升是哪一点,怎么做到的
mysql中事物的原理,再那一层实现,存储引擎怎么实现这一步
innodb和myisam的区别
innodb索引
数据库索引为什么用自增id,有什么好处
设计过联合索引吗
联合索引的匹配规则
语言基础
17.gc过程(不会,说这块还没学)
18.finally,finalizer(这个词面试官读了好几遍才读对,感觉他可能不是写java的(逃
同步方法,代码块的区别和原理
19.重载重写区别
- const关键字
- static关键字
- 继承条件下对象构造析构顺序是否可以改变 即先构造子类再构造父类
- new和malloc区别
5.多态
6.虚函数表
怎样理解C++多态特性
重载的原理
const的理解,怎样解决const对象可以通过指针修改
- 浅拷贝,深拷贝
- 虚函数如何实现的,具体调用过程,如何实现的多态
- C++ stl vector扩容的方式
数据结构 & 算法
13.链表插入时间复杂度
14.hashmap实现(这里语言没组织好,说的磕磕绊绊也没说完全)
15.avl树旋转调整原理,只需要分情况画图说明
16很多数,怎么取最小的前100个
22.算法题 rand5实现rand3和rand8
四道算法:
- 有效优先级括号判断;
- 奇偶链表;
- 接雨水;
- rand35()实现rand47();
2.算法题两个,反转链表(递归和非递归),二叉树层序遍历。
3.rand()可以得到0和1,如何实现等概率随机数得到0-n
vector的底层存储
map的存储结构
平衡二叉树的特点价值,查找效率
为什么使用红黑树
B+树的时间复杂度(不太清楚)
B+树为什么一般是三层吗(支支吾吾)
手写快排
快排在什么情况下时间复杂度会比较高
B+树
计算机网络
8.三次握手
9交换机路由器区别 工作方式
10.tcpudp区别
11.滑动窗口
12.https 加密过程(只知道大概)
三次握手四次挥手
计网:1. 描述一下TCP三次握手;
2. SEQ是怎么取的;
3. 描述一下TCP是怎么发送文件的(这个问题没太听懂他想我回答什么问题,因为他说不用说bind listen accept那些,最后只答了将文件Read进内存,然后按照缓冲区当前的index分批发送)
4. TCP有了checksum还可能会造成数据错乱吗(我答的有可能,确实不清楚)
13.tcp/ip的5层,osi七层
14.http在哪一层,tcp在哪一层,arp在哪一层
15.arp协议
16.tcp三次握手
17.包丢了,tcp的发送端措施,除了重传机制,还有别的吗
DNS哪个层的协议,底层用是哪个协议
UDP的特点
TCP粘包怎么解决
HTTP怎么解决TCP粘包问题的(不知道)
- 针对项目为了HTTP1.0和1.1
- TCP为什么不是四次握手,三次挥手
- TIME_WAIT为了解决什么问题
操作系统
2.进程线程
3.进程通信方式
4.软,硬链接
5.虚拟内存
6.swap (不知道)
7.僵尸进程(只听说过)
然后就问了chrome是多进程还是多线程的,我说了多进程;
然后继续问那为什么chrome一个标签崩了整个浏览器也崩了(我回答可能是浏览器主进程发现了崩溃以后对其他子进程也kill掉吧…确实也不清楚)
7.变量分配内存的方式有哪些
8.在同一进程下的两个线程a和b,在线程a中有一个static变量,线程b能访问得到吗,在线程a中
new一个对象,线程b能访问得到吗。
9.在两个进程中,申请的指针,可能指向同一片内存吗
10.虚拟内存
11.代码中的变量是逻辑地址还是物理地址
12.怎么通过逻辑地址找到物理地址
20.僵尸进程
21.什么是中断
其它
1.自我介绍
20.学过编译原理吗 说下c++转成exe过程(不知道该说编译过程还是编译 链接什么的,回答的是前者,词法分析语法分析云云)
21.熟悉什么数据库(还没学过,这学期学校才开这门课)
基础还不错,linux相关掌握不够
1.上来自我介绍
项目介绍