忽略自我介绍部分
商汤
一面
- 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运行时数据区。
很遗憾,因为导航错误,错过了终面。。
申通
一面
- 项目中用到的redis的场景。redis为什么这么快?仅仅因为是读内存吗?redis数据结构有哪些?
- java8里jvm运行时数据区,堆中有哪些分代?用了什么垃圾回收算法?分代比例是多少?为什么是这个比例?
- mysql 如何调优的?说下执行计划列表中参数(任意两个)?sql慢的话一定是没有命中索引吗?如果现在有个查询慢仅仅是因为数据量大,你准备怎么优化?为什么?
- 索引的数据结构有哪些?各有什么区别?
- 讲下对aop的理解,底层原理是什么?jdk与cglib的区别在哪里?各有什么优势和差异?有没有一种情况是aop无法代理的?有没有碰到过@Transactional失效的情况?知道为什么会失效吗?(碰到但不知道,他解释是和代理失败有关)
- 说下你了解的数据结构有哪些?说下如何计算树的深度。
- synchronized和lock区别在哪里?说下synchronized锁升级过程?
- Lock如何做到公平锁和非公平锁?抢占式和非公平锁是一个概念吗?
- 说下项目里哪里用到多线程?用的线程池是什么?为什么用newFixedThreadPool?它有哪些弊端?线程池参数有哪些?阻塞队列用的什么?为什么用这个?有什么弊端?(无界队列会导致内存溢出)
- 平时如何学习的。
申通的连珠炮更猛点。。
比较写实了,有新的面试会持续更新。