2019年,收集大厂30道Java高级面试题(附上答案和看法)

一、Spring DAO 中最经常使用的类是()java

A,JdbcTemplate ,SimpleJdbcTemplate
B,SimpleJdbcInsert,SimpleJdbcProcedure
C,SimpleJdbcInsert ,SimpleJdbcStoredProc
D,SimpleJdbcQuery ,SimpleJdbcExec
正确答案:Aweb

二、Spring AOP 中, 织入(Weaving) 能够在下面什么时间完成()spring

A,所有选项
B,Run time
C,Load time
D,Compile time
正确答案:A服务器

三、下面关于Spring MVC 描述正确的是()数据结构

A,DispatcherServlet在 Spring MVC 中是核心servlet , 它负责接收请求并将请求分发给适合的控制器
B,在Spring MVC 中,能够配置多个DispatcherServlet
C,所有选项
D,要使Spring MVC可用,DispatcherServlet须要在web.xml中配置
正确答案:Cmvc

四、下面哪项是Spring自动装载模式()app

A,autodetect
B,所有选项
C,constructor
D,byname, byType
正确答案:B框架

五、Spring 中,下面哪一项不是使用事务的方法()测试

A,proxies
B,declaratively
C,programmaticly
正确答案:Aui

六、Spring提供了JMS层的抽象,正确吗()

A,正确
B,错误
正确答案:A

七、关于"@Order"注解,最正确的描述是()

A,实现org.springframework.core.Ordered接口
B,指定一个bean的范围
C,一般用于注入域对象的属性
D,全不正确
正确答案:A

八、如何在Spring应用中使用SLF4J()

A,做为日志框架
B,全不正确
C,做为一个bean
D,做为JDBC框架
正确答案:A

九、Spring bean 的默认做用范围是()

A,全不正确
B,Singleton
C,Prototype
D,Session
E, Abstract
正确答案:B

十、Spring中,单例意味着每_____只有一个实例()

A,Context
B, JVM
C,Thread
正确答案:A

十一、使用Spring MVC 处理普通页面请求, 下面哪一个排序是正确的()

1.请求:请求提交给服务器
2.分发:分发器经过web 应用配置信息 , 将请求分发至适当的控制器
3.服务调用:控制器与业务层交互
4.响应:控制器更新模型,将执行结果返回给客户端展示
A,1-2-3-4
B,1-4-3-2
C,1-4-2-3
D,1-3-2-4
正确答案:A

十二、如下哪一个不是 Spring AOP 的注解()

A,@Before
B,@Around
C,@BeforeReturning
D,@AfterThrowing
正确答案:C

1三、"@RequestMapping是Spring中的哪一部分()

A,DAO
B,Security
C,Web MVC
D,Web
正确答案:C

1四、下面关于spring和struts2的描述,错误的是()

A,spring mvc的入口是filter,而struts2是servlet
B,spring mvc是基于方法的设计,而struts2是基于类的设计
C,struts2有以本身的interceptor机制,spring mvc用的是独立的AOP方式
D, spring mvc的方法之间基本上独立的,独享request response数据,struts2全部Action变量是共享的
正确答案:A

1五、Spring中,下面哪一个选项支持ORM()

A,OJB
B,TopLink
C,所有选项
D,Java Data Objects(JDO)
E,iBatis

正确答案:C

1六、Spring和Hibernate的集成中,下面哪项是SessionFactory 正确的实现()

A,LocalSessionFactoryBean
B,LocalFactoryBean
C,SessionFactory
D,SessionFactoryBean
正确答案:A

1七、下面哪一个是Spring最核心的servlet()

A,WebServlet
B,SpringServlet
C,DispatcherServlet
D,IoCServlet
正确答案:C

1八、Spring-test 用什么约定在测试中使用HTTP会话和HTTP 请求对象()

A,MVC
B,Open-closed principle
C,DAOs
D,Mock objects
正确答案:D

1九、Spring 中,"@Cacheable"的key生成方式,如下哪一个是正确的()

A,能够是方法参数及其成员变量的任意表达式
B,只能使用全部方法参数,但能够调整次序
C,只能使用全部方法参数,且不能调整次序
D,只能指定方法参数是否参与key的生成,不能控制参数的成员变量
正确答案:A

20、使用@Required但不关联bean 来注解setter方法,将会发生()

A,bean被设置为null
B,启动异常
C,Spring 将建立bean
D,什么也不发生
正确答案:B

21,有关线程的哪些叙述是对的( )

A,一旦一个线程被建立,它就当即开始运行。
B,使用start()方法可使一个线程成为可运行的,可是它不必定当即开始运行。
C,当一个线程由于抢先机制而中止运行,它被放在可运行队列的前面。
D,一个线程可能由于不一样的缘由中止并进入就绪状态。
答案:BCD

在抢占式线程模型中,操做系统能够在任什么时候候打断线程。一般会在它运行了一段时间(就是所谓的一个时间片)后才打断它。这样的结果天然是没有线程可以不公平地长时间霸占处理器。

22,哪一个关键字能够对对象加互斥锁 ()

A,serialize
B,synchronized
C,transient
D,static
答案:B
A是对象串行化、C是关键字transient修饰的属性将不被串行化、D是静态的

23,下列关于线程优先级的说法中,正确的是()

A、线程的优先级是不能改变的
B、线程的优先级是在建立线程时设置的
C、在建立线程后的任什么时候候均可以设置
D、B和C
答案:C
Java语言中线程的优先级是用一个介于MIN_PRIORITY和MAX_PRIORITY之间的整数来表示的。能够在建立线程后的任什么时候候修改线程的优先级。

24,为了使模块尽量独立,要求( )

A.模块的内聚程度要尽可能高,且耦合程度要尽可能强
B.模块的内聚程度要尽可能高,且耦合程度要尽可能弱
C.模块的内聚程度要尽可能低,且耦合程度要尽可能弱
D.模块的内聚程度要尽可能低,且耦合程度要尽可能强
答案:B
系统设计的质量主要反映在模块的独立性上。评价模块独立性的主要标准有两个:一是模块之间的耦合,它代表两个模块之间互相独立的程度;二是模块内部之间的关系是否紧密,称为内聚。通常来讲,要求模块之间的耦合尽量地弱,即模块尽量独立,而要求模块的内聚程度尽可能高。

25,下列对于线性链表的描述中正确的是()

A.存储空间不必定是连续,且各元素的存储顺序是任意的
B.存储空间不必定是连续,且前件元素必定存储在后件元素的前面
C.存储空间必须连续,且前件元素必定存储在后件元素的前面
D.存储空间必须连续,且各元素的存储顺序是任意的
答案:A
在链式存储结构中,存储数据结构的存储空间能够不连续,各数据结点的存储顺序与数据元素之间 的逻辑关系能够不一致,而数据元素之间的逻辑关系是由指针域来肯定的。

26,下列叙述中错误的是( )

A.线性表是由n个元素组成的一个有限序列
B.线性表是一种线性结构
C.线性表的全部结点有且仅有一个前件和后件
D.线性表能够是空表
答案:C
线性表是一种线性结构,由n(n≥0)个元素组成,因此线性表能够是空表。可是在线性表中,第一个结点没有前驱,最后一个结点没有后继,其余结点有且只有一个前驱和后继,因此选项C是错误的。

27,已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为( )

A.GEDHFBCA
B.DGEBHFCA
C.ABCDEFGH
D.ACBFEDHG
答案:B
二叉树的遍历有3种:前序、中序和后序。
先序:先访问根结点、左结点、右结点
中序:先访问左结点、根结点、右结点
后序:先访问左结点、右结点、根结点
本题根据前序遍历和中序遍历的结果能够得出二叉树的结构,而后再对其进行后序遍历。

28,面向对象方法中,继承是指( )

A.一组对象所具备的类似性质
B.一个对象具备另外一个对象的性质
C.各对象之间的共同性质
D.类之间共享属性和操做的机制
答案:D
继承:在程序设计中,继承是指子类自动享用父类的属性和方法,并能够增长新的属性和方法的一种机制。它是实现代码共享的重要手段,可使软件更具备开放性、可扩充性,这是信息组织与分类的行之有效的方法,也是面向对象的主要优势之一。

继承又分为单重继承和多重继承,单重继承是指子类只能继承一个父类的属性和操做;而多重继承是指子类能够继承了多个父类的属性和操做。

扩展:Java是一种单重继承语言,而C++是一种多重继承语言。

29,栈和队列的共同点是( )

A.都是先进先出
B.都是先进后出
C.只容许在端点处插入和删除元素
D.没有共同特色
答案:C
栈是只容许在表的一端进行插入和删除的操做,队列是容许在表的一端进行插入,另外一端进行删除的操做。

30,下列关于修饰符混用的说法,错误的是()
A.abstract不能与final并列修饰同一个类
B.abstract类中不能够有private的成员
C.abstract方法必须在abstract类中
D.static方法中能处理非static的数据
答案:D

静态方法是属于类的,而普通方法是属于对象的。
属于类的静态方法能够在对象不存在的时候就能访问到,而普通方法必须先new一个对象才能用这个对象访问。当咱们访问调用静态方法的时候(使用类名.静态方法名)这个时候就没有对象建立,因此普通方法是访问不到的。为了不这种错误,因此java就不容许在静态方法中访问非静态方法。

相关文章
相关标签/搜索