第四轮面试题

Posted day-day--up

tags:

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

一、什么是mybatis?

一种持久层框架,类似于JDBC访问数据库的操作,
我们说JDBC使用到的对象有Connection对象,PreparedStatement对象,ResultSet对象。
而Mybatis框架的核心对象有SqlSessionFactoryBuilder对象,SqlSessionFactory对象,SqlSession对象。
并且myibatis框架和hibernate框架最大的区别就在于mybatis它的灵活性比较高。

 

二、什么是spring?

在spring出来之前,service层调用dao层都是用new的方式。
在spring出来之后,service层和dao层都会放在spring容器去管理,这是spring的第一种特性,我们称之为IOC,控制反转。
spring还有一种特性,我们称之为AOP,大白话,“面向切面”,说白了就是专门的人干专门的事。在项目很多公有的或是
要被重复被调用的模块可以被抽取出来,利用的就是AOP的特性,例如日志模块。

 

三、什么是SpringMVC?

当用户发送请求到springmvc中的前端控制器中,通过映射器和适配器返回ModelAndView对象到客户端。这就是SpringMVC的基本原理。

 

四、什么是SSM?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
SSM搭建的版本有很多,例如有一个版本可以这么搭建,两个核心配置文件web.xml,applicationContext.xml。
1.前端控制器DispatcherServlet
 
2.过滤器CharacterEncodingFilter
 
  
 
applicationContext.xml
 
1.扫描包 <context:component-scan base-package="cn"/>
 
2.mvc驱动 <mvc:annotation-driven/>
 
3.事务驱动 <tx:annotation-driven transaction-manager="txManager"/>
 
4.配置数据源
 
5.SqlSessionFactoryBean    
 
6.配置事务
 
7.数据映射器
 
8.视图解析器

  

五、什么是集合?

集合有两个父接口,一个Collection,一个Map,而Collection有两个子接口,一个List,一个Set,List有两个常见的实现类ArrayList,LinkedList,
Set有两个常见的实现类HashSet,TreeSet,Map有两个常见的实现类HashMap,HashTable

 

六、什么是SpringCloud?

技术图片

SpringCloud架构中最核心的是Eureka注册中心,它是一个通讯录。所有p端和c端都会注册在上面,cloud中c端调用p端应用feign组件进行调用。应用程序导致网络请求出现问题时,hystrix组件实现容错机制。用户请求量变大是,用ribbon组件实现客户端的负载均衡。而服务器端的负载均衡通常使用nginx反向代理。SpringCloud中有类似于servlet过滤器的组件,zuul网关组件对整个服务架构进行安全过滤。当使用一个服务调用多个feign组件的时候,sleuth+zipkin组件用来服务追踪,可以用来调试接口(追踪问题)。config组件进行统一配置。

dubbo基于RPC,SpringCloud基于RESTful。

 

技术图片

 

七、什么是Dubbo?

Dubbo和Springcloud都是分布式服务中常用的框架。dubbo与cloud不同,dubbo基于RPC协议。它提供了三大核心功能: 面向接口的远程方法调用,

智能容错和负载均衡, 以及服务自动注册和发现。

Dubbo按照分层的方式来架构,可以最大限度地松耦合。Dubbo采用一种非常简单的模型, 要么提供方提供服务, 要么是消费方消费服务, 所以基于这一点可以抽象出服务提供方和服务消费方两个角色。

 

八、什么是消息中间件?

消息中间件利用高效可靠的消息传递机制进行异步的数据传输,并基于数据通信进行分布式系统的集成。通过提供消息队列模型和消息传递机制,可以在分布式环境下扩展进程间的通信。

 

九、eureka和zookeeper的区别?

首先他们都是服务注册和发现的功能,cloud一般选择eureka作为注册中心,dubbo一般选择zookeeper作为注册中心。基于CAP原则,eurek是AP原则,即可用性和分区容错性,zookeeper是CP原则,即强一致性和分区容错性。

 

十、分布式锁的概念?

技术图片

在分布式系统中,由于分布式系统的分布性,即多线程和多进程并且分布在不同机器中,这两种锁将失去原有锁的效果,需要我们自己实现分布式锁——分布式锁。
在多线程的环境下,多个线程同时访问同一个资源,导致线程不安全,使用分布式锁来解决这个线程安全问题。

分布式抢购用到分布式锁,上锁;第二个用户要等待第一个用户完成才能进行抢购;利用setnx设置解决安全性问题,缺点是性能过低。

以上是关于第四轮面试题的主要内容,如果未能解决你的问题,请参考以下文章

刚参加完阿里Java P6面试归来,6点面试经验总结!(含必考题答案)

今日头条Android面试

联想高级Java研发面经+面试题:Spring+多线程+MySQL+设计模式

7月最新京东后端Java高级架构师面经+面试题

京东后端Java高级架构师面经+面试题:Spring+多线程+NIO+MySQL

京东后端Java高级架构师面经+面试题: Spring+多线程+MySQL