Spring
1、BeanFactory 和 ApplicationContext 有什么区别:ApplicationContext继承自BeanFactory,多了父子容器,默认预先初始化全部单例,资源访问2、Spring Bean 的生命周期:
3、Spring IOC 如何实现:反射
4、说说 Spring AOP:
5、Spring AOP 实现原理:动态代理
6、动态代理(cglib 与 JDK):jdk需要有接口继承,cglib不需要
7、Spring 事务实现方式:注解@Transaction
8、Spring 事务底层原理:aop的方式实现了事务控制逻辑植入,aop底层本身又是动态代理
9、如何自定义注解实现功能:注解声明,注解处理器
10、Spring MVC 运行流程:dispatcher(Controller)转发请求,查询mapping获取到Action并包装调用(Model)返回结果,获取对应的resolver(View)来处理返回结果
11、Spring MVC 启动流程:Servlet--->WebApplicationContext(初始化父级容器applicationContext.xml,再初始化子级容器spring-servlet.xml)--->springmvc组件
12、Spring 的单例实现原理:map的方式
13、Spring 框架中用到了哪些设计模式:工厂模式,单例模式,观察者模式。。。
14、Spring 其他产品(Srping Boot、Spring Cloud、Spring Secuirity、Spring Data、Spring AMQP 等)
Netty
1、为什么选择 Netty:因为netty很好的封装了nio,屏蔽了nio的处理细节,使用方便2、说说业务中,Netty 的使用场景:高性能通信的场景,比如rpc调用,消息中间件
3、原生的 NIO 在 JDK 1.7 版本存在 epoll bug:空转
4、什么是TCP 粘包/拆包:拆包-数据包过大链路层一个帧放不下,就拆分为多个帧发送|粘包-数据包过小,多个数据包合并到一个帧发送
5、TCP粘包/拆包的解决办法:
6、Netty 线程模型:bossEventGroup, WorkEventGroup
7、说说 Netty 的零拷贝:数据写入和读取共用同一块内核态buffer,不需要内核态和用户态进行切换
8、Netty 内部执行流程:
9、Netty 重连实现:
10、Reactor模型:
Mybatis:
1,讲下MyBatis的缓存:一级缓存(session),二级缓存(namespace)
2,Mybatis的执行过程
dubbo:
1、默认使用的是什么通信框架,还有别的选择吗? :netty,有,mina
2、服务调用是阻塞的吗? :阻塞3、一般使用什么注册中心?还有别的选择吗?:zookeeper,有,redis 4、默认使用什么序列化框架,你知道的还有哪些? :hession,有,dubbo/java serialization5、服务提供者能实现失效踢出是什么原理? :zookeeper的临时节点6、服务上线怎么不影响旧版本? :服务版本号7、如何解决服务调用链过长的问题? :全链路日志,zipkin8、说说核心的配置有哪些? :provider的配置,zk地址的配置,consumer的配置9、dubbo推荐用什么协议? :hession10、同一个服务多个注册的情况下可以直连某一个服务吗? :可以,需要指定ip11、画一画服务注册与发现的流程图 12、集群容错怎么做? :failover,failfast,broadcast,failsafe(异常忽略),failback(失败记录,定时重发),forking(并行多个,成功一个则返回)13、在使用过程中都遇到了些什么问题? 14、dubbo和dubbox之间的区别? :dubbox支持rest15、你还了解别的分布式框架吗?:thrift,hsf