小米面试(两面技术):一面:(1) 项目简介:业务如何部署,底层协议和传统网络协议的区别,现有的拥塞处理方式,如何获取要处理的数据(2) 排序算法 快速排序和归并排序的空间复杂度差别(3) 数据库底层数据存储(4) 深度遍历和广度遍历非递归实现(5) 四位实现int的范围(6) TCP和UDP区别,UDP既然不可靠,为什么QQ会使用使用这种个方式,TCP为什么是三次握手和四次挥手(7) ArrayList的底层实现,动态数组(8) HashMap的底层实现,HashMap和TreeMap区别(9) 脚本语言会什么,我并不会(10) 事务了解吗?大概知道事务的四大属性(11) 数组和链表的区别:(12) 拥塞控制的方式;
二面:(1) 使用的Map有哪些?HashMap和TreeMap。区别?(2) ArrayList和LinkedList的区别;LinkedList底层为链表如何实现get(index)函数的;如何用LinkedList实现间隔性输出数据(如:只输出index为奇数的数据);(3) HashMap是不是线程安全的?不是,那哪一个Map是?如何实现(4) 手写代码:获取一棵树哪一层节点数最多?返回这个值(宽度)(5) 手写代码:实现栈的getMax函数(6) 实现线程的方式,就答了继承Thread,重写run()方法和实现Runable方法,重写run()方法,没有深问(7) 图的存储方式
...查看更多