一面
(项目上问了编译器,给一条语句让我画出语法树)
1.说一下final的意义
2.java集合类都问了一遍(基础)
3.如何设计StringBuffer(没答好)
4.死锁的定义,哪4个条件?
5.单例模式
6.手写二分查找,冒泡排序(面试官注重代码细节)
7.activity生命周期,启动模式(问的比较细,singleInstance的activity开启一个新activity,任务栈是怎样状态)
8.handler底层实现?消息队列为空会怎样?(会发生空闲等待,其实就是利用了管道机制)
二面
(面试官也是先问编译器,大公司对这个感兴趣)
1.hashmap的内部实现
2.说一下堆栈的内存结构
3.设计一个栈(不用list,set或map)
4.Asynctask内部实现
5.设计一个线程池?(之前阿里还考过,然而还是不会…)
6.sleep()和wait()使用过程要注意什么?
7.如何设计一个阻塞队列 ?
8.斐波那契数列的实现(手写递归和非递归)
9.字符串第一个出现一次的字符(遍历一遍,时间o(n),用数组int[256]或hashmap存储)
10.什么是满二叉树,下个定义?(我说了当深度为n时,叶子节点数为2^(n-1)的树…)
11.堆排序,如何初建大根堆?
12.又问了Activity启动模式
13.如何实现AIDL?
三面
1.有一个数列有10万个数,另一个数列是1亿个数,找出这两个数列共同拥有的数
2.TCP
3.画HTTP报文
4.短连接和长连接
5.两台服务器不同地方,传输一个文件需要考虑什么因素
6.数据库索引
7.B树,B+树
8.平时怎么学习,学习方法?
9.意向工作地点,工作业务?