实验室一万年不开一次会,偏偏今天要开会,而且时间和面试的时间还是冲突的,不管了,果断去面试。
路上的各种情况按下不表。
908房间,进去是一个30左右的小伙,人很和善。
首先他做了自我介绍,我紧张的还以为是要我做自我介绍(汗)。他是腾讯浏览器开发方面的,主要是移动端的浏览器。他们只负责招聘,具体岗位到了公司再说。
完了让我做一个自我介绍。
正式面试开始
以下是我记得的一些问题。
1、指针和引用的区别是什么?
- 非空区别。引用不能指向空值得引用,而且引用在定义的时候就进行初始化。指针则可以指向空值,即不指向任何地址。
- 合法性区别。在使用引用之前不检测它的合法性,而指针则应该总是被测试,以防为空。
- 可修改区别。指针可以修改指向另一个对象,而引用总是指向初始化时被指定的对象,不能改变。
- 应用区别。在以下两种情况使用指针:①考虑存在不指向任何对象的可能②需要在不同时刻指向不同的对象。
2、int const *p const;这句语句的含义。
const放在p前与放在p后意义一样。
3、C++的模板有什么作用?
模板可以实现类型的参数化,实现代码的重用。可以分为函数模板和类模板
4、数组和链表的区别
- 空间上。数组是连续存储的,链表是在动态内存中随机分配的
- 时间上。数组中的任意元素都可以在O(1)的时间内直接存储访问,链表则需要从头开始遍历。
- 数据操作。数组元素的插入和删除平均要移动半个数组大小的元素,链表只需要修改指针
5、一个单链表如何最快的找到它的中点元素
设立两个指针,*p,*q,p每次移动两个位置,即p = p->next->next;q每次移动一个位置q = q->next;当p到达最后一个节点时,q就是中间节点了。
6、static的作用,static用在函数前面的作用呢?
- 函数体内static变量的作用范围为该函数体,该变量只分配一次,下次函数调用时仍维持上次的值
- 在模块内的static全局变量可以被模块内所有函数访问,但不能被模块外的其他函数访问
- 在模块内的static函数只可被模块内的其它函数调用,这个函数的使用范围限制在声明他的模块内
- 在类中的static成员变量属于整个类所共有,对类的所有对象共用一个值
- 在类中的static成员函数属于整个类所拥有,这个函数不接受this指针,因而只能访问类中static成员变量
7、写代码:①计算一个二叉树的深度;②输出任意一个字符串的排列组合
8、TCP的三次握手
- 第一次握手,建立连接时,client发送SYN包(syn=j)到server,并进入SYN_SEND状态,等待服务器确认
- 第二次握手,server收到SYN包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),此时server进入SYN_RECV状态
- 第三次握手,client收到server的SYN+ACK包,向server发送确认包ACK(ack=k+1),此包发送完毕,client和server进入ESTABLISHED状态,完成3次握手
9、Android的四大组件
Activity、Service、Content Provider、Broadcast。
这个题应该深入继续给他讲的,各个组件的作用以及特性。
10、Activity的生命周期
onCreate->onStart->onResume->onPause->onStop->onDestroy
11、GET/POST POST上传一个文件的时候,如何封包及实现
12、栈溢出是为什么?
13、关注最前沿问题是在哪个网站或者什么的?
14、你觉得你现在用的浏览器有什么优缺点(这题应该是考察对产品的敏感)
15、你评论一下当前的最前沿技术或者发展趋势(这题应该是考察对新技术的敏感和热情)
总共面试了50多分钟。