Java练习题03

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java练习题03相关的知识,希望对你有一定的参考价值。

(单选题)下面关于BeanFactory接口说法正确的是( )
A.BeanFactory是单例模式的实现,负责创建和管理bean
B.BeanFactory是工厂模式的实现,负责创建和管理bean
C.ApplicationContext类是它的实现类
D.以上说法都不对
【正确答案】B
【答案解析】此题考查BeanFactory

(单选题)Spring中around通知的目标对象要实现的接口中invoke中方法的参数是()
A.方法
B.目标对象
C.方法执行参数
D.Exception
【正确答案】C
【答案解析】此题考查Spring中around通知

(单选题)下列切入点表达式错误的是 ()
A.* cn.itcast.aop.Demo.add()
B. ...(..)
C.add(int)
D.int cn.itcast.Demo.add(int,int)
【正确答案】C
【答案解析】此题考察Spring的切入点表达式

(单选题)下面关于构造注入优点说法错误的是( )
A.构造期即创建一个完整、合法的对象
B.不需要写繁琐的set方法的
C.对于复杂的依赖关系,构造注入更简洁,直观
D.在构造函数中决定依赖关系的注入顺序
【正确答案】C
【答案解析】此题考查构造注入

(单选题)关于浏览器中输入某个地址,直接访问资源访问地址,页面显示helloworld
以下哪个顺序是正确的()
1)创建Spring MVC 后端处理器(Controller)
2)创建spring maven web项目
3)部署运行spring web项目(tomcat)
4)Web.xml中配置Spring MVC 前端核心处理器(DispatcherServlet)
5)添加Spring MVC 依赖库(建议通过maven添加)
6)spring-mvc.xml文件中配置Spring后端处理器及视图解析器(ViewResolver)
7)添加Spring 配置文件spring-mvc.xml。
A.2-5-6-1-7-4-3
B.2-5-7-4-1-6-3
C.2-5-6-4-1-7-3
D.2-5-7-1-4-6-3
【正确答案】B
【答案解析】此题考查SpringMVC 中的细节

(单选题)下面有关spring的依赖注入,说法错误的是( )。
A.依赖注入通常有如下两种:设值注入和构造注入:
B.构造注入可以在构造器中决定依赖关系的注入顺序,优先依赖的优先注入
C.当设值注入与构造注入同时存在时,先执行构造注入,再执行设值注入
D.设值注入是指IoC容器使用属性的setter方法来注入被依赖的实例。这种注入方式比较简单、直观
【正确答案】C
【答案解析】用构造函数依赖注入时,Spring保证一个对象所有依赖的对象先实例化后,才实例化这个对象。
使用set方法依赖注入时,Spring首先实例化对象,然后才实例化所有依赖的对象。
当设值注入与构造注入同时存在时,先执行设值注入,再执行构造注入。
所以C是错误的

(单选题)SpringMVC 请求一个控制层资源时,可以在对应方法中()
A.可以直接使用参数变量接收参数数据,参数变量的类型不一定为对象类型
B.直接使用参数变量接收参数数据,但参数变量的类型要为对象类型
C.可以直接使用参数变量接收参数数据,参数变量的类型要根据实际情况选择。
D.不能直接使用参数变量接收参数数据
【正确答案】B
【答案解析】此题考查参数变量的接收问题

(单选题)将元数据配置到Spring容器,下面哪个方法是不正确的( )。
A.通过编组与解组对象
B.注解基础配置
C.Java基础配置
D.XML基础配置
【正确答案】A
【答案解析】有三种方式向Spring 容器提供元数据:1,XML配置文件;2,基于注解配置;3,基于Java的配置,死概念记住即可

(单选题)mybatis编程步骤是什么样的?
A、通过SQLSessionFactory创建SqlSession SqlSession openSession
= sqlSessionFactory.openSession();
B、创建SqlSessionFactory SqlSessionFactory sqlSessionFactory
= new SqlSessionFactoryBuilder().build(inputStream);
C、通过sqlsession执行数据库操作
D、调用session.commit()或session.rollback()
E、调用session.close()关闭会话
下面执行顺序正确的是:
A.A B C D E
B.B A C D E
C.A B C E D
D.A C B D E
【正确答案】B
【答案解析】此题考查Mybatis编程步骤

(单选题)Spring中Before通知的目标对象要实现的接口中before方法中的三个常用的参数依次是()
A.方法,方法的参数,目标对象
B.方法的参数,方法,目标对象
C.目标对象,方法,方法的参数
D.方法的参数,目标对象,方法
【正确答案】A
【答案解析】此题考查Spring中Before通知

(单选题)下面关于设置注入优点说法正确的是( )
A.构造期即创建一个完整、合法的对象
B.需要写繁琐的setter方法的
C.对于复杂的依赖关系,设置注入更简洁,直观
D.以上说法都不对
【正确答案】C
【答案解析】此题考查对注入的理解

(单选题)看下面的代码,说法正确的是()
<bean id="beforeAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
<property name="advice">
<ref local="beforeImpl"></ref>
</property>
<property name="pattern">
<value>.*</value>
</property>
</bean>
A.这段代码是在定义目标对象
B.这段代码是在定义切入点
C.这段代码是在定义代理
D.这段代码是在定义织入
【正确答案】B
【答案解析】考查Spring理解

(单选题)对于@Controller注解,说法正确的是( )。
A.仍然需要实现Controller接口。
B.可以提供多个处理方法。
C.处理方法的返回值必须是ModelAndView。
D.处理方法必须要有返回值。
【正确答案】B
【答案解析】使用@Controller来实现二级控制器,不再需要实现Controller接口了,可以提供多个处理方法,并且处理方法可以没有返回值(比如生成验证码),也可以返回ModelAndView或者String。

(单选题)下面关于在Spring中配置Bean的init-method的说法正确的是()
A.init-method是在最前面执行的
B.init-method在构造方法后,依赖注入前执行
C.init-method在依赖注入之后执行
D.init-method在依赖注入之后,构造函数之前执行
【正确答案】C
【答案解析】此题考查Spring中配置Bean的init-method

(单选题)在web.xml文件中配置Spring框架,下面配置正确的是()
A.<context-param>
<param-name>config</param-name>
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</context-param>
B.<context-param>
<param-name>servletConfig</param-name>
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</context-param>
C.<context-param><param-name>contex;<param-value>/WEB-;</context-param>;
D.<context-param>;<param-name>contex;<param-value>/WEB-;</context-param>;
【正确答案】D
【答案解析】此题考查Spring框架中XML 文件配置

(单选题)看下面的代码,说法正确的是()
<bean id="userTable" class="com.xfaccp.bean.UserTable">
<property name="userName">
<value>ACCP</value>
</property>
</bean>
A.其中<property name="userName">的userName是UserTable中的属性,可以不要get、set方法。
B.其中<property name="userName">的userName是UserTable中的属性,可以不要get方法,但是一定要有set方法
C.其中<property name="userName">的userName是UserTable中的属性,可以不要set方法,但是一定要有get方法
D.其中<property name="userName">的userName是UserTable中的属性,一定要有get和set方法
【正确答案】B
【答案解析】此题考查Spring中基于XML的配置

(单选题)Spring中Before通知的目标对象要实现的接口是()
A.MethodBeforeAdvice
B.ThrowsAdvice
C.AfterReturningAdvice
D.MethodInterceptor
【正确答案】A
【答案解析】考查Spring中的Before通知

(单选题)项目中有如下包结构和类:
|- com
|- tarena
|- service
UserService(接口)
|-impl
UserServiceImpl(实现)
在配置切点时给出了如下切点表达式,问使用getBean从spring容器中获取对象时,是否会创建代理对象
A.切点表达式为 within(com.tarena.*)
UserServiceImpl 是代理
B.切点表达式为 within(com.tarena.service..*)
UserServiceImpl 是代理
C.切点表达式为 execution( com.tarena.service..*(..))
UserServiceImpl 不是代理
D.切点表达式为 execution( com.tarena...*(..))
UserServiceImpl 不是代理
【正确答案】B
【答案解析】此题考查AOP 中切点表达式

(单选题)Spring中around通知的目标对象要实现的接口是()
A.MethodBeforeAdvice
B.ThrowsAdvice
C.AfterReturningAdvice
D.MethodInterceptor
【正确答案】D
【答案解析】此题考查Spring中的around通知

(单选题)Spring注入的bean默认被配置为以下哪一个作用域( )。
A.原型 (Prototype)
B.会话 (session)
C.单例 (singleton)
D.请求 (request)
【正确答案】C
【答案解析】spring中注入的bean默认被配置为单例模式,意味着对于同一个类而言,其所有的被注入对象其实都是同一个对象。但是对于对象中含有一些状态属性的情况,我们并不想要singleton。spring中提供了四种作用域就是(A,B,D)答案

(单选题)下面关于Spring管理Bean的说法正确的是( )
A.Bean在Spring容器中有两种管理方式,工厂模式和单例模式
B.Bean在 Spring容器中有两种管理方式,原型模式和单例模式
C.Spring默认的利用工厂模式管理Bean
D.Spring默认利用原型模式管理Bean
【正确答案】B
【答案解析】此题考查Spring管理Bean

(单选题)下面哪个不是Spring 常用的注解( )。
A.@Aspect
B.@Service
C.@Component
D.@Controller
E.@View
【正确答案】E
【答案解析】考察对spring的熟悉程度,除E选项之外都是较常用注解

(单选题)与以下给出的相关组件关系对应正确的是()
1)DispatcherServlet
2)SimpleUrlHandlerMapping
3)HelloController
4)ModelAndView
5)InternalResourceViewResolver
A.1)又称之为handler,处理客户端请求
2)记录url到handler的映射
3)核心前端处理(负责流程调度)
4)负责视图解析,基于view找到具体的
view对象,例如hello.jsp
5)封装数据以及对应的视图
B.1)核心后端处理(负责流程调度)
2)又称之为handler,处理客户端请求
3)记录url到handler的映射
4)负责视图解析,基于view找到具体的
5)封装数据以及对应的视图
view对象,例如hello.jsp
C.1)核心前端处理(负责流程调度)
2)又称之为handler,处理客户端请求
3)记录url到handler的映射
4)负责视图解析,基于view找到具体的view对象,例如hello.jsp
5)封装数据以及对应的视图
D.1)核心前端处理(负责流程调度)
2)记录url到handler的映射
3)又称之为handler,处理客户端请求
4)封装数据以及对应的视图
5)负责视图解析,基于view找到具体的
view对象,例如hello.jsp
【正确答案】D
【答案解析】此题考查对SpringMVC流程的理解

(多选题)以下属于SpringMVC核心组件的是
A.DispatcherServlet
B.HandlerMappin
C.Controller
D.ModelAndView
E.ViewResolver
【正确答案】A,B,C,D,E
【答案解析】此题考查SpringMVC 基本概念

(多选题)下面关于IOC的理解,正确的是()
A.控制反转
B.对象被动的接受依赖类
C.对象主动的去找依赖类
D.一定要用接口
【正确答案】A,B
【答案解析】此题考查SpringIOC 基本概念

(多选题)SpringMVC中必须用到的组件为:()
A.前端控制器
B.处理器适配器
C.处理器映射器
D.文件上传解析器
【正确答案】A,B,C
【答案解析】此题考察SpringMVC 的基本概念

(多选题)下面关于ApplicationContext的说法正确的是( )
A.是BeanFactory的实现类
B.是一个接口
C.提供一些BeanFactory的扩展功能
D.功能同BeanFactory一样
【正确答案】B,C
【答案解析】考查Spring中BeanFactory

(多选题)下面是IOC自动装载方法的是()
A.byName
B.byType
C.constructor
D.byMethod
【正确答案】A,B
【答案解析】此题考查Spring自动装配

(多选题)在Mybatis中,#{}与${}有什么区别:
A.#{}有预编译效果,${}则没有
B.${}有预编译效果,#{}则没有
C.#{}会自动为值加上单引号,${}保持原值状态
D.#{}可以使用模糊查询,${}则不可
【正确答案】A,C
【答案解析】相同点:都是通过get来获取值的
不同点:$传进去的字符串不带引号 #号带引号

(多选题)关于spring的控制反转与依赖注入,说法正确的是:
A.在未使用spring之前,对象的创建和对象之间的依赖关系是由程序代码维护,使用了spring以后,这些对象创建的控制权和关系维护转移到了spring容器
B.依赖注入配合接口的使用让java代码实现了松散耦合
C.依赖注入的类型常见的有setter方法注入和构造方法注入
D.在使用spring以前,action要获取service对象需要主动创建它、而使用spring之后,变成了被动接收由容器创建的service对象
【正确答案】A,B,C,D
【答案解析】此题考查依赖注入的基本理解

(多选题)看下面的代码,说法正确的是()
<bean id="before" class="org.springframework.aop.framework.ProxyFactoryBean"> <property name="proxyInterfaces">
<value>com.xfaccp.before.BeforeInterface</value>
</property>
<property name="target">
<ref bean="testBefore"></ref>
</property>
<property name="interceptorNames">
<list>
<value>beforeAdvisor</value>
</list>
</property>
</bean>
A.这段代码是做IOC
B.这段代码是做AOP
C.这段代码是在做代理
D.这段代码是在做植入
【正确答案】B,D
【答案解析】此题考查Spring理解

(多选题)Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签?
A.<resultMap>
B.<include>
C.<sql>
D.<resultType>
【正确答案】A,B,C
【答案解析】<resultMap><include><sql>

(多选题)属于SpringMVC常用的注解是:()
A.@RequestMapping
B.@PathVariable
C.@Autowired
D.@ResponseBody
【正确答案】A,B,D
【答案解析】此题考察SpringMVC 的注解

(多选题)有关通知说法正确的是?
A.如果要获取目标方法抛出的异常,则用异常通知
B.最终通知能够获取到目标方法的返回值
C.前置通知和后置通知在一起,能够在目标方法之前输出内容,也能在目标方法之后输出内容,也能控制目标方法的执行
D.计算action的方法的执行时间可以利用环绕通知实现
【正确答案】A,D
【答案解析】此题考查Spring中的通知

(多选题)下面关于在Spring中配置Bean的id属性的说法正确的是()
A.id属性是必须,没有id属性就会报错
B.id属性不是必须的,可以没有
C.id属性的值可以重复
D.id属性的值不可以重复
【正确答案】B,D
【答案解析】此题考查Spring中id属性

(多选题)看下面的代码,说法正确的是()
<bean id=“user" class=“com.xfaccp.bean.User"></bean>
<constructor-arg>
<value>accp</value>
</constructor-arg>
</bean>
A.必须要有一个接受字符串的构造方法
B.可以没有接受一个字符串的构造方法
C.这个类有且只能有一个只接受一个字符串的构造方法
D.这个类可以有多个构造方法,但是一定要有一个只接受一个字符串的构造方法
【正确答案】A,D
【答案解析】此题考查SpringIOC

(多选题)关于Mybatis配置文件描述正确的是()
A.mybatis核心配置文件中可以配置数据源和事务
B.映射文件应该和数据库中的表一一对应
C.#{},${}在使用时没有差别
D.当传入单个参数时,#{XXX} 名称可以是任意的
【正确答案】A,B,D
【答案解析】此题考查Mybatis相关内容

(多选题)Spring中提供通过Web容器来启动Spring框架的类有( )
A.ContextLoaderListener
B.ServletLoaderListner
C.ContextLoaderServlet
D.ActionServlet
【正确答案】A,C
【答案解析】此题考查Spring框架的类

(多选题)关于springmvc页面跳转,说法正确的是( )。
A.默认使用重定向方式。
B.默认使用转发方式。
C.如果Controller处理方法返回值是String,可使用"redirect:"前缀来重定向。
D.如果Controller处理方法返回值是ModelAndView,可使用RedirectView来重定向。
【正确答案】B,C,D
【答案解析】默认使用转发方式跳转页面,答案A是错误的。

(多选题)Spring中的@AspectJ切点表达式函数都有哪些?
A.方法切点函数
B.方法横切点函数
C.目标类切点函数
D.代理类切点函数
【正确答案】A,C,D
【答案解析】ACD

(多选题)向页面传值有哪些方式( )。
A.直接使用HttpServletRequest和Session。
B.使用ModeAndView对象。
C.使用ModelMap参数对象
D.使用@ModelAttribute注解
【正确答案】A,B,C,D
【答案解析】以上四种均是向页面传值的几种方式

(多选题)REST即表述性状态传递,是一种软件架构编码风格,是基于网络应用进行设计和开发的编码方式,以下对于REST风格使用正确的有()
A.@RequestMapping("/msg/{xxx}")
请求的URL可以是“/msg/hello”或“/msg/welcome”
B.@RequestMapping("/msg/{id}/create"):
请求的URL可以是“/users/1/create”
C.@RequestMapping("/{xxx}/{id}/name/{tld}"):
请求的URL可以是“/users/1/create/2”
D.@RequestMapping("/msg/{mId}/topics/{tId}")
请求的URL可以是“/users/10/topics/12”
【正确答案】A,B,D
【答案解析】通过@PathVariable可以提取URI模板模式中的{×××}中的×××变量。

(多选题)Spring的AOP的动态代理机制都有哪些?
A.CGLib库
B.JDK动态代理
C.Proxy代理
D.Auto代理
【正确答案】A,B

(多选题)下面是BeanFactory的实现类的是( )
A.ClassPathXmlApplicationContext
B.ApplicationContext
C.FileSystemXmlApplicationContext
D.以上都是
【正确答案】A,C
【答案解析】考查Spring原理

(多选题)下面关于@Resource注解说法正确的是
A.@Resource 注解可以用在字段上也可以用在set方法上
B.@Resource 注解默认按照类型进行装配
C.@Resource(name="personDao")注解表示用personDao的名称去查找bean的id节点的值是personDao的对象

D.@Resource注解默认按照名称进行装配
【正确答案】A,C,D
【答案解析】此题考查对Resource注解的使用

(多选题)查看以下代码可以得知@RequestMapping(value="path/{var}",method=RequestMethod.GET)
@ResponseBody
public String withPathVariable(@PathVariable String var) {

return "Obtained \'var\' path variable value \'" + var + "\'";

}
A.通过@PathVariable注解指定参数变量var获取请求url中{var}数据
B.通过@PathVariable注解指定参数变量var不能获取到请求url中{var}数据
C.SpringMVC请求资源路径的URL可以通过{XXX}形式指定动态的URL,动态URL中的这个可变参数的值可以直接注入到方法对应的参数中。
D.SpringMVC请求资源路径的URL可以通过{XXX}形式指定动态的URL,动态URL中的这个可变参数的值必须通过传参注入到方法对应的参数中。
【正确答案】A,C
【答案解析】考查SpringMVC 的注解知识

(多选题)对于基于注解配置的springmvc应用,说法正确的是( )。
A.@RequestMapping可以用在类定义和方法定义上。
B.@RequestMapping表明这个类或方法与客户的哪一个请求对应。
C.<mvc:annotation-driven/>表示开启组件扫描。
D.使用@Controller注解声明Controller组件,这样可以使得Controller定义更加灵活,可以不用实现Controller接口,请求处理的方法也可以灵活定义。
【正确答案】A,B,D
【答案解析】本题考查基于注解的springmvc应用的基本使用步骤的掌握。<mvc:annotation-driven/>表示开启mvc注解扫描,答案C是错误的。

(多选题)针对以下配置,说法正确的是( )。
<context:component-scan

          base-package="com.tarena"/> 

A.这是配置组件扫描。
B.容器只会扫描com.tarena的包下面的类
C.容器会扫描com.tarena包及其子包下面的类。
D.组件扫描可以替代大量XML配置的<bean>定义。
【正确答案】A,C,D
【答案解析】本题考查组件扫描的基本配置,要注意,容器会扫描指定包及其子包下面的所有类,如果这些类包含了特定的注解,容器会将其纳入容器进行管理,所以B是错误的。注解的好处之一,就是简化了配置文件,所以D是正确的。

(多选题)MyBatis实现一对多有几种方式?
A.是几个表联合查询,只查询一次,通过在resultMap里面配置collection节点配置一对多的类就可以完成。属于联合查询。
B.是几个表联合查询,只查询一次,通过在resultMap里面配置collection节点配置一对多的类就可以完成。属于集合查询。
C.是先查一个表,根据这个表里面的结果的外键id,去再另外一个表里面查询数据,也是通过配置collection,但另外一个表的查询通过select节点配置。属于联合查询。
D.是先查一个表,根据这个表里面的结果的外键id,去再另外一个表里面查询数据,也是通过配置collection,但另外一个表的查询通过select节点配置。属于集合查询。
【正确答案】A,D
【答案解析】MyBatis实现一对多的方式

(多选题)下列关于bean的生命周期,说法正确的是( )。
A.每个bean都必须提供相应的生命周期方法。
B.销毁方法只适用于singleton模式的bean。
C.销毁方法可以运行多次。
D.初始化方法只会执行一次。
【正确答案】B,D
【答案解析】考查容器如何管理bean的生命周期。在设计bean时,依据实际业务的需要,可以为bean提供相应的生命周期方法,比如在初始化方法当中完成资源加载等类似的逻辑,在销毁方法中释放资源。因此bean当中是否有生命周期相关的方法,完成取决于实际业务需要,并不是必须的,所以答案A是错误的。销毁方法用于释放资源,只需要执行一次,所以答案C也是错误的。

以上是关于Java练习题03的主要内容,如果未能解决你的问题,请参考以下文章

Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)(代码片段

Java练习题03

spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段

屏幕旋转后Android片段重叠

切换到特定片段会产生奇怪的 java.lang.NullPointerException

csharp Epicor标准练习片段