阿里面试:
一面(主要是jvm,并发,锁,数据结构等基础)
- 自我介绍(说说自己的擅长及拿手的技术)
- 说说treemap和HashMap的区别?HashMap和ConcurrentHashMap的区别?
- HashMap底层如何实现(JDK1.8有所改动)?
- 说说Hash的一致算法?
- 你知道的GC算法和回收策略有哪些?GC的机制是什么?
- 垃圾回收器的基本原理?是否可以立即回收内存?怎么样主动的通知JVM进行垃圾回收?
- 双亲委派模型机制
- 线程池创建的几个核心构造参数是什么?
- 乐观锁和悲观锁?可重入锁和Synchronized?
- 他们都是可重入锁吗?哪个效率更高?
- CountDownLaunch和Cylicbarrior的区别以及分别是在哪样场景下使用的?
- Http和Https的区别以及Https加密的方式?
- 以后的职业规划和想法
二面(主要是数据库,协议,Spring等)
- 自我介绍,聊下自己认为做得很好的项目!
- InnoDB支持的四种事务隔离级别名称是什么? 之间的区别是什么?MySQL隔离级别是什么?
- 说说事务的特性?讲讲对慢查询的分析?
- 你理解的BTree机制?
- 有哪些MySQL常用的优化方法?
- Http请求过程,DNS解析的过程?
- 三次握手和四次握手的过程?
- B+树索引和Hash索引之间的区别?
- Spring IOC如何管理Bean之间的依赖关系,怎么样避免循环依赖?
- SpringBean创建过程中的设计模式?
- 说说AOP的实现原理?
- Tomcat的基本架构是什么?
三面(主要是缓存,高并发,分布式)
- 自己项目中的总结的并发经验
- 说说MySQL的锁并发?加锁的机制是什么?
- 高并发场景下如何防止死锁,保证数据的一致性?
- 集群和负载均衡的算法与实现?
- 说说分库与分表设计?
- 分库分表带来的分布式困境与对应之策有哪些?
- Redis和Setnx命令使如何实现分布式锁的?使用Redis怎么进行异步队列?会有什么缺点?
- 缓存击穿的概念和解决方案?
- Redis的数据结构? 线程模型? Redis的数据淘汰机制?
- Redis的数据一致性问题
- MQ底层原理的实现?
- 阻塞队列不用Java提供的该怎么实现?
- 讲讲负载均衡的原理?
- 如何实现高并发环境下的削峰、限流?
四面(主要项目入手)
- 讲讲项目中用到的中间件(Dubbo/MQ/Zookeeper/Redis/Kafka)?
- 什么情况下会造成雪崩?该怎么避免这种情况?
- 高并发架构的设计思路?
- 以前的项目中遇到的问题和解决策略?
- 生活中遇到过哪些挫折?最后怎么解决的?
京东面试:
一面:
- object的方法,7大方法
- synchronized方法讲解
- synchronized方法实现原理
- volatile关键字的原理
- 锁的分类
- 偏向锁讲解
- NoClassDefFoundError和ClassNotFoundException的区别
- 追问,ClassNotFoundException是不是只发生在编译时,运行时可不可以
- 类加载机 制
- redis过期策略及内存淘汰机制
- mysql的索引种类4种
- Innodb和myIsam的区别
- Innodb的索引结构
- B+树的优缺点
- 海量数据的索引有什么影响
- 选择联合索引还是多索引,最左前缀的规则
- CAP理论的关系
- 见过哪些系统,保证两个牺牲一个的
- 一致性Hash
二面:
- 自我介绍+项目
- 项目中的异步怎么做的?具体说说
- 用户密码的安全性怎么保证的?
- mybatis底层怎么实现的?(不会)
- tcp中拥塞控制和流量控制有什么区别?
- 流量控制具体怎么控制的?
- 拥塞控制具体的算法怎么样的?
- Java中的锁有用到哪些?
- 说说syn、re和cas的区别?
- cas具体怎么现实的?
- 进程和线程的区别?具体讲下什么情况下是多进程,什么情况下是多线程?
- java中的map有哪些?各个简单介绍下
- hashmap的底层数据结构是怎么样的?
- 有没有map是按key的值排序的?底层怎么现实的?
- 类的加载流程?具体每一步做了什么?
- Spring Bean 的作用域。