首页 > 编程语言 >Java面试汇总----概念题

Java面试汇总----概念题

时间:2022-11-19 11:04:28浏览次数:46  
标签:控制器 Java 对象 前端 汇总 代理 视图 ---- Handler


1、集合:

    Vector、Hashtable是线程安全的集合对象,

    ArrayList、Vector对象的底层是由数组实现的,

    LinkedList是线程不安全的,底层是由链表实现的,

    Map 是键值对集合,HashMap和Hashtable都是map的实现类,Hashtable线程安全,不可以存放null。HashMap线程不安全,可以存放null,

2、Spring:

        1)低侵入式的轻量级容器框架,

        2)解耦、易于扩展和维护,

        3)核心:IoC和AOP,

        4)提供了丰富的模块(JDBC、ORM、WEB、TEST、事务....),便于集成其他优秀框架,

3、IoC:

        1)Inversion of Controller :控制反转

        2)对象创建交给spring的bean工厂来代理创建,

        3)实现了代码的解耦,便于维护

4、AOP:

        1)Aspect-Oriented Programming 面向切面编程

        2) 将重用的功能代码提取出来,(关注点代码和业务代码)

        3)将功能按需插入到切面,比如:事务管理、权限控制、日志记录、性能统计等,

        4)提高了代码的维护性,减少了工作量,

        5)关键词: Aspect、JoinPoint、Advice、arount、before、after、afterThrowling、Annotation、

5、SpringMVC的请求流程:

        第一步:发送请求到前端控制器:DispatherServlet,

        第二步:前端控制器请求HandlerMapping查找Handler可以根据Xml配置、注解等进行查找,

        第三步:处理器映射器HandlerMapping向前端控制器返回Handler

        第四步:前端控制器调用处理器适配器去执行Handler,

        第五步:处理器适配器执行Handler

        第六步:Handler执行完成给适配器返回ModelAndView

        第七步:处理器适配器想前端控制器返回ModelAndView,

        第八步:前端控制器请求视图解析器去进行视图解析,根据逻辑视图名解析成真正的视图(JSP、FreeMarker、Thyemleaf等),

        第九步:视图解析器像前端控制器返回View、

        第十步:前端控制器进行试图渲染,将数据模型填充到request域里面,

        第十一步:前端控制器响应用户的请求结果。

 

6、SpringMVC和Struts2的对比:

        1)Struts2是类级别的拦截,一个类对应一个request上下文、springmvc是基于方法级别的拦截,一个方法对应一个request上下文,方法跟url相对应,容易实现restful风格的请求路径。

        2)springmvc的方法之间是独立的,独享request response资源数据,而struts2的类方法可以共享变量,

        3)springmvc集成Ajax,使用方便,提供@ResponseBody 

7、代理模式

        基本作用:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.

静态代理:

静态代理总结:
1.可以做到在不修改目标对象的功能前提下,对目标功能扩展.
2.缺点:

因为代理对象需要与目标对象实现一样的接口,所以会有很多代理类,类太多.同时,一旦接口增加方法,目标对象与代理对象都要维护.
动态代理之 JDK代理---必须实现接口

    类加载器、ClassLoader loader,

    接口的类型(泛型实现)、Class<?>[] interfaces,

    InvocationHandler :事件处理

动态代理之Cglib代理

    可以不用实现接口
 

标签:控制器,Java,对象,前端,汇总,代理,视图,----,Handler
From: https://blog.51cto.com/u_15883840/5870334

相关文章

  • DEBUG远程tomcat
     一、在windows系统中:打开%CATALINE_HOME%/bin下的文件catalina.bat,加入下面这行:setCATALINA_OPTS=-server-Xdebug-Xnoagent-Djava.compiler=NONE-Xrunjdwp:transport......
  • sql优化
     以下针对mysql数据库 sql优化方式:1设计合理的数据表结构2对数据表建立合适有效的数据库索引3编写简洁高效的SQL语句--------------------------------------表结构设......
  • 小知识点-第四讲
    装饰模式:它拥有一个设计非常巧妙的结构,他可以动态添加对象功能,通过委托机制复用组件功能在运行时将这些功能组件进行叠加,从而成为一个“超级对象”,使之拥有所有的这些组件......
  • 小知识点-第三讲
    享元模式:利用享元模式进行对象共享,从而提升系统性能(空间开销和创建创建开销)。在开发的过程中也经常使用此模式。 原理: 当一个应用中使用了大量的对象,这些对象造成了很大的......
  • android 组件属性描述
    属性名称描述android:background设置背景色/背景图片。可以通过以下两种方法设置背景为透明:”@android:color/transparent”和”@null”。注意TextView默认是透明的,不用写此......
  • eclipse 快捷键失效解决方法
    有时候eclispe快捷键失效了,编码起来太难受了。 1、Eclipse下进入Windows->Preperences->General->keys2、把wordcompletion的快捷键设置alt+/删掉!3、把ContentAssist......
  • 无线网桥能带多少个摄像头
    ​​​​​     在无线监控工程的前期规划时,有很多朋友完成了监控点位及有线网络的部署规划,却对无线网桥带摄像头个数没有底。对于该问题有很多朋友咨询,其实无线网桥......
  • 施耐德PLC TM218如何实现远程上传下载程序?
    施耐德TM218支持IEC61131-3标准的六种编程语言,具备模块化、结构紧凑、功能全面等特点,在工业控制领域应用广泛,是市场上常见的产品之一,性价比较高。因此,对于采购施耐德PLC的企......
  • GOM/GEE引擎 假人登陆速度修改教程
    打开引擎M2-选项-功能设置-假人系统这个是登陆速度总控制假如你脚本设置的登陆速度是1秒一个,你觉得快了可以在引擎上面控制速度但是如果你脚本设置的是30秒登陆一个,你在引擎......
  • 5.3.1
    图案填充命令:HATCH(H)【绘图】|【图案填充】使用填充图案、实体填充或渐变填充来填充封闭区域或选定对象。渐变填充填充命令:GRADIENT(GRA)使用渐变填充填充封闭区域......