校招|shopee测试一二面 校招

Shopee测试站一、二面试的主要考点涵盖数据结构、数据库、网络协议、编程、项目经验和计算机基础。
面试官注重对背景知识的深入了解和探索项目细节。
具体内容如下: 单方面考点 数据结构 线性和非线性结构的认知:需要明确线性结构(如表、链表)中数据元素的一对一关系和非线性结构(如树、图)中的一对多或多对多关系。
数组和链表的优缺点: 数组:优点是内存连续,通过索引访问速度快(时间复杂度为O(1 ));缺点是大小固定,插入和删除需要移动元素(平均时间复杂度O(n))。
链表:优点是插入和删除速度快(O(1 )时间复杂度)且大小可以动态扩展;缺点是内存不连续,访问必须从头开始遍历(时间复杂度为O(n))。
确定循环链表和环中的节点数: 确定循环链表: 使用快指针和慢指针。
快指针每次走两步,慢指针每次走一步。
如果相遇,就是一个循环链表。
环中节点数量:相遇后,固定一个指针,继续遍历另一个指针。
下次相遇时穿过的节点数就是环中的节点数。
编写数据库SQL语句:查找前1 0名学生信息: SELECTstudent.*FROMstudentJOINscoreONstudent.id=score.student_idORDERBYscore.scoreDESCLIMIT1 0;查找1 0-2 0名学生信息: SELECTstudent.*FROMstudentJOINscoreONstudent.id=score.student_idORDERBYscore.scoreDESCLIMIT1 0OFFSET1 0;数据库锁分类:按类型分为:共享锁(S锁)、排他锁(X锁)等。
根据粒度不同:行锁、表锁、页锁。
行锁锁定单行数据,并发性高但开销较高;表锁锁定整个表,开销小但并发性低;页锁介于两者之间。
Mysql主从复制:主库将数据变化记录在二进制日志中,从库从主库读取二进制日志并读回给自己,实现数据同步,可以提高可用性、可扩展性等。
索引的优缺点: 优点:提高查询速度,通过索引列快速定位数据。
缺点:占用额外的存储空间,降低写入速度(插入、更新、删除都需要维护索引)。
与交易相关: 交易设计原因:为了保证数据的一致性和完整性,比如银行转账,需要保证发出转账和传入转账同时成功或失败。
事务的特性:原子性(事务是最小的不可分割的操作单位),一致性(事务执行前后数据完整性保持不变)、隔离性(多个事务同时执行,互不干扰)、持久性(事务提交后数据永久保存)。
TCP和UDP网络协议的区别: TCP是一种可靠的面向连接的协议。
他通过三次握手建立连接,并通过四次握手释放连接。
它确保流量控制和拥塞控制。
适用于对可靠性要求较高的场景,例如文件传输。
UDP是一种无连接、不可靠的协议,不保证数据的顺序和可靠性。
但传输效率较高,适合实时性要求较高的场景,例如视频直播等。
TCP如何保证可靠性:通过序列号、确认响应、超时重传、流量控制、拥塞控制等机制保证数据传输的可靠。
编程:在一个非空整数数组中,只有一个元素是唯一的,其他元素有两个,找到唯一的元素。
您可以使用异或运算。
XOR运算满足交换律和结合律。
相同元素异或结果为0。
0与任意元素异或结果为该元素。
迭代数组以执行 XOR 运算。
最终结果是单个项目。
输入URL并在浏览器中显示的过程:浏览器解析URL,向DNS服务器发起域名解析请求,获取服务器的IP地址。
浏览器与服务器建立TCP连接(三次握手)。
浏览器向服务器发送 HTTP 请求。
服务器处理请求并返回 HTTP 响应。
浏览器分析响应内容并显示页面。
浏览器断开与服务器的 TCP 连接(挥手四次)。
第二级考点:项目经验:深入研究项目中遇到的难点问题及其解决方案,考察解决问题的能力和对项目的深入理解。
计算机基础知识线程和进程:区别:进程是资源分配的基本单位,线程是CPU调度的基本单位;进程有独立的地址空间,线程共享进程的地址空间。
连接:线程存在于进程中,一个进程可以有多个线程;线?

oblog_4.6_SQL 语句

要编写高效、准确的oblog_4 .6 _SQL语句,您应该遵循以下原则: 明确您的需求并缩小您的目标。
为了避免由于需求不明确而导致多次返工,您需要在创建需求之前清楚地了解需求。
例如,将您的需求分解为三个步骤:确定查询表→选择列→设置过滤条件,这样效率会更高。
举个例子:需求没有明确说明,所以我们不得不重写多个版本的SQL来满足需求,浪费了很多时间。
选择适当的语句类型。
根据操作类型,选择相应的SQL语句。
查询数据:SELECT 插入数据:INSERT 更新数据:UPDATE 删除数据:DELETE 要点:SELECT 语句的 WHERE 子句必须精确。
如果您错误地使用 = 而不是 LIKE,模糊查询就会失败。
注意语法细节。
SQL有严格的语法要求。
任何拼写错误或标点符号错误都会导致执行错误。
建议:使用代码编辑器(例如 VSCode 或 DBeaver)并使用语法突出显示和自动完成功能来减少错误。
请养成写评论的习惯。
即使是简单的语句也应该标明其用途,以方便后续维护。
案例:数据库查询由于拼写错误而失败,并且调试以找出问题需要很长时间。
测试和验证一旦写入完成,必须在测试环境中对其进行验证,以避免直接操作生产数据库。
工具推荐:MySQLWorkbench、SQLDeveloper等客户端工具支持执行和调试。
步骤: 运行测试库中的SQL,验证结果是否符合预期。
检查执行效率并优化后移至生产。
优化查询效率 必须优化复杂的查询,包括索引和查询计划的知识。
实用提示:为了提高速度,请避免使用 SELECT* 并仅查询所需的列。
明智地使用索引,例如在经常过滤的列上创建索引。
案例:优化后,查询时间从1 0秒缩短到0.5 秒。
总结:编写oblog_4 .6 _SQL语句需要结合五个方面:需求明确、语句类型选择、语法严谨、测试验证、效率优化。
通过实践积累经验,逐步提高写作能力。