暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Java面试:2021.07.11

Java面试百分百 2021-08-16
518

1、BIO、NIO、AIO 有什么区别?

BIO:Block IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低;

NIO:New IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用;

AIO:Asynchronous IO 是 NIO 的升级,也叫 NIO2,实现了异步非堵塞 IO ,异步 IO 的操作基于事件和回调机制。



2、Spring框架中都用到了哪些设计模式?

1. 工厂模式:BeanFactory就是简单工厂模式的体现,用来创建对象的实例;

2. 单例模式:Bean默认为单例模式;

3. 代理模式:Spring的AOP功能用到了JDK的动态代理和CGLIB字节码生成技术;

4. 模板方法:用来解决代码重复的问题。比如. RestTemplate, JmsTemplate, JpaTemplate;

5. 观察者模式:定义对象键一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知被制动更新,如Spring中listener的实现--ApplicationListener。



3、SpringMVC主要组件?

1.前端控制器 DispatcherServlet:接收请求、响应结果,相当于转发器,有了DispatcherServlet 就减少了其它组件之间的耦合度;

2.处理器映射器 HandlerMapping:根据请求的URL来查找Handler;

3.处理器适配器 HandlerAdapter:负责执行Handler;

4.处理器 Handler:处理业务逻辑的Java类;

5.视图解析器 ViewResolver:进行视图的解析,根据视图逻辑名将ModelAndView解析成真正的视图(view);

6.视图View:View是一个接口, 它的实现类支持不同的视图类型,如jsp,freemarker,pdf等等。



4、Vue为什么不建议直接操作DOM?

因为操作dom对象后,会触发一些浏览器行为,比如布局(layout)和绘制(paint)。paint 是一个耗时的过程,然而layout是一个更耗时的过程,我们无法确定layout一定是自上而下或是自下而上进行的,甚至一次layout会牵涉到整个文档布局的重新计算。浏览器的layout是lazy的,也就是说:在 js脚本执行时,是不会去更新DOM的,任何对DOM的修改都会被暂存在一个队列中,在当前js的执行上下文完成执行后,会根据这个队列中的修改,进行一次layout。出于性能的考虑,不建议直接操作DOM。


文章转载自Java面试百分百,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论