当前位置: 首页 > 面试经验 >

成都-正西云信息-Java-电话面试

优质
小牛编辑
63浏览
2023-10-24

成都-正西云信息-Java-电话面试

1. 问:Opencv熟悉不?答:Opencv能用。

2. 问:Transformer与VGG的区别?

答: Transformer 是一种用于自然语言处理的模型,通过将注意力机制引入神经网络,使得模型可以更好地处理长文本序列。VGG 是一种用于图像识别的深度神经网络,其具有非常深的结构,可以对图像进行高效的分类。

3. YOLOv7介绍

4. 问:数据库引擎:Innodb和Myisam表引擎二者的区别?答:

Innodb的特点:

1. 支持外键约束

2. 支持事务

3. 并发方面: 行级锁, 并发能力相对高

4. 增删改效率高, 查询效率相对低下

5. 目前5.x版本不支持全文索引, 8.0版本是支持

Myisam的特点:

1. 不支持外键约束

2. 不支持事务(A: 原子性, C : 一致性 I: 隔离性 D: 持久性)

3. 并发方面: 表级锁 , 并发能力差

4. 查询效率高,增删改效率低下

5. 支持全文索引

5. SQL索引

索引分类:主键索引、唯一索引、常规索引、全文索引

InnoDB存储引擎中,据索引的存储形式,又可以分为以下两种:

聚集索引、二级索引

6. B树B+树Hash索引

B树和B+树的区别

B 树的所有节点既存放键(key) 也存放数据(data);而B+树只有叶子节点存放 key 和 data,其他内节点只存放 key。

B 树的叶子节点都是独立的;B+树的叶子节点有一条引用链指向与它相邻的叶子节点。

B 树的检索过程相当于对范围内的每个节点的关键字做二分查找,可能还没有到达叶子节点,检索就结束了。而 B+树的检索效率就很稳定了,任何查找都是从根节点到叶子节点的过程,叶子节点也可以做顺序检索。

Hash

1、 Hash 索引定位快。Hash 索引指的就是 Hash 表,最大的优点就是能够在很短的时间内,根据 Hash 函数定位到数据所在的位置,这是 B+ 树所不能比的。

2、 Hash 冲突问题。知道 HashMap 或 HashTable 的同学,相信都知道它们最大的缺点就是 Hash 冲突了。不过对于数据库来说这还不算最大的缺点。 Hash冲突指的是在向Hash表中存数据时,首先要用Hash函数计算出该数据要存放的地址。但是在这个地址中已经有值存在,所以这个时候就发生了Hash冲突。也就是一句话:key值不同的元素可能会映象到哈希表的同一地址上。解决Hash冲突:

1) 开放地址法: 一旦产生冲突,就去寻找下一个空的哈希地址。只要哈希表足够大,空的哈希地址总能找到,并将数据元素存入。

线性探测法

二次探测法

2) 再哈希法:同时构造多个不同的哈希函数。

3) 链地址法:将所有哈希地址为 i 的元素构成一个称为同义词链的单链表,并将单链表的头指针存在哈希表的第 i 个单元中,因而查找、插入和删除主要在同义词链中进行。

4) 建立公共溢出区:将哈希表分为基本表和溢出表两部分,凡是和基本表发生冲突的元素,一律填入溢出表。

3、 Hash 索引不支持顺序和范围查询是它最大的缺点。

7. 平衡二叉树的左旋右旋

防止二叉树出现“长短腿”的情况;便于二叉树查找

左旋:指将根节点的右侧往左拉,原先的右子节点变成新的父节点,并把多余的左子节点出让,给已经降级的根节点当右子节点

右旋:指将根节点的左侧往右拉,原先的左子节点变成新的父节点,并把多余的右子节点出让,给已经降级的根节点当左子节点

8. 图的广搜和深搜的实际应用场景

图的存储方式:邻接矩阵和邻接表。为了实现更好的性能,我们在实际应用中一般使用邻接表的方式来表示图。

深度优先搜索是利用递归方法实现的。我们只需要在访问其中一个顶点时:

1. 将它标记为已经访问

2. 递归地访问它的所有没有被标记过的邻居顶点

深搜应用(一):查找图中的路径、寻找连通分量、判断是否有环、判断是否为二分图

广度优先搜索使用一个队列来保存所有已经被标记过但其邻接表还未被检查过的顶点。它先将起点加入队列,然后重复以下步骤直到队列为空。

1. 取队列中的第一个顶点v出队

2. 将与v相邻的所有未被标记过的顶点先标记后加入队列

广搜应用(一):查找最短路径、求任意两顶点间最小距离

9. 判断一个图是否有环

深度优先搜索

10. 简单介绍Springcloud

微服务架构是一种架构模式或者说是一种架构风格,他提倡将单一应用划分为一组小的服务,每个服务运行在其独立的自己的进程中,服务之间相互协调,互相配合,为用户提供最终价值。服务之间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API),每个服务都围绕着具体的业务进行构建,并能够被独立的构建在生产环境,类生产环境等。另外,应避免统一的,集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言,工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务,可以使用不同的语言来编写服务,也可以使用不同的数据存储。

11. 分布式实现负载均衡有哪些方式、负载均衡7种策略有哪些?

Ribbon是一套客户端负载均衡的工具, 消费者可以自动看从Eureka中拿到对应的服务列表,默认进行轮询

Feign是一个声明式的Web服务客户端,使得编写Web服务客户端变得非常容易,在api层只需要创建一个接口,然后在上面添加注解即可

1.轮询策略

2.权重策略

3.随机策略

4.最小连接数策略

6.可用性敏感策略

7.区域敏感策略

12. 网关与过滤器的区别

过滤器

三个知识点:

 作用: 过滤器就是在请求的传递过程中,对请求和响应做一些手脚

 生命周期: Pre Post

 分类: 局部过滤器(作用在某一个路由上) 全局过滤器(作用全部路由上)

在Gateway中, Filter的生命周期只有两个:“pre” 和 “post”。

 PRE: 这种过滤器在请求被路由之前调用。我们可利用这种过滤器实现身份验证、在集群中选择请求的微服务、记录调试信息等。

 POST:这种过滤器在路由到微服务以后执行。这种过滤器可用来为响应添加标准的HTTP、Header、收集统计信息和指标、将响应从微服务发送给客户端等。

Gateway 的Filter从作用范围可分为两种: GatewayFilter与GlobalFilter。

 GatewayFilter:应用到单个路由或者一个分组的路由上。

 GlobalFilter:应用到所有的路由上。

 类似资料: