面试-框架篇

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 serialization

5、服务提供者能实现失效踢出是什么原理? :zookeeper的临时节点

6、服务上线怎么不影响旧版本? :服务版本号

7、如何解决服务调用链过长的问题? :全链路日志,zipkin

8、说说核心的配置有哪些? :provider的配置,zk地址的配置,consumer的配置

9、dubbo推荐用什么协议? :hession

10、同一个服务多个注册的情况下可以直连某一个服务吗? :可以,需要指定ip

11、画一画服务注册与发现的流程图

12、集群容错怎么做? :failover,failfast,broadcast,failsafe(异常忽略),failback(失败记录,定时重发),forking(并行多个,成功一个则返回)

13、在使用过程中都遇到了些什么问题?

14、dubbo和dubbox之间的区别? :dubbox支持rest

15、你还了解别的分布式框架吗?:thrift,hsf

猜你喜欢

转载自www.cnblogs.com/vindia/p/9070243.html
今日推荐