关于面试,你有没有过这种经历,不面不知道,一面吓一跳,这个原理那个算法,一问三不知。
连面几家都不过,自信心备受打击。
朋友,该学习学习了,通过下面的面试题你会总结出java面试无非就几个东西:
java基础:集合、多线程、jvm、算法、设计模式……
框架:spring全家桶、orm、消息队列、dubbo、zookeeper……
db:mysql、oracle、redis……
其他:linux、高并发、特殊业务场景、运维、人事……
好像看起来也不少?!我就总共经历了18轮面试而已……
一、java基础
- 冒泡排序原理,怎么优化可以更快?
- 了解什么设计模式?你是怎么使用的?
- ArrayList源码分析,ArrayList和LinkedList区别。
- HashMap源码分析,HashMap和ConcurrentHashMap区别。
- HashSet源码分析。
- 多线程种类,线程要素,有几种线程池?怎么使用线程池?核心线程数和最大线程数有什么区别?
- 内存模型,运行时数据区各部分的作用。
- 如果判断哪些对象应该被回收?GCRoot对象有哪些?垃圾收集器原理,垃圾收集算法。
- 对象分配原理和布局。
- synchronize原理。
- jdk8 HashMap新特性。
- StringBuffer和StringBuild区别。
- 删除双向链表倒数第n个元素,手写算法。
- 1234,实现倒序,手写算法。
二、框架相关
- spring初始化过程源码分析,spring是怎么初始化注解的bean?
- spring的设计模式,你在生产中是怎么使用的?
- aop原理。
- springmvc初始化过程。spring过滤器原理。
- springboot初始化过程。springboot怎么加载配置文件的?
- springboot怎么实现自动化配置。
- springcloud设计模式。
- springcloud服务注册发现的原理。
- springcloud负载均衡原理。
- springcloud feign组件抽取方案。
- springcloud 降级服务实现原理。
- springcloud做过哪些配置项。
- 微服务链路跟踪方案。
- mybatis优缺点。
- mybatis的$和#区别。
- mybatis 自定义sql查询原理。
- mq如何保证消息不被重复消费。
- zookeeper 这个请自行百度相关面试题,我不记得了……
- dubbo 这个请自行百度相关面试题,我不记得了……
- git基本命令,用途是什么。
三、db相关
- mysql 支持哪些搜索引擎。
- innodb和myisam的索引结构、索引原理分析。
- b+tree和b-tree区别。
- mysql一级缓存、二级缓存。
- 分库分表方案。
- 索引最左匹配原则,为什么需要最左匹配?
- mysql、oracle多数据源访问设计方案。
- redis集群方案。
- redis分布式锁。
- redis缓存穿透,解决方案。
- redis缓存雪崩,解决方案。
- redis源码看过多少?
- redis持久化方案。
四、linux
- 如何查看磁盘大小、目录大小、内存使用情况。
五、高并发
- 高并发限流思想。
- RateLimter源码。
- 设计一个秒杀系统。
六、业务场景
- 上传大数据量的文件处理方案。
- 大数据量分页查询怎么优化?
- 微信支付回调被劫持咋办?
- 如何防止订单重复支付?
- 微服务rpc接口改变,如何做兼容。
- 如何排查多服务调用的线上问题。
- 微服务日志收集怎么配置的。
七、运维
- docker相关。
- k8s相关。
- jenkins相关。
- 运维平台架构和部署原理。
八、人事
- 为什么从事开发这行?
- 有没有遇到什么难题?怎么解决的?
- 平时怎么学习的?
- 你的生活是怎样的?
- 和你关系最好的一位朋友ta是怎样的人?
- 当前薪资水平及福利待遇。
- 职业规划
- 离职原因
九、其他
- 前公司某产品商业模式。
- 项目管理流程。
网友评论