总结
- Bean生命周期、BeanFactory、ApplicationContext启动流程
- IOC、AOP原理
- 动态代理、循环引用问题
此次面试过程未涉及Spring,但个人认为Spring源码值得学习。
参考
- 简单讲讲tomcat结构,以及其类加载器流程,线程模型等。
- tomcat如何调优,涉及哪些参数 。
- 讲讲Spring加载流程。
- Spring AOP的实现原理。
JDK动态代理(Dynamic Proxy)基于标准JDK的动态代理功能只针对实现了接口的业务对象CGLIB通过动态地对目标对象进行子类化来实现AOP代理,需要指定@EnableAspectJAutoProxy(proxyTargetClass = true)来强制使用当业务对象没有实现任何接口的时候默认会选择CGLIB
- 讲讲Spring事务的传播属性。
- Spring如何管理事务的。
- Spring怎么配置事务(具体说出一些关键的xml 元素)。
- 说说你对Spring的理解,非单例注入的原理?它的生命周期?循环注入的原理,aop的实现原理,说说aop中的几个术语,它们是怎么相互工作的。
- Springmvc 中DispatcherServlet初始化过程。
SpringMVC DispatcherServlet初始化过程
- netty的线程模型,netty如何基于reactor模型上实现的。
netty学习系列二:NIO Reactor模型 & Netty线程模型
- 为什么选择netty。
如果不用netty,使用原生JDK的话,有如下问题:1、API复杂2、对多线程很熟悉:因为NIO涉及到Reactor模式3、高可用的话:需要出路断连重连、半包读写、失败缓存等问题4、JDK NIO的bug而Netty来说,他的api简单、性能高而且社区活跃(dubbo、rocketmq等都使用了它)。
- 什么是TCP粘包,拆包。解决方式是什么。
- netty的fashwheeltimer的用法,实现原理,是否出现过调用不够准时,怎么解决。
HashedWheelTimer-大量定时器解决方案(Netty与kafka)
- netty的心跳处理在弱网下怎么办。
- netty的通讯协议是什么样的。
-
springmvc用到的注解,作用是什么,原理。
-
springboot启动机制。
- 点击这里有一套答案版的Spring试题。