京东
1 ngnix如何平滑启动
2 linux awk的begin end作用
3 分布式中限流策略
4 10亿条数据的数据表,如何设计存储,能尽快找出自己想要的数据
5 Token令牌加密登录的原理
6. 一个mapreduce要访问一个文件,需要进行多少个map
7 linux 内存管理方式LRU算法以及用java实现
8 Maven包冲突的解决办法
美团
进程与线程的区别
Linux管理内存常用的算法
Jvm内存结构以及常用的垃圾回收算法,对象的分配
手写树的前序遍历与层序遍历
TCP的三次握手以及四次挥手,每次携带的报文信息
红黑树如何保证平衡的
手写快排
网络中的DNS解析的全过程
Mysql数据库的索引实现机制
聚簇索引与非聚簇索引
Http协议中的缓存机制
有10G大小的文件,里边存的为数字,内存限制为1G,统计出出现次数最少的前十个数字
计算机的缓存结构
局部性原理
手写二分查找(注意常规方法中的坑,大话数据结构中的二分查找有问题)
以字符串为单位,进行字符串数组的反转
Java中使用线程池的核心参数以及线程池的调用原理
复习的东西
数据库方面
数据库方面强烈推荐以下三个博客,其中一个是我们大神于海强总结的,超级全,超级赞,大家可以参考
https://zhuanlan.zhihu.com/p/25235279
http://www.cnblogs.com/Lawson/archive/2015/11/30/5008741.html
http://www.cnblogs.com/zhangs1986/p/4914125.html
计算机网络
这块建议大家以一个地址从在地址栏中输入后开始,到服务器返回结果为之为线索,来整体掌握整个脉络,常用几层的作用,应用层,传输层一直到物理层,每层的作用是什么,以及每层涉及到的协议都有什么?常问的协议应该是http协议,tcp udp协议,ip协议,面试中还问到使用http请求头与响应头来实现缓存,完成页面的优化,当时没有答出来,后来经过查资料,理清了咋回事,将博客放到下边,供大家参考
http://www.cnblogs.com/520yang/articles/4807408.html
操作系统
这块也没太好的资料,建议大家以课本为主吧,主要多看一下以下几个方面:
1. 内存管理常用算法,要清楚为什么连续存储的访问速度快,但会产生大量内存碎片,而离散方式存储的访问速度慢,但产生内存碎片少或者不会产生,每种算法使用自己 熟悉语言的实现方式
2. 局部性原理以及基于局部性原理,虚拟内存的实现方式以及调度方式
3. 进程与线程的区别
4. 死锁的条件
5. 如何解除以及避免死锁,银行家算法必须清楚
6. 进程间的通讯方式有那些
数据结构和算法
这块建议大家参考《大话数据结构》这本书
常用的算法,冒泡,选择,插入,希尔,归并,堆排,快排,二分查找这些算法最好能熟练掌握其时间复杂度,空间复杂度以及能熟练的手写出对应的算法
树的前、中、后序遍历的递归,非递归方式熟练手写,层序遍历的实现,熟练手写
有了以上基础,大家可以多刷刷算法题了,推荐一本算法数,里边内容很经典,而且是面试,笔试中常问到算法题---《程序员代码面试指南 IT名企算法与数据结构题目最优解 ,左程云著 ,P513》
http://pan.baidu.com/s/1hr9eaiw
Linux
Linux常用命令最好掌握一些,如ps,netstat,grep,awk等,还有vim使用中 的一些常用操作
Java方面
1. 基本类型,引用类型的存储方式等,这些最好与上边jvm内存模型一起复习
2. Java的异常体系
3. Java中多线程的实现方式,以及线程池的实现与使用
4. 线程的生命周期
5. Hashmap,hashtable的实现方式与区别,线程安全问题,hashmap为什么会产生线程安全,如何避免。
6. ConcurrentHashMap分别在jdk1.7,1.8中的实现方式是怎么样的,如何保证的线程安全以及1.8中的红黑树如何使用的
7. 常用的设计模式