2015阿里实习内推三面+HR面

经过几天的阿里面试,现在来回忆总结下。

一面技术面:

(1) 自我介绍

(2) static的用法(包括静态变量和成员函数)

(3) extern的用法(变量,函数,C++和C之间的接口规范)

(4) a,b互换,不用辅助空间。(加法或者异或解决)

(5) 虚函数,多态等方面的应用,内存分布。

(6) 知道那些调试器,怎么应用(gdb调试等)

(7) 智能指针的实现以及原理

只记得这么多了。

总结:基础知识只是一定要牢固。

二面技术面:

(1) 没有自我介绍,直接问项目,比较具体,要深入了解自己所做的项目。

(2) 析构函数是否一定为虚函数?不为虚函数可能出现什么问题?一定会出现这个问题嘛(回答多态中析构函数不为虚函数,出现内存泄露)但是不一定会出现内存泄露,因为指针不确定以及析构函数也不一定要delete的。这个问题没考虑全面。

(3) 字符串组合的实现。(详细讲解代码,说说具体实现。递归时间复杂度过高,要用位运算)

(4) 具体比较vector和list的区别,应用。

(5) 高效实现大数的加法。(我回答的用数组或者字符串模拟,面试官说太复杂,有更高效的,想了一会,说不知道)

(6) 静态全局变量,全局变量;静态局部变量和局部变量

总结:对知识要深入了解,不能停留表面,最好能够实践。

三面技术面:

(1) 自我介绍

(2) 多态的应用,从编译器的角度来谈。

(3) 比较几种常见的数据结构(数组,list,,BST,哈希表)

(4) C/C++中的同步和异步,有哪些方式,怎么具体实现。关于多线程的理解和实现。

(5) 设计网络协议

(6) SQL优化(正确使用索引,聚集索引和非聚集索引;多个update放在一个update里面写;在Where语句中,尽量避免对索引字段进行计算操作;慎重使用临时表可以极大提高系统性能;exists比in效率高;在海量查询的时候尽量少用格式转换)

(7) Tomcat并发(5,6,7都是从项目中提问)

(8) Hash冲突的解决(开放定址法如线性探查法,再哈希法(冲突的时候再利用第二个哈希函数,直到无冲突),拉链法等)

总结:对一些知识真要具体想想原理,多问几个为什么,加强理解并且实践。

HR面就不说了。对以上问题有好的回答的同学,欢迎讨论交流哈。

转载请注明:

看着它洗涤一缕缕阳光,看着它映衬一片片星辉,

2015阿里实习内推三面+HR面

相关文章:

你感兴趣的文章:

标签云: