Skip to content

Latest commit

 

History

History
246 lines (156 loc) · 6.54 KB

各大公司面经.md

File metadata and controls

246 lines (156 loc) · 6.54 KB

京东

京东一面

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/

阿里

笔试两道算法题

钉钉一面

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、解耦合的设计模式有哪些?应用场景,却别是什么? 观察者模式等

12、JVM垃圾回收的过程 13、多线程如何实现,区别,怎么设计多线程 14、多线程与多进程的应用场景,多进程的应用场景 15、list和set的区别,集合其他相关,时间复杂度等等 16、tcp如何保证可靠性传输,滑动窗口

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协议的区别

缺点:写算法还不熟练

Tip:本来有很多我准备的资料的,但是都是外链,或者不合适的分享方式,所以大家去公众号回复【资料】好了。

现在免费送给大家,在我的公众号 好好学java 回复 资料 即可获取。

有收获?希望老铁们来个三连击,给更多的人看到这篇文章

1、老铁们,关注我的原创微信公众号「好好学java」,专注于Java、数据结构和算法、微服务、中间件等技术分享,保证你看完有所收获。

2、给俺一个 star 呗,可以让更多的人看到这篇文章,顺便激励下我继续写作,嘻嘻。