在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
众所周知,想要从普通的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开发的朋友都了解,Java开发工程师晋升路径的终点要么是CTO(偏管理的技术高层)、架构师(偏技术的技术高层)。而如果你想成为Java架构师需要具备哪些能力呢?
7301
2019-08-08 14:18:16
Java程序员常见并发编程问题集锦
Java语言从第一个版本就内置了对多线程的支持,但是从事Java开发工作的人都知道,编写优质的并发代码难度非常大。相信通过大量的时间之后,会对并发编程有更多的认识,甚至可以获取更多编发编程的方案与选择。这里与大家一起探讨一下Java程序员培训中经常遇到的并发编程的问题。
4603
2019-11-25 18:53:47
Java软件架构师培训要学习哪些课程
Java软件架构师培训要学习哪些课程?架构师在IT行业中占比大概不到10%。Java架构师分为初级、中级、高级三档,目前高水平的软件架构师占比更少了。成为架构师不仅是工作上的简单积累,更需要大量的专业知识,性格上对于非技术能力上有要求,思维方式找准自己定位,不断思考搭建架构师知识体系。
5194
2020-06-10 09:47:35
博学谷Java架构师课程主要讲解哪些内容?
Java架构师课程内容主讲:互联网微服务前沿技术栈、大型互联网分布式架构、全景消息通信实战、架构师源码深度剖析、海量数据处理、服务实战演练篇、大型项目性能优化、软件架构设计攻略、架构师武器库、手撕面试官、黑马顺风车实战项目、面向面试的算法实战、通用解决方案、人工智能、数据挖掘等内容。接下来我们具体来看下。
3281
2022-09-29 18:43:00
架构师书籍推荐
讲实话,要看书只能看看架构师思维相关的数据,开拓一下思路就行,看看别人的看法和观念。
1949
2022-11-11 17:52:32