面试题、二

1.什么是SSM

SSM搭建的版本有很多,例如有一个版本可以这么搭建,两个核心配置文件web.xml,applicationContext.xml。 1``.前端控制器DispatcherServlet

2``.过滤器CharacterEncodingFilter

applicationContext.xml

1.扫描包 `package="cn"/>

2``.mvc驱动

3.事务驱动 `"txManager"/>

4`.配置数据源

5``.SqlSessionFactoryBean

6``.配置事务

7``.数据映射器

8``.视图解析器

2.设计一个权限模块?

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

3.什么是docker?

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

4.什么是dockfile?

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

5.什么是docker-compose?

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

6.什么是Portainer?

Portainer是Docker的图形化管理工具

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

18.09.7

8.镜像和容器的关系 删除镜像的步骤??

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

先删除容器,后删除镜像。先删容器后删镜像 除非这个镜像没有容器,可以直接删除镜像

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

分布式锁基于setnx原理,如果 SETNX 返回1,说明该进程获得锁。 如果 SETNX 返回0,说明其他进程已经获得了锁,进程不能进入临界区。进程可以在一个循环中不断地尝试 SETNX 操作,以获得锁。

redis中set是将字符串值 value 关联到 key 。如果 key 已经持有其他值, SET 就覆写旧值,无视类型。

setnx是当且仅当 key 不存在时,可以设置 value值 。若给定的 key 已经存在,则 SETNX 不做任何动作。

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

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

dubbo基于RPC,SpringCloud基于RESTful。

组件ribbon、feign、hstrix 、eureka、zuul。

11.什么是jmeter?

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

12.什么是mybatis?

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

13.SpringMVC工作流程?

1、用户发送请求至前端控制器DispactherServlet**

2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。

3、处理器映射器找到具体的处理器(可以根据xml配置、 注解进行查找) ,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

4、DispatcherServlet调用HandlerAdapter处理器适配器。

5、HandlerAdapter经过适配调用具体的处理器(Controller ,也叫后端控制器)。

6、Controller执行完成返回ModelAndView。

7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。

8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器 。

9、ViewReslover解析后返回具体View。

10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。

11、DispatcherServlet响应用户 。**

14.什么是消息中间件?

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

举个例子:就像是 在淘宝上面买东西 商家通过快递的方式发送给你 商家只需要给菜鸟驿站就可以了,不需要直接给你, 菜鸟驿站通过询问呢什么时候有时间 ,你向菜鸟驿站发送请求有时间 ,然后菜鸟驿站就可以直接将快递给你 ,其中菜鸟驿站充当的角色就是消息中间件

15.分布式锁的概念?

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

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

16、HashMap底层原理

HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的,如果定位到的数组位置不含链表(当前entry的next指向null),那么对于查找,添加等操作很快,仅需一次寻址即可;如果定位到的数组包含链表,对于添加操作,首先遍历链表,存在即覆盖,否则新增;对于查找操作来讲,仍需遍历链表,然后通过key对象的equals方法逐一比对查找。所以,性能考虑,HashMap中的链表出现越少,性能才会越好。

17、垃圾回收机制原理

当程序员创建对象时,gc就开始监控这个对象的地址,大小以及使用情况,通常,gc用有向图的方式记录和管理堆内存中的所有对象,通过这种方式确定哪些对象是"可达的/不可达"的.当确定是"不可达"时候,gc就有责任回收该对象,以节省内存空间

18、对Es搜索引擎的认识

elasticsearch是一个基于Lucene的高扩展的分布式搜索服务器,支持开箱即用。隐藏了Lucene的复杂性,对外提供Restful 接口来操作索引、搜索。索引结构如下:

1、将要搜索的文档内容分词,所有不重复的词组成分词列表。

2、将搜索的文档最终以Document方式存储起来。

3、每个词和docment都有关联。

19、什么是线程死锁

线程死锁就是在线程锁的情况下,其中有一个进程获取到了这个锁,但是这个进程获取到锁以后没有再将锁解开,从而使下面的进程不能够再获取到锁,这就是线程死锁,我们解决线程死锁的问题通常会给线程锁设置一个有效期,当线程获取到锁后,时间超过设置的时间,则自动删除锁

20、请描述下JDBC是如何处理sql中传入的参数的

1、加载数据库驱动

2、链接数据库

3、建立数据库连接

4、准备sql语句

5、填充sql语句

6、分析结果集

7、释放资源

21、请描述下redis缓存机制的原理

客户端发送请求,如查询,到服务端,服务端如果没有缓存就要每次去关系型数据库中找,如果发送同一个查询请求100w次就要去数据库中查询100w次,增加数据库压力.也很慢,性能低,然后引入redis缓存后,用户第一次发送查询请求就到redis中查有没有,没有的话再走数据库,查询到了把结果存入缓存,下次再有同样的请求,就不用到关系型数据库中去找,直接查找redis,redis是非关系型数据库,数据是存在内存中的,效率很高

22、==和equals()的区别

==:基本数据类型中,比较的是值,引用数据类型中,比较的是内存地址;equals():在直接使用Object类中的equals时,跟==相同,是内存地址值,在重写之后,就看具体的实现方法了,例如String就是重写后只比较字符串是不是一样的

猜你喜欢

转载自www.cnblogs.com/zhaozhitong/p/12450091.html