京东
京东一面
1、Java中的乐观锁悲观锁
https://segmentfault.com/a/1190000016611415
2、单点登录
3、集合的问题
4、反转链表
5、二分查找
6、堆排序
7、JUC
8、Java中如何实现线程安全
9、ArrayList和linkedList区别
10、数组和链表区别
11、volitale
秋招一面
1、数据库死锁及解决方案
https://blog.csdn.net/cbjcry/article/details/84920174
2、数据库分库分表后的分页查询及相关操作怎么解决
https://crossoverjie.top/2019/07/24/framework-design/sharding-db-03/
https://juejin.im/entry/6844903478171533320
https://tech.meituan.com/2016/11/18/dianping-order-db-sharding.html
秋招二面
1、UML
https://www.jianshu.com/p/28200121a33d
2、超时确认,快速重传原理,快速重传重传几次,3次
https://blog.csdn.net/u010710458/article/details/79968648
https://www.cnblogs.com/postw/p/9678454.html
3、singleThreadThreadPool相对于ThreadPoolExecutor的优势
4、可重复读机制
https://www.pianshen.com/article/11361872925/
阿里
笔试两道算法题
- https://www.nowcoder.com/discuss/389676?type=post&order=time&pos=&page=1
- https://www.nowcoder.com/discuss/394432?type=post&order=time&pos=&page=1
钉钉一面
1、final、finnaly
2、重写重载
3、jvm的fullGC排查问题
4、多线程ArrayBlockingQueue、LinkedBlockingQueue的源码分析,如果用100w数据进行插入,哪个更快(Array)
5、linux:如果查找一个文件中的一个指定的字符串出现的数量、如何查找被占用的端口、如何查看cpu的load(使用率)
6、数据库的一个表有name、id、gender、age字段,设置一个联合索引id、name、gender,查询100w的数据用name做where查询,会不会全表查询
7、git:git如何合并分支、git add、git commit、git push的区别。
8、maven:如何查找重复的jar包问题
9、单点登录如何做的,如果保证安全性
缺点:linux实战的不懂
钉钉二面
1、项目有什么难点:应该不管是什么项目都是数据库优化跟JVM问题排查
2、操作系统内存交换方式
3、tcp7层模型
4、平时学习方法
5、自己博客写的好的进行介绍
缺点:重点不突出、操作系统不清楚。
腾讯
pcg一面
1、接口设计原则
2、mvc设计原则,如何设计
3、微服务rpc调用接口如何设计
4、微服务接口调用出现问题,如何设计接口,使得更好定位bug
5、springboot、spring、springcloud的区别
6、数据库如何设计
7、数据量大的时候,数据库表应该怎么设计,怎么插入、怎么查询,提高效率,单表的数据量能支持多大
单表数据量1000W
8、spring AOP
9、spring的动态代理,区别,静态代理,动态代理,cglib
10、dubbo设计架构
11、解耦合的设计模式有哪些?应用场景,却别是什么? 观察者模式等
- https://blog.csdn.net/liman65727/article/details/79762475
12、JVM垃圾回收的过程
13、多线程如何实现,区别,怎么设计多线程
14、多线程与多进程的应用场景,多进程的应用场景
15、list和set的区别,集合其他相关,时间复杂度等等
16、tcp如何保证可靠性传输,滑动窗口
- https://blog.csdn.net/liuchenxia8/article/details/80428157
- https://juejin.im/post/5c9f1dd651882567b4339bce
17、linux的alias命令
18、linux的递归查询文件
19、回文字符串,最长回文字符串
20、reverse方法时间复杂度
pcg二面
1、tcp可靠性
2、项目
3、不包含重复的最长连续子串
pcg三面
1、项目
2、长连接短连接,应用场景
3、不用循环查找最大值
百度
滴滴
头条
一面
1、多线程调度原理
https://zhuanlan.zhihu.com/p/58846439
2、select、poll、epoll
3、多线程原理与操作系统
https://www.zhihu.com/question/25527028
4、redis的单线程模型:单核会有多线程切换吗
https://blog.csdn.net/qq_27185561/article/details/82900426
5、算法、算法、算法、算法。
6、线程池用到的数据结构
7、最长上升子序列的个数
8、为什么myisam快:非聚集索引,B+树,为什么用B+树和B树的区别。为什么B+树IO次数少
9、MyISAM与InnoDB 的区别
https://www.cnblogs.com/fwqblogs/p/6645274.html
10、事务隔离级别:可重复读会发生幻读吗?会
二面
1、hashmap解决冲突方法
2、hashmap扩容机制
3、jvm的jstack作用
4、最长不重复子串
5、https
拼多多
美团
一面
1、多线程相关(如何实现线程、线程池的相关参数)
2、hashmap和hashtable的区别,hashmap的getSize方法需要加锁吗
3、concurrenthashmap的put的过程
4、jvm内存模型、垃圾回收器
5、哪些可以作为GCRoot
6、new一个对象的过程
https://www.cnblogs.com/JackPn/p/9386182.html
7、fullGC的原因,如何排查
8、cpu内存使用过高如何排查
9、spring的AOP
10、spring的IOC
11、redis的删除策略
12、redis如何实现数据一致性
13、dubbo的原理
14、dubbo如何实现远程调用
15、项目介绍
16、单点登录
17、数据库如何调优
18、联合索引abc,哪些情况会出现索引失效
19、分布式项目请求操作经历的过程
二面
1、场景题:4亿用户,访问10个商品,保证等概率,且每个用户每次显示同样的3个商品,不能用数据库,不能用文件保存,不能用redis等框架
思路:用concurrentHashMap,分段锁,然后用多台机器,再限流,保证数据一致性
2、项目介绍
小米
网易
华为
快手
1、项目
2、两数之和等于target
3、http介绍
4、输入网址的过程
5、dubbo原理
6、http和dubbo协议的区别
缺点:写算法还不熟练