面试岗位:java开发工程师
面试公司:北京市商汤科技开发有限公司面试过程:一面·java8里如何用 list转map一行代码,注意要考虑key值相同的情况。·本地缓存有哪些?如何实现。·说说你在项目中用到的redis场景,他的数据结构是什么样的?redis常用数据结构是什么?·springBoot如何做全局配置?如何条件注入?如何做定时任务?(@ControllerAdvice,@Conditional,@Scheduled)·说下做的项目·mysql 如何调优?慢查询如何优化?·说下mybatis 二级缓存·你刚说命中索引,那你建索引的时候,一般选择什么数据结构?暂时只记得这些。。
二面·springCloud 用了哪些组件各有什么用?一个请求在springCloud里会经过哪些组件? ·你刚提到ribbon,他是做什么用的?独立存在吗?·ThreadLocal 是什么?使用场景?会有什么问题?和线程池使用会有问题吗?为什么会内存泄露?(争论了一会)·hashMap的底层?put方法做了哪些事?·sychronized和reentrantLock的区别?AQS做什么的?·sql语句如何调优?讲下你平常如何优化sql?·事务隔离级别?Mysql默认隔离级别是什么?·给一个list,一行语句,对里面的对象排序。sort()要传什么参数?·对象里为什么要有hashCode?对象重写equals时为什么要重写hashCode?不重写会怎样?·HashMap如何处理hash冲突?·sychronized用法?锁普通方法和锁静态方法有什么区别?·volatile 简单说下他的用处和原理。它是如何实现内存可见的又是如何阻止指令重排序的?·一个volatile 变量的自增是线程安全的吗?为什么?·redis有哪些持久化方法?各有什么区别?aof主要有什么缺点?·讲下jvm运行时数据区。很遗憾,因为导航错误,错过了终面。。



