2021面试经历
2021年在深圳差不多面试30几家公司,其中有武汉金山云、美的子公司美云智数、深圳携程旅游网、金蝶等公司。 总体感觉:大公司的面试官一般比较正规,会根据题目给出相应的提示,循循善诱,特点喜欢连环追问,一般小公司主要面项目,会根据项目中使用的技术框架来提问,现总结这次经历中常问的面试题 集合相关: 1. java集合有哪些? ArrayList和LinkedList的实现原理和优缺点,TreeMap、LinkedHashMap和HashMap的区别,HashSet的实现,HashMap原理put过程,怎么解决Hash冲突的,怎么实现HashMap的扩容?有没有线程安全的集合,怎么实现?ConcurrentHashMap的实现原理,一般这个时候你会回答用到了同步锁,那么会问你java中还有哪些锁?可能会涉及到可重入锁ReentLock和悲观锁Synchronized的区别。 线程相关:多线程实现方式,线程中start方法和run方法的区别,线程中直接执行方法会怎么样,线程多次执行start方法,线程池参数理解,线程池的创建(Executors创建的问题),工作原理,有哪些拒绝策略并解释含义,线程之间通信方式,具体问过notify和wait怎么实现的,线程的join方法,线程中关键字volatile,线程死锁怎么处理(实际上是要问同步锁synchronized),ThreadLocal在项目中有使用过,实现原理等。 MySQL相关:存储引擎有哪些,有什么特点及优缺点?查询慢怎么处理,索引类型有哪些?索引失效的原因,索引实现原理,主键索引和普通索引的区别,高并发的情况下,怎么判断sql执行慢的原因(考察mysql调优的工具使用方法和explain关键字的用法),分库分表有使用过吗?水平分割和垂直分割的区别及依据原则,涉及到场景问题时,分库分表的情况下怎么获取数据,数据库中主键ID范围超出会出现什么问题?mysql为什么不用Hash索引而用B+树结构? JVM相关:JVM内存模型及每个区域的作用,JVM垃圾回收机制,JVM垃圾回收算法有哪些及简述算法实现过程,JVM调优工具等。 Tomcat相关:Tomcat怎么设置线程访问数量,config.xml中相关参数说明等 框架相关:SpringIOC和SpringAOP的理解,Spring IOC加载过程,Spring Bean生命周期,Spring循环依赖的解决方案,Spring相关注解,SpringBoot实现机制,SpringBoot怎么实现在本地Tomcat上运行,SpringBoot和SpringMVC的区别,SpringBoot怎么实现资源初始化,SpringMVC执行流程,MyBatis中#和$的区别(这个有几个区别,最好全部答出来),MyBatis中缓存,MyBatis中一对一、一对多和多对一,MyBatis中有哪些常用的标签,MyBatis中如果要插入数据量很大的List怎么处理? redis相关:redis数据类型及应用场景和各自的时间复杂度,redis持久化(RDB机制和AOF机制实现及相应优缺点),redis和关系型数据库相比,为什么操作数据快?redis部署(考察redis集群问题),redis数据满了怎么处理?redis和数据库的数据不一致问题,缓存穿透、缓存击穿和缓存雪崩的区别及处理方案。 版本控制:git常用的命令有哪些,会管理代码吗? 容器和部署:Jekens和Docker怎么部署软件。 Linux相关:常用命令有哪些? 大概就这么多,睡觉了!
|