一面
第一轮面试上来让我自我介绍,然后着重问了一波项目,问的挺多的,项目还是要多准备一下。因为我说了下有ios和Android的学生管理系统开发经验,就问了一下我ios和Android的区别,估计他是ios的,,,我夸了Android太多了,汗~
1.进程和线程的区别以及java的线程代码
2.http和https的区别
3.https的连接过程
4.劫持证书了解过吗
5.死锁的必要条件和死锁的线程例子
6.dns协议
7.写个sql建表的语句
8.数据库索引及优化
9.写个算法题:
(1)给定长度为n的整形数组,给定小一点的正数k,找到数组中出现次数大于 n/k 的数字。
举几个例子: 1. 假设 n=100,k=10,那么需要找到数组中出现次数大于 10 的数。
(2)假设要求空间复杂度为O(K),时间复杂度尽量低该怎么做?
二面
没让我自我介绍,看了看我上轮的面试情况,夸我理论扎实,嘿嘿(●ˇ∀ˇ●),让我解释下mvc,因为我简历有相关项目。
1.三次握手、四次挥手
2.tcp、udp的优缺点和特点
3.滑动窗口
4.拥塞控制
5.设计模式(讲了下单例,工厂,抽象工厂还有建造者,让我写单例模式源码)
6.问了下进程的调度算法,并让我选一个最合适的调度算法,说明理由
7.hashmap源码(数组