为什么不想做 Java 了,6 年经验去面试 10 分钟结束,现在 Java 面试怎么这么难
什么是内存溢出, 内存泄露? 他们的区别是什么?
引起类加载操作的行为有哪些?
介绍一下 JVM 提供的常用工具
Full GC 、 Major GC 、Minor GC 之间区别?
什么时候触发 Full GC ?
…
3、Java 并发
什么是可重入锁、乐观锁、悲观锁、公平锁、非公平锁、独占锁、共享锁?
讲讲 ThreadLocal 的实现原理?
ThreadLocal 作为变量的线程隔离方式,其内部是如何做的?
说说 InheritableThreadLocal 的实现原理?
并发包中锁的实现底层(对 AQS 的理解)?
讲讲独占锁 ReentrantLock 原理?
4、Java 集合
HashSet 和 TreeSet 有什么区别?
HashSet 的底层实现是什么?
LinkedHashMap 的实现原理?
为什么集合类没有实现 Cloneable 和 Serializable 接口?
什么是迭代器 (Iterator)?
Iterator 和 ListIterator 的区别是什么?
5、Spring 全家桶
Spring bean 的生命周期能不能结合源码回答一下这个问题、或者结合一下 bean 的生命的意义来回答,就是 Spring 为什么需要找个生命周期
Spring 容器当中包含了哪些常用组件(至少说 5 个),作用是什么,场景是什么;比如 BeanDefinition;再比如 BeanDefinitionMap
Spring 自动注入的原理是什么?能不能从源码来说明一下这个问题;我们常常说的自动注入,到底怎么注入的?有什么坑?怎么让你一个属性不自动注入
Spring 源码当中如何来搞定循环依赖的?Spring 支持循环依赖?生命情况不支持?支持的原理是什么?能不能从源码来说明一下?
如何来二次扩展 Spring,比如自定义一个实现自动注入的注解;不使用 @Autowried,自己如何开发一个 @XXX 来完成自动注入?
mybatis 源码当中利用了 Spirng 的那些扩展?mybatis 扩展 Spring 之后有哪些问题是无法解决的?比如二级缓存怎么解决
eureka 源码当中如何扩展的 Spring?比如怎么动态插拔 eureka 的功能,利用了 Spring 的那个技术点,或者从源码说一下
6、Redis
Redis 持久化机制有哪些? 区别是什么?优缺点是什么?
Redis 支持的数据类型
为什么 Redis 需要把所有数据放到内存中?
Redis 是单线程的吗?
Redis 的缓存失效策略有哪几种?
什么是缓存命中率?提高缓存命中率的方法有哪些?
Redis 全局命令及数据库管理
Redis 设计订单应用场景
Redis 缓存雪崩讲讲看?
什么是缓存穿透?
Redis 重启时加载 AOF 与 RDB 的顺序
7.中间件
Dubbo 完整的一次调用链路介绍;
Dubbo 支持几种负载均衡策略?
Dubbo Provider 服务提供者要控制执行并发请求上限,具体怎么做?
Dubbo 启动的时候支持几种配置方式?
了解几种消息中间件产品?各产品的优缺点介绍;
消息中间件如何保证消息的一致性和如何进行消息的重试机制?
Spring Cloud 熔断机制介绍;
Spring Cloud 对比下 Dubbo,什么场景下该使用 Spring Cloud?
8、分布式
消息中间件如何解决消息丢失问题
Dubbo 的服务请求失败怎么处理
重连机制会不会造成错误
对分布式事务的理解
如何实现负载均衡,有哪些算法可以实现?
Zookeeper 的用途,选举的原理是什么?
数据的垂直拆分水平拆分。
zookeeper 原理和适用场景
zookeeper watch 机制
redis/zk 节点宕机如何处理
分布式集群下如何做到唯一序列号
如何做一个分布式锁
用过哪些 MQ,怎么用的,和其他 mq 比较有什么优缺点,MQ 的连接是线程安全的吗
MQ 系统的数据如何保证不丢失
列举出你能想到的数据库分库分表策略;分库分表后,如何解决全表查询的问题。
评论