6家Java后端社招面经
有赞:
一面:- hashMap原理,put和resize过程
- 线程池类型
- concurrentHashMap分段锁原理,用java8实现和java7有什么区别
- B-树B+树区别,数据库索引原理,组合索引怎么使用?最左匹配的原理
- spring生命周期,几种scope区别,aop实现有哪几种实现,接口***和类***会有什么区别
二面:
- 项目介绍
- 斐波拉契数列非递归实现
- 短URL实现
三面:HR+主管
你现在做的事情,为什么要离职?对你性格生活薪资全面了解
字节跳动:
一面:- 自我介绍
- 做的项目价值,架构设计,给你一个集群你会怎么分布,考虑哪些因素,容灾、负载均衡
- 让你来设计咸鱼,你会怎么设计?模型设计
- linux常用指令
二面:
- 算法在线编程
- 项目,主要做了什么,项目中碰到的问题有哪些,都市怎么解决?你觉得那个项目是最有挑战的
- java多线程,线程池选型,为什么要选这个,底层实现原理
三面:
- 你最熟悉的项目,做了什么,为什么这么做,项目价值
- 推广广告,你会怎么设计?
- java基础,JVM内存模型 G1和CMS垃圾回收器
- 如何中断线程,await和sleep区别
- 设计秒杀系统
- spring生命周期,几种scope区别
四面:
跟上面差不多
五面:
主管面,问项目,然后说部门现在在做的内容
六面HR:
期望薪资,为什么要离职,现在的级别
网易:
一面:- RPC原理,netty原理
- hashMap原理
- redis缓存回收机制,准备同步,哨兵机制
- 统计10分钟内订单的亏损,你会怎么设计
- 项目:你做了什么,为什么要这么做,用了什么技术要解决什么问题
二面:
- 分布式缓存redis原理,zookeeper锁是如何实现的
- 分布式缓存读写不一致问题
- java线程你怎么使用
- 数据库是如何调优的
- git rebase命令发生了什么
- 讨论项目
三面HR:
薪资,为什么要离开,级别
华为:
一面:
- 结构数据库和非结构数据库区别,你了解的非结构数据库有哪些
- 频繁的增删数据量某个表,数据库最终数据只有几万或者更少,为什么查询会变慢
- 数据如果出现了阻塞,你是怎么排查的,top和jstack命令用过没,jstack命令的nid是什么意思,怎么查看java某个进程的线程
- 大数据算法聚类算法有哪些
- 写一个算法判断某个数是2的n次方
- 说你最熟悉的项目
二面HR:
- 薪资级别
- 如何抗压
- 平时喜欢做什么
- 对加班什么看法
- 你想做什么,介绍他们部门做的东西
- 你自己做的项目,怎么设计的
美团
分布式缓存redis,dubbo原理,分布式缓存锁的实现
mysql分库分表原则
- 为什么要分这么多库这么多表- 基于什么考虑?
- 如何实现数据库动态扩容?
线程池coreSize,maxSize怎么设置,依据是什么?场景1:单台机器4核,服务A请求时间为5S,但是A调用的某个服务B耗时4.98S,A服务超时时间是10S,问100QPS的访问量,动态线程池CoreSize,maxSize,等待队列怎么指定?
设计一个订餐排队系统,底层模型有哪些
滴滴
基本也是问java基础,线程池,跟二面面试官讨论了些设计模式,模型设计,接口设计的原则,分布式缓存、rpc原理、消息幂等怎么实现、redis、zookeeper原理,HSF和Dubbo区别,整体跟之前面试问的差不多。前端写过一些,所以问了些react和nodejs
HR:离职原因,这么多公司offer你会考虑滴滴吗
总结
整体上面试总共就是考察这么几个部分:- java基础知识和源码
- 线程池,这个每个面试都必问,结合使用场景和原理说一说
- 分布式必要要去了解,每个面试基本都会问,redis、dubbo、kafka或者其他,集群管理zookeeper
- 数据库性能调优,组合索引和原理也是必问
- 业务设计能力和架构negligence考察