成都百世慧科技-线下-笔试+技术面试

笔试:想拍照,没拍上哈哈哈。勉强记录一下:

题型:选择题+填空题+附加题

选择题:sql语句、sql函数(count、max、min、agv、sum)、java与C#(例如private public等等修饰符)、前端语言(<body>内容先加载、创建元素、AJAX语法)

填空题:基本语句的输出

附加题:消息的重复消费、缓存穿透、DDD分层架构、对于分布式架构的理解

消息的重复消费

1. 消息消费前,先判断Redis中是否存在该消息的消费记录。

2. 如果Redis中存在该消息的消费记录,则说明该消息正在被消费,可以跳过当前消息的消费,避免重复执行。

3. 如果Redis中不存在该消息的消费记录,则进行消费并将该消息的消费记录写入Redis。

4. 消息消费完成后,可以释放Redis中该消息的消费记录。

缓存穿透

缓存穿透出现的原因

缓存穿透是指查询一个一定不存在的数据。由于缓存不命中,并且出于容错考虑,如果从数据库查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,失去了缓存的意义。

解决方案

1. 利用过滤器:由于请求的参数是不合法的(每次都请求不存在的参数),使用布隆过滤器 (BloomFilter)或者压缩 filter 提前拦截,不合法就不让这个请求到数据库层!

2. 设置空值:当我们从数据库找不到的时候,我们也将这个空对象设置到缓存里边去。下次再请求的时候,就可以从缓存里边获取了。这种情况我们一般会将空对象设置一个较短的过期时间(不超过 5 分钟)。

DDD分层架构,分层的目的:高类聚,低耦合

DDD全名叫:Domain Driven Design,领域驱动设计。它代表的是一种高质量的软件开发方法,是一种开发复杂软件的系统化的方法学和思想。

对于分布式架构的理解

分布式系统指一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。

通俗的理解,分布式系统就是一个业务拆分成多个子业务,分布在不同的服务器节点,共同构成的系统称为分布式系统,同一个分布式系统中的服务器节点在空间部署上是可以随意分布的,这些服务器可能放在不同的机柜中,也可能在不同的机房中,甚至分布在不同的城市。

数据库查询前五十条记录采用什么关键字

SELECT * FROM table_name LIMIT 50;

SELECT * FROM table_name WHERE id IN (SELECT id FROM table2_name LIMIT 50);

Springboot中有哪些设计模式

1. 工厂模式

2. 单例模式

3. 观察者模式

4. 适配器模式

5. 模板方法模式

项目介绍

接触过那些关系型数据库(大学学过android开发的一个轻量级的sqlite sqlserver mysql)

mysql数据库中货币的存储类型

DECIMAL是一种固定精度的数据类型,存储的是精确的小数值。DECIMAL还有一个优点,就是不会出现数据精度丢失的问题。

DOUBLE是一种浮点精度的数据类型,存储的是近似值。虽然DOUBLE在处理大数值时速度更快,但是会出现精度问题,如果涉及到舍入的计算,结果可能会出现误差

#面经##成都##应届##秋招#
全部评论
6k~10k
点赞 回复 分享
发布于 2023-12-01 19:23 四川

相关推荐

比亚迪 技术工程师 12000*12,公积金5%
有趣的芒果在努力存钱:本科来个球byd而且还是商用车
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
09-27 11:54
已编辑
柳工 结构工程师 9000/9500*14 硕士985
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务