一年经验与应届生的区别,基础少了,项目多了
目录
自我介绍
项目
Java基础
进阶
自我介绍
不管是几年都会自我介绍吧。。
项目
- 说说项目吧,项目的整体架构你了解多少(我觉得这个比较重要,如果你连你负责的项目整体的架构都不清楚,每天盲目的就负责自己的模块,让你做什么你就做什么,从来不对整个项目关心,说明工作态度不太。。。)
- 说说你负责的模块
- 说说你遇到的问题以及如何解决的(多少得说几个,不出问题的项目你觉得???)
- 说说你负责得模块你认为比较好的地方
- 在你介绍自己项目的途中,会根据项目中所用到的中间件问你(RabbitMQ、Redis、es等等)项目中用到什么问什么
Java基础
Java基础也会问,但不会那么的基础。
- 反射:什么是反射,例如一个接口有两个实现类,如何根据业务需要,利用反射执行不同的实现类的方法(举例子 根据用户的积分多少,调用不同的实现类)
- Spring相关的一些源码知识
- 常用集合:底层是如何实现的,HashMap(问的比较多),HashMap Put的过程,发生碰撞会作什么,使用ArrayList如何保证线程安全。。。等等,***搜Java高级基础一大片。。
- 你们用Jdk几?jdk8有那些特性,Stream用过吗,能列举几个你常用的方法吗(Stream没用过,只能说明你写的代码太。。不美观了吧,太费事了吧)。Lambda表达式?可以列举几个用到Lambda表达式的方法吗
- 多线程,线程池(线程池有哪些设置参数),常用队列,拒绝策略,为什么选择他们。不同拒绝策略应用场景
- Redis:五种存储类型,分别的应用场景,为什么,缓存雪崩,缓存穿透,你们是怎么解决的(解决办法),如何保证缓存与数据库的数据一致性,过期策略,内存淘汰机都有哪些,有哪些区别,那两种持久化方式有什么区别
- 消息队列:RabbitMQ如何保证消息的幂等性,事务性,消费方消费消息的过程中出异常怎么办(ACK机制),线上你们的RabbitMQ宕机过吗,如何恢复消息的。
- MySql:表连接的区别,遇到过慢查询吗,如何解决的,索引的底层是什么,B+树与B树的区别可以简单说一下吗?如何避免索引失效,说一说你分析一条SQL的流程或者说你写完一条SQL后会怎么做(Explain)
进阶
- 数据库某张表数据量太大了,你会怎么做,首先先分表,如何根据不同的用户插入到不同的表呢(Hash取余,类似于HashMap put时的操作)
- 线程池遇到过死锁吗,你是如何解决的;synchronized 和Lock区别能简单说说吗?你们都用什么?为什么?
- 数据库的表你有没有设计过,如果要是你根据一个新的业务场景设计表,你会怎样设计(围绕3NF)
- 部署过项目吗,比如说我要把一个项目在一台服务器上开启多个,即多个端口吗,我如何指定他们(Java-Jar设置参数,别傻到说修改yml重新打包生成)
- Linux常用的命令。查看端口号的命令是什么**(常问)
- 了解过分布式吗,什么是分布式,为什么要使用分布式,常用的组件有哪些?
关于上方的问题,可以看我写的其他博客,链接如下
分治映射
redis过期策略淘汰机制,持久化,雪崩击穿
RabbitMQ
SQL优化
HashMap
一个接口两个实现类利用反射调用不同的实现类
线程池阻塞队列拒绝策略
Stream
差不多了吧,半个小时四十分钟的面试时间,一年两年的面试,觉得我写的不足的,欢迎大家留言。