数字马力 测开 测试开发 长沙 一面
10.18号面的,流程30~40分钟左右,面试官小姐姐人很好。我的技术栈是Java。
1.自我介绍。
2.项目是什么时间做的?分别介绍一下项目。
3.说说你项目中的MySQL数据库使用了哪种存储引擎?
4.考察一下你的sql语句吧,说说向表中插入数据的语句。
5.看到你简历上写了sql优化,谈谈你的sql优化经验。
6.你刚刚提到了索引,说说你的项目中索引是怎么使用的。
7.索引分为哪几种?底层数据结构的优点?
8.我看你项目中使用了Redis,具体是怎么使用的?
9.你说你对项目进行了单元测试,具体是怎么测试的?
10.你还进行了压测,具体测试内容和结果?
11.你说你使用过postman,你除了进行接口测试还用它做过其他的什么吗?
12.接口和抽象类的区别?
13.说说Java中的集合?
14.看你项目使用到了aop,你怎么理解aop?那你说说项目中具体是怎么使用的?
15.看你项目中使用了cas机制,说说什么是cas?你项目中具体是怎么使用的?为什么要选择乐观锁?乐观锁和悲观锁的优缺点?
16.说说osi网络模型?tcp,ip分别在哪一层?
17.说说http报文格式?你刚才提到了状态码,204状态码表示什么意思?404?5xx是表示哪里错误?502什么意思?
18.http请求类型有哪些?说说post和put类型的区别?
19.http和https的区别?
20.看到你简历中写了分布式事务,说说分布式事务的原理?
21.给你一个百度查询框,如何编写测试用例?
22.平时怎么进行测试相关的学习?
23.说说你对自动化测试的理解?
24.测试和开发,你更加偏向于哪个?
25.反问环节?
总体流程下来问的八股不难,项目也没咋深挖。你简历上写的东西一定要搞懂,面试官会问的。
面试完了当天我就显示进入复试了,不知道啥时候给我发邮件约二面。
#数字马力# #数字马力面经# #数字马力测开# #数字马力测试长沙#
1.自我介绍。
2.项目是什么时间做的?分别介绍一下项目。
3.说说你项目中的MySQL数据库使用了哪种存储引擎?
4.考察一下你的sql语句吧,说说向表中插入数据的语句。
5.看到你简历上写了sql优化,谈谈你的sql优化经验。
6.你刚刚提到了索引,说说你的项目中索引是怎么使用的。
7.索引分为哪几种?底层数据结构的优点?
8.我看你项目中使用了Redis,具体是怎么使用的?
9.你说你对项目进行了单元测试,具体是怎么测试的?
10.你还进行了压测,具体测试内容和结果?
11.你说你使用过postman,你除了进行接口测试还用它做过其他的什么吗?
12.接口和抽象类的区别?
13.说说Java中的集合?
14.看你项目使用到了aop,你怎么理解aop?那你说说项目中具体是怎么使用的?
15.看你项目中使用了cas机制,说说什么是cas?你项目中具体是怎么使用的?为什么要选择乐观锁?乐观锁和悲观锁的优缺点?
16.说说osi网络模型?tcp,ip分别在哪一层?
17.说说http报文格式?你刚才提到了状态码,204状态码表示什么意思?404?5xx是表示哪里错误?502什么意思?
18.http请求类型有哪些?说说post和put类型的区别?
19.http和https的区别?
20.看到你简历中写了分布式事务,说说分布式事务的原理?
21.给你一个百度查询框,如何编写测试用例?
22.平时怎么进行测试相关的学习?
23.说说你对自动化测试的理解?
24.测试和开发,你更加偏向于哪个?
25.反问环节?
总体流程下来问的八股不难,项目也没咋深挖。你简历上写的东西一定要搞懂,面试官会问的。
面试完了当天我就显示进入复试了,不知道啥时候给我发邮件约二面。
#数字马力# #数字马力面经# #数字马力测开# #数字马力测试长沙#
全部评论
请问你这边啥时候AI面试过的呀?
分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。
其原理主要涉及到多个部分。首先是事务协调器,它就像一个总指挥,负责整个分布式事务的执行过程。当一个分布式事务开始时,事务协调器会向各个参与者发送事务开始的指令。
以经典的两阶段提交(2PC)为例:
- 准备阶段:协调器要求每个参与者准备提交事务,也就是执行事务中的操作,但不提交。参与者会检查自身是否可以完成这个事务操作,比如检查资源是否足够等。如果可以执行,就会将执行结果(通常是“同意提交”或“中止事务”)反馈给协调器。
- 提交阶段:协调器收到所有参与者的反馈后,如果所有参与者都同意提交,协调器就会发送提交指令,让所有参与者真正提交事务;只要有一个参与者反馈不能提交,协调器就会发送中止指令,让所有参与者回滚事务。
还有三阶段提交(3PC),它是在2PC的基础上进行改进,把准备阶段再次细分,多了一个预提交阶段,目的是降低参与者在等待协调器指令时的不确定性,减少阻塞时间,不过实现起来更加复杂。
选择乐观锁是因为它在多读场景下能有更好的并发性能。乐观锁优点是高并发下性能好、不会阻塞事务;缺点是更新冲突时要回滚重试。悲观锁优点是能保证数据一致性,缺点是并发性能差,容易造成阻塞。
1. 基本搜索功能:
- 不同类型内容搜索:
- 中文搜索:输入常见的中文词语,如“美食”“旅游景点”等,检查是否能返回准确且相关度高的搜索结果。例如,搜索“美食”后,页面应展示各类美食相关的网页链接、图片、资讯等。
- 英文搜索:输入英文单词或短语,如“Technology”“Best movies in 2023”,验证搜索结果是否符合预期,是否是与输入的英文内容相关的网页信息。
- 数字搜索:输入数字,如“2024”“10086”(可代表中国移动客服电话等具有特定意义的数字),查看返回的结果是否与该数字相关,比如关于 2024 年的新闻事件、10086 相关的移动业务信息等。
- 搜索长度测试:
- 在允许长度内:输入长度适中的搜索内容,比如 20 个字符左右的一句话,确认能够正常搜索并返回相关结果。
- 接近最大长度:输入接近百度搜索框允许的最大长度(通常为 38 个字)的内容,检查系统是否可以正确处理并给出搜索结果。
2. 搜索建议功能:
- 输入部分内容:在搜索框中输入部分关键词,如“篮球比”,检查是否会自动显示相关的搜索建议,如“篮球比赛”“篮球比分”“篮球比赛规则”等,并且这些建议应与输入的内容相关度较高。
- 选择搜索建议:点击搜索建议中的某一项,验证是否能够正确跳转到该建议的搜索结果页面,且页面内容与所选择的建议相符合。
3. 快捷键操作:
- 回车键搜索:在输入搜索内容后,按下回车键,检查是否能够正常进行搜索并显示搜索结果,其结果应与点击搜索按钮后的结果一致。
- 复制粘贴搜索:复制一段文本,然后粘贴到百度搜索框中,点击搜索,检查是否能正确搜索到与复制内容相关的信息。
4. 历史记录功能:
- 查看历史记录:多次进行不同的搜索操作后,点击搜索框,检查是否能够显示之前的搜索历史记录,且记录的顺序应符合搜索的时间先后。
- 清除历史记录:点击搜索框设置中的清除历史记录选项,确认历史记录是否被成功清除,再次点击搜索框时不应再显示之前的搜索内容。
5. 页面链接与结果显示:
- 搜索结果链接:点击搜索结果页面中的各个链接,检查是否能够正确跳转到相应的网页,且网页内容应与搜索关键词相关。
- 结果分页功能:如果搜索结果较多,检查分页功能是否正常,点击不同的页码是否能够正确切换到对应的搜索结果页面。
- 结果排序:验证搜索结果的排序是否合理,例如按照相关性、时间等因素进行排序,且排序方式应符合用户的搜索需求。
6. 输入框交互功能:
- 光标显示:点击搜索框,检查是否会出现光标,且光标位置应正确,输入的字符应在光标位置显示。
- 鼠标操作:在搜索框中进行左键单击、双击、三击等操作,检查是否符合预期的输入框选中效果,如单击插入光标、双击选中部分内容、三击选中全部内容等。
- 右键菜单:在搜索框中点击鼠标右键,检查是否会弹出菜单栏,并且菜单栏中的选项如“复制”“粘贴”“删除”等是否可用(具体菜单选项可能因浏览器和操作系统而异)。
CREATE FULLTEXT INDEX idx_fulltext ON my_table (column3);
CREATE TABLE hash_index_table (
column1 INT,
column2 CHAR(10),
INDEX USING HASH (column1)
) ENGINE=MEMORY;
CREATE TABLE my_table (
id INT NOT NULL,
column1 VARCHAR(100),
PRIMARY KEY (id)
);
CREATE TABLE spatial_table (
id INT NOT NULL AUTO_INCREMENT,
geom GEOMETRY NOT NULL,
SPATIAL INDEX(geom)
);
TCP(传输控制协议)位于传输层,它主要负责在不同主机间提供可靠的、基于字节流的通信服务。例如,当你使用浏览器访问网页时,TCP协议保证数据能准确无误地从服务器传输到你的设备上。
IP(互联网协议)位于网络层,它的主要任务是将数据包从源地址发送到目的地址,进行寻址和路由选择。就像是一个快递员,负责把包裹(数据包)送到正确的地方。
CAS(Compare - And - Swap)即比较并交换。
它是一种用于实现多线程同步的机制。在多线程环境中,当一个线程要修改共享变量时,它会先比较该变量的当前值与预期值是否相同,如果相同就进行交换(修改)操作。例如,假设共享变量的值为5,线程A想要将它修改为10。线程A首先会检查变量当前值是否为5(预期值),如果是,就将其修改为10;如果不是,就说明有其他线程已经修改了这个变量,此次修改操作就可能需要重新尝试。
CAS操作是原子性的,它在硬件层面保证了比较和交换这两个步骤的不可分割,从而避免了使用锁机制带来的线程阻塞和性能损耗,在高并发场景下能有效提高程序性能。
在项目中,Redis有多种用途。
一是用作缓存。比如将频繁访问的数据库查询结果存储在Redis中。当需要数据时,先从Redis查找,如果存在就直接使用,避免了频繁查询数据库的开销。例如,对于商品信息的查询,热门商品的详情可以缓存起来,下次用户查询时快速返回。
二是实现分布式锁。在分布式系统里,当多个进程需要互斥访问共享资源时,通过Redis的SETNX命令(SET if Not eXists)设置一个键值对来实现锁机制。如果设置成功,说明获取锁;否则,说明锁已被其他进程获取。
三是用于消息队列。可以使用Redis的List数据结构,将消息按照先进先出的顺序存储。生产者将消息LPUSH到列表头部,消费者从列表尾部RPOP消息进行消费,以此来实现简单的消息队列功能。
你好我想问下一面有手撕代码吗,如果有你的是java还是sql呀
相关推荐