第二轮面试

Posted lingboweifu

tags:

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

第二轮面试题

1.SSM的开发步骤是什么?

2.设计一个权限模块?

3.什么是docker?

4.什么是dockfile?

5.什么是docker-compose?

6.什么是Portainer?

7.在公司里使用的docker的版本是什么?

8.镜像和容器的关系?

9.分布式锁中的基于redis的setnx的原理以及set和setnx的区别是什么?

10.什么是springcloud,springcloud中的组件有哪些?分别描述下它的原理?

11.什么是jmeter?

 


 

一、SSM的开发步骤是什么?

"二八"

web.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.视图解析器

 

二、设计一个权限模块?

权限模块是数据库的安保系统,决定谁可以使用,谁拥有权限,有user、role、permussion表,通过user-role、role-permussion关联表(码表)进行关联,
给角色分配权限,角色发放权限给用户。

 

三、什么是docker?

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,
也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

 

四、什么是dockfile?

Dockerfile是一个包含用于组合映像的命令的文本文档,可以使用在命令行中调用任何命令。

 

五、什么是docker-compose?

可以管理多个 Docker 容器组成一个应用,定义一个 YAML 格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。
然后,只要一个命令,就能同时启动/关闭这些容器。

 

六、什么是Portainer?

Portainer(基于Go) 是一个轻量级的管理界面,可让您轻松管理 Docker 主机 或 Swarm 集群。

 

七、在公司里使用的docker的版本是什么?

18.09.7

 

八、镜像和容器的关系?

容器是可写的,镜像是可读的。容器是镜像的实例,镜像是容器的静态备份。

 

九、分布式锁中的基于redis的setnx的原理以及set和setnx的区别是什么?

setnx当且仅当 key 不存在。若给定的 key 已经存在,则 setnx不做任何动作。setnx 是『set if not exists』(如果不存在,则 set)的简写,setnx 具有原子性。

getset先 get 旧值,后set 新值,并返回 key 的旧值(old value),具有原子性。当 key 存在但不是字符串类型时,返回一个错误;当key 不存在的时候,返回nil ,在Java里就是 null。

区别是setnx是如果不存在则set,具有原子性。

 

十、什么是springcloud,springcloud中的组件有哪些?分别描述下它的原理?

Spring Cloud是一系列框架的有序集合。

ribbon、feign、hstrix 、eureka、zuul。

Ribbon实现的关键点是为ribbon定制的RestTemplate,ribbon利用了RestTemplate的拦截器机制,在拦截器中实现ribbon的负载均衡。负载均衡的基本实现就是利用applicationName从服务注册中心获取可用的服务地址列表,然后通过一定算法负载,决定使用哪一个服务地址来进行http调用。

Feign是一个http请求调用的轻量级框架,可以以Java接口注解的方式调用Http请求,而不用像Java中通过封装HTTP请求报文的方式直接调用。Feign通过处理注解,将请求模板化,当实际调用的时候,传入参数,根据参数再应用到请求上,进而转化成真正的请求,这种请求相对而言比较直观。
 
Hstrix在分布式架构中,当某个单元发生故障,及时切断联系,防止线程因调用故障服务而长时间等待而不被释放。Hystrix实现的功能有:服务降级、服务熔断、线程和信号隔离、请求缓存、请求合并、以及服务监控等功能。
 
Eureka注册中心,服务提供方启动后将注册到注册中心,提供IP, 名字,什么服务等信息,服务调用方作为客户端注册到注册中心后,拉取注册中心的服务列表,在通过负载均衡调用对应的服务提供方。
 
Zuul是Netflix开源的微服务网关,它可以和Eureka,consul,Ribbon,Hystrix等组件配合使用。

 

十一、什么是jmeter?

Apache JMeter 是 Apache 组织开发的基于 Java 的压力测试工具。用于对软件做压力测试,它最初被设计用于 Web 应用测试,但后来扩展到其他测试领域。
发送请求到服务端,获取目标服务的统计信息,生成不同格式的报告。

 

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

小米Java程序员第二轮面试10个问题,你是否会被刷掉?

腾讯Java程序员第二轮面试11个问题,你会几个?

腾讯Java程序员第二轮面试11个问题,你会几个?

小米二轮面试编程题:二叉树的前序遍历,要求非递归方式

HCI二轮面试任务

第二轮冲刺第三天