2023-01-05 长亭科技 Go 后端开发实习生二面

news2024/9/21 14:32:29

由于面试官前几天 🐏 了,在 HR 面后补了技术二面,不过问得倒也不难,但还是记录下。

1、请做 3 ~ 5 分钟的自我介绍。
2、你说研究生的方向是漏洞挖掘和模糊测试,可以介绍一下吗?
3、简单介绍下缓冲区溢出漏洞,如何挖掘此类漏洞?如何利用此类漏洞进行恶意攻击?Linux 的避免缓冲区溢出漏洞的工具有了解吗?
4、说一下数据库的隔离机制。

脏读(即读到未提交的数据)、不可重复读、幻读和串行化(Serializable)。

5、不可重复读和幻读的区别是什么?

这个问题很高频,也很难答好,参考知乎回答,捋一捋这个问题。

(1)不可重复读 是读到已提交的数据,只不过这个数据每次都不一样,侧重于对数据的修改。如事务A,多次读表中的工资数据,但另一边事务B给某位员工涨工资了,导致事务A每次读到的数据都不一样。还有对数据的删除,如事务B将某位员工的工资数据删除,也会导致事务A读到的数据不一致,删除也可以归类到不可重复读。
(2)幻读 侧重于对数据的插入。幻读执行相同的查询语句是可以重复读到一致的数据的,但对插入的新数据就无可奈何了。例如,计算所有员工工资时,事务B插入一条新工资数据,事务A查询不到,但事务A在计算总工资的时候,发现总和变多了,这就见了鬼(phantom)了。

为啥要区分这两种情况呢?因为在数据库管理机制上,对这两种情况的解决方法是不同的。
对于不可重复读,只要加上行级锁即可,给已提交的每行数据上锁,一个事务在读的时候,不允许另一个事务操作该行数据。
但对于幻读,新的数据行是之后插入的,连这行数据都没有,更谈不上行级锁,因此需要采取新的锁机制,即加间隙锁

6、如何避免幻读?

🔒 加间隙锁。

7、TCP 里怎么做流量控制?或者更普遍一点,对于流量控制可以有哪些做法?

TCP 中的流量控制是接收方根据其滑动窗口的大小,告知发送方剩余的可接受空间(接收窗口的大小),然后发送方根据该通知确定发送报文的大小。

8、TCP 有三次握手和四次挥手,为什么挥手多了一次?

因为挥手时存在一个半关闭状态。例如,客户端发起断开连接请求,服务器应答请求后进入半关闭状态,此时服务器还能向客户端发送未发完的消息,但客户端已经无法发送消息只能接受消息。服务器发完所有消息后,也向客户端发起断开连接请求,这里多了一次挥手。

9、聊聊你用过的技术栈,使用过哪些数据库?

Web 框架 Spring MVC,Spring Boot,Iris。数据库的话是 MySQL、SQLServer。消息队列 RabbitMQ,缓存中间件 Redis。

10、说一说 Redis 的数据结构?我开始说了跳表,面试官说那是内部的实现。Redis 面向使用者的数据结构有哪些?

String:字符串类型;List:列表类型;Set:无序集合类型;ZSet:有序集合类型;Hash:哈希表类型

11、Redis 有哪些应用场景?

八大应用场景:
(1)缓存,减小数据库的压力;(2)排行榜;(3)计数器,如文章浏览量 + 1;(4)分布式会话;
(5)分布式锁;(6)社交网络,如关注、点赞、共同好友等;(7)最新列表;(8)用作消息队列。

12、Redis 既然可以作为缓存,那么说一说缓存的局部性原理。

包括 时间局部性原理 和 空间局部性原理。
时间局部性原理:若程序中的某条指令被执行,则不久之后该指令可能被再次执行;若某数据被访问,则不久之后该数据可能被再次访问。举例:for 循环。
空间局部性原理:若程序访问了某个存储单元,则不久之后,其附近的存储单元也将被访问。举例:数组结构。

13、聊聊你在滴滴 🚕 的实习(大概 10 分钟)。

14、算法思维题:蚂蚁爬绳,一根绳子左右两端各有若干蚂蚁相向爬行,两只蚂蚁相向碰撞后各自掉头,直到全部蚂蚁爬出绳子,求一共发生多少次碰撞后所有蚂蚁爬出绳子(未写代码)。面试官提示用分治思想,我用了数学归纳法 😅。
在这里插入图片描述
结果:若左侧有 m 只蚂蚁,右侧有 n 只蚂蚁,则需经过 m×n 次碰撞后,所有蚂蚁才能爬出绳子。
追问,左侧头部的这只蚂蚁需要经过多少次碰撞才能出绳子。

15、问了对未来的职业规划,是做后端?测试?还是走安全?
16、问了成绩排名和保研清华的流程。
17、经典反问环节。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/141776.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022年中国特色智能工厂领航制造业升级分析报告

易观:当前,新一轮的科技革命和产业变革正在重塑世界格局,科技创新也成为影响国家竞争力的决定性因素。在全球制造业格局重塑的过程中,智能工厂作为全球智能制造产业实践的示范标杆与标准载体,是引领全球制造业企业与工…

机器学习中的数学原理——逻辑回归

这个专栏主要是用来分享一下我在机器学习中的学习笔记及一些感悟,也希望对你的学习有帮助哦!感兴趣的小伙伴欢迎私信或者评论区留言!这一篇就更新一下《白话机器学习中的数学——逻辑回归》!什么是逻辑回归算法逻辑回归 (Logistic…

【信管6.3】成本挣值计算

成本挣值计算铺垫了那么久,不知道大家期待不期待。总算到了挣值计算这一课,这个名字很奇怪呀,什么叫做挣值?成本不就是我们的投资吗?这个挣值到底是要干嘛?带着这些疑问,我们就来看看挣值计算到…

2022全年度奶粉十大热门品牌销量榜单

随着居民收入水平的提升、消费观念的转变及健康饮食意识的逐渐增强,消费者对食品品质的要求也越来越高,奶粉市场也同样如此。当前,国内婴幼儿奶粉市场规模呈稳步增长态势,同时,“三孩政策”的发布实施,也利…

C++模板 - 提高编程

引言 本阶段主要针对C泛型编程和STL技术做详细的讲解,探讨C更深层的使用 1 模板 1.1 模板的概念 模板就是建立通用的模具,大大提高复用性 例如生活中的模板: 一寸照片模板: 模板的特点: 模板不可以直接使用&#…

制造业项目管理软件如何帮助企业做好项目费用管理?

在项目导向型制造型企业中,项目的成本管理与费用控制是企业进行项目评价与利润管控、指导市场选择和项目筛选的重要手段。而传统的手工管理模式下,制造企业管理层很难快速了解到哪些项目出现了延误、哪些项目发生了费用超支、哪些项目产生了变更等问题与…

C#,图像二值化(14)——全局阈值的最佳迭代算法及源代码

1、图像二值化 图像二值化是将彩色图像转换为黑白图像。大多数计算机视觉应用程序将图片转换为二进制表示。图像越是未经处理,计算机就越容易解释其基本特征。 二值化过程 在计算机存储器中,所有文件通常以灰度级的形式存储,灰度级具有从0…

欢迎来到,个人数据安全“世界杯”

2022年国际足联世界杯,巴西止步8强,克罗地亚挺到半决赛,阿根廷与法国双强对决最终阿根廷点球大战胜出……精彩纷呈的世界杯已经落幕,而我们因足球而起的激情和热爱不会消退。世界杯是属于每个人的,每个球迷在世界杯中都…

03-redis篇 架构设计之一: 主从复制

目录 第一篇: 主从复制 二. 实践操作 1. 准备工作 -> ps: 安装redis的文章: docker版 的redis安装 2. 制作docker镜像 -> 2.1 制作redis6379 -> 2.2 制作redis6380 -> 2.3 制作redis6381 3. 查看主镜像redis6379的ip地址 -> 3.1 IPAddress位置在这: …

【数据库数据恢复】mdb_catalog.wt文件丢失的MongoDB数据恢复案例

MongoDB数据库数据恢复环境: MongoDB数据库部署在一台虚拟机上,虚拟机操作系统为Windows Server2012。 MongoDB数据库故障&分析: 由于业务发展需求,需要对MongoDB数据库内的文件进行迁移,在MongoDB服务开启的状态…

内部排序:希尔排序

希尔排序,又称为“缩小增量排序”,是直接插入排序的优化。 对于直接插入排序,当待排记录序列处于正序时,时间复杂度可达O(n),若待排记录序列越接近有序,直接插入排序越高效。希尔排序的思想正是基于这个点…

QT(5)-QHeaderView

QHeaderView1 说明2 函数2.1 级联调整大小2.2 默认对齐方式2.3 count()2.4 表头默认单元格大小2.5 hiddenSectionCount()2.6 分区显示和隐藏2.7 表头高亮2.8 是否可以移动第一列2.7 是否显示排序索引2.8 表头长度2.9 逻辑索引2.10 表头分区最大/小大小2.11 移动分区2.12 表头偏…

Qlik帮助提升数据素养:新一代打工人“必备招式”

“营销”在业务推进过程中扮演着至关重要的角色。然而,当前营销的影响力却往往未得到广泛理解和重视。 在数字世界里,数据浩瀚如海,但如果“探险者”没有乘风破浪的能力,这片数据汪洋只能沉寂在角落里“吃灰”。而数据素养&#…

Ubuntu20.04 rosdep 失败解决方法

参考文章http://www.autolabor.com.cn/book/ROSTutorials/chapter1/12-roskai-fa-gong-ju-an-zhuang/124-an-zhuang-ros.htmlsudo gedit ./rosdistro/__init__.py sudo gedit ./rosdep2/gbpdistro_support.py sudo gedit ./rosdep2/sources_list.py sudo gedit ./rosdep2/rep3.…

厚积薄发打卡Day112:堆栈实践(二)<汉诺塔问题>

厚积薄发打卡Day112:堆栈实践(二)<汉诺塔问题> 问题 相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大…

Jvm知识点二(GC)

GC 相关知识点一、垃圾收集器二、 java 中的引用三、 怎么判断对象是否可以被回收?四、 Java对象在虚拟机中的生命周期五、垃圾收集算法标记-清除算法复制算法补充知识点深拷贝和浅拷贝标记-压缩算法(Mark-Compact)分代收集算法Java堆的分区六…

SSH实验部署

一,实验要求 1,两台机器:第一台机器作为客户端,第二台机器作为服务器,在第一台使用rhce用户免 密登录第二台机器 2,禁止root用户远程登录和设置三个用户sshuser1, sshuser2, sshuser3, 只允许ss…

三维数学(二)

欧拉角 使用物体在三个旋转轴上的旋转角度来保存方位 API: Transform.eulerAngles:返回或设置物体的欧拉角 优点: 1.仅使用三个数字表达方位,占用空间小 2.沿坐标轴旋转的单位为角度,符合人的思考方式 3.任意…

OSPF网络类型实验配置(华为)

OSPF网络类型实验配置(华为): 根据实验要求,我们可以把其拆分成为两个部分来做,分别做两个部分的MGRE: 通过拆分可以更加直观的看到路由器之间的信息传输,然后分别做R1,R2,R3和R1,R4,R5的MGRE:…

【Xilinx】如何自动格式化Verilog代码

开发环境VivadoVSCode 【Xilinx】自动格式化Verilog代码前言一、安装VSCode并修改Vivado的默认编辑器二、安装Verilog插件1. 语法插件2. 格式化插件三、演示:如何代码格式化1. 插件演示2. 修改默认插件附录前言 有时候接手别人的代码,或者从网上找的开源…