原创 Java架构师经典能力提升笔试题汇总

发布时间:2019-10-15 17:31:07 浏览 2933 来源:博学谷 作者:照照

    众所周知,想要从普通的Java开发程序员成长为Java架构师,并不是一件轻松的事。首先Java架构师需要了解框架源码分析、性能优化、池技术等等知识技能。本文为大家整理了Java架构师经典能力提升笔试题汇总,感兴趣的同学赶紧来做一做吧!

     

    Java架构师笔试题

     

    1、什么是Spring框架?Spring框架有哪些主要模块?

     

    答:Spring框架是一个为Java应用程序的开发提供了综合、广泛的基础性支持的Java平台。Spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring框架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安心的集成Spring框架,不必担心Spring是如何在后台进行工作的。Spring框架至今已集成了20多个模块。这些模块主要被分如下图所示的核心容器、数据访问/集成、Web、AOP(面向切面编程)、工具、消息和测试模块。

     

    2、使用Spring框架能带来哪些好处?

     

    答:(1)DependencyInjection(DI)方法使得构造器和JavaBeanproperties文件中的依赖关系一目了然。与EJB容器相比较,IoC容器更加趋向于轻量级。这样一来IoC容器在有限的内存和CPU资源的情况下进行应用程序的开发和发布就变得十分有利。

     

    (2)Spring并没有闭门造车,Spring利用了已有的技术比如ORM框架、logging框架、J2EE、Quartz和JDKTimer,以及其他视图技术。

     

    (3)Spring框架是按照模块的形式来组织的。由包和类的编号就可以看出其所属的模块,开发者仅仅需要选用他们需要的模块即可。

     

    (4)要测试一项用Spring开发的应用程序十分简单,因为测试相关的环境代码都已经囊括在框架中了。更加简单的是,利用JavaBean形式的POJO类,可以很方便的利用依赖注入来写入测试数据。

     

    (5)Spring的Web框架亦是一个精心设计的WebMVC框架,为开发者们在web框架的选择上提供了一个除了主流框架比如Struts、过度设计的、不流行web框架的以外的有力选项。

     

    (6)Spring提供了一个便捷的事务管理接口,适用于小型的本地事物处理(比如在单DB的环境下)和复杂的共同事物处理(比如利用JTA的复杂DB环境)。

     

    3、请讲述String 和StringBuffer的区别。

     

    答:String 类所定义的对象是用于存放“长度固定”的字符串。StringBuffer类所定义的对象是用于存放“长度可变动”的字符串。

     

    4、请解释下Spring框架中的IoC?

     

    答:Spring中的org.springframework.beans包和org.springframework.context包构成了Spring框架IoC容器的基础。BeanFactory接口提供了一个先进的配置机制,使得任何类型的对象的配置成为可能。ApplicationContex接口对BeanFactory(是一个子接口)进行了扩展,在BeanFactory的基础上添加了其他功能,比如与Spring的AOP更容易集成,也提供了处理messageresource的机制(用于国际化)、事件传播以及应用层的特别配置,比如针对Web应用的WebApplicationContext。org.springframework.beans.factory.BeanFactory是SpringIoC容器的具体实现,用来包装和管理前面提到的各种bean。BeanFactory接口是SpringIoC容器的核心接口。IOC:把对象的创建、初始化、销毁交给spring来管理,而不是由开发者控制,实现控制反转。

     

    5、什么是SpringMVC?

     

    答:SpringMvc是spring的一个模块,基于MVC的一个框架,无需中间整合层来整合。
     

    SpringMVC的优点:(1)它是基于组件技术的.全部的应用对象,无论控制器和视图,还是业务对象之类的都是java组件.并且和Spring提供的其他基础结构紧密集成.

     

    (2)不依赖于ServletAPI(目标虽是如此,但是在实现的时候确实是依赖于Servlet的)

     

    (3)可以任意使用各种视图技术,而不仅仅局限于JSP

     

    (4)支持各种请求资源的映射策略

     

    (5)它应是易于扩展的

     

    6、SpringMVC工作原理?

     

    (1)客户端发送请求到DispatcherServlet

     

    (2)DispatcherServlet查询handlerMapping找到处理请求的Controller

     

    (3)Controller调用业务逻辑后,返回ModelAndView

     

    (4)DispatcherServlet查询ModelAndView,找到指定视图

     

    (5)视图将结果返回到客户端

     

    7、什么是MyBatis?

     

    答:MyBatis是一个可以自定义SQL、存储过程和高级映射的持久层框架。讲下MyBatis的缓存:MyBatis的缓存分为一级缓存和二级缓存,一级缓存放在session里面,默认就有,二级缓存放在它的命名空间里,默认是不打开的,使用二级缓存属性类需要实现Serializable序列化接口(可用来保存对象的状态),可在它的映射文件中配置。

     

    8、Mybatis是如何进行分页的?分页插件的原理是什么?

     

    (1)Mybatis使用RowBounds对象进行分页,也可以直接编写sql实现分页,也可以使用Mybatis的分页插件。

     

    (2)分页插件的原理:实现Mybatis提供的接口,实现自定义插件,在插件的拦截方法内拦截待执行的sql,然后重写sql。举例:selectfromstudent,拦截sql后重写为:selectt.from(select*fromstudent)tlimit0,10

     

    9、简述Mybatis的插件运行原理,以及如何编写一个插件?

     

    答:(1)Mybatis仅可以编写针对ParameterHandler、ResultSetHandler、StatementHandler、Executor这4种接口的插件,Mybatis通过动态代理,为需要拦截的接口生成代理对象以实现接口方法拦截功能,每当执行这4种接口对象的方法时,就会进入拦截方法,具体就是InvocationHandler的invoke()方法,当然,只会拦截那些你指定需要拦截的方法。

     

    (2)实现Mybatis的Interceptor接口并复写intercept()方法,然后在给插件编写注解,指定要拦截哪一个接口的哪些方法即可,记住,别忘了在配置文件中配置你编写的插件。

     

    10、谈谈你对抽象类和接口的理解。
      

    答:定义抽象类的目的是提供可由其子类共享的一般形式、子类可以根据自身需要扩展抽象类、抽象类不能实例化、抽象方法没有函数体、抽象方法必须在子类中给出具体实现。他使用extends来继承。接口:一个接口允许一个类从几个接口继承而来,Java 程序一次只能继承一个类但可以实现几个接口,接口不能有任何具体的方法,接口也可用来定义可由类使用的一组常量。其实现方式是interface来实现。

     

    以上就是Java架构师经典能力提升笔试题汇总。大家都刷过一遍了吗?不明白的地方可以多看看参考答案,或是复习一下相关知识点,查漏补缺。

    申请免费试学名额    

在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!

上一篇: Java语言核心语法和Java核心基础知识教程内容 下一篇: MySQL数据库如何建立索引?有哪些技巧?

相关推荐 更多

热门文章

  • 分组和聚合函数的组合怎么使用?代码怎么写?
  • 外键SQL语句的编写怎么用?
  • 数据库设计之三范式是什么?有什么作用?
  • 子查询的SQL语句怎么写?如何使用?
  • 连接查询自连接的SQL语句怎么写?
  • 连接查询右连接的SQL语句怎么写?
  • 连接查询左连接的SQL语句怎么写?
  • 连接查询内连接的SQL语句怎么写?
  • Group by分组查询怎么用?需要掌握哪些内容?
  • 常用的聚合函数有哪些?怎么用?
  • 查看更多

扫描二维码,了解更多信息

博学谷二维码