校招 未知部门 / 后端-Go / 一面
[面试日期] 2024-07-16 [面试时长] 未知
[学校背景] 河南科技学院 | 双非 [学历背景] 未知
[发布人] 面试之星官方收录
<h2>得物 - Go社招一面 - base长沙 - 7.10</h2>
<p><img alt="alt" src="https://uploadfiles.nowcoder.com/images/20240716/621876812_1721145462066/D2B5CA33BD970F64A6301FA75AE2EB22"></p>
<ol>
<li>简单介绍一下中台系统</li>
<li>挑其中一个参与比较多的,有成就感的,有挑战的一个项目,重点描述一下这个项目的业务背景,技术架构,以及我在里面的一个角色</li>
<li>广告投放完之后,用户点击了广告,你们去抓取数据,为什么要抓取数据呢?你们是广告主,是付了钱的,抖音,快手,广点通他们会把数据按照你们配置的点击链接回传给你。</li>
<li>项目中遇到过的最大挑战是什么,怎么解决的</li>
<li>go
<ol>
<li>遍历一个map的时候,连续遍历多次,中间没有其他代码,顺序相同的吗?</li>
<li>为什么顺序不同的</li>
<li>可以对map里面的一个元素取地址吗</li>
<li>go里面的内存逃逸</li>
<li>发生内存逃逸的例子</li>
<li>堆栈有什么区别</li>
<li>go里面select用在什么地方</li>
</ol>
</li>
<li>grpc
<ol>
<li>http2的优缺点</li>
</ol>
</li>
<li>团队怎么分工的,有版本的概念吗,需求谁提的呢,怎么看待这个分工的问题呢</li>
<li>代码及场景</li>
</ol>
<pre><code>func main() {
panic("xxx")
recover()
}
</code></pre>
<p>一、上面的panic会被捕获吗
给出修改代码</p>
<pre><code>func main() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Recovered from panic:", r)
}
}()
panic("xxx")
fmt.Println("This line will not be executed.")
}
</code></pre>
<p>二、以下代码输出什么</p>
<pre><code>func f() {
defer fmt.Println("D")
fmt.Println("F")
}
func main() {
defer fmt.Println("N")
f()
fmt.Println("M")
}
</code></pre>
<p>三、
select * from tableA where a = 1; 有一个表 ,里面有一个字段 a(建了一个单字段索引),假如分析发现这个 sql没有走命中这个索引a走的全表扫码,分析一下原因。</p>
<ul>
<li>为什么当a=1比较多的时候,走全表而不走索引呢?</li>
<li>对于非常小的表,数据库可能会选择全表扫描,为什么?</li>
<li>除了表比较小,重复值多区分度低,还有其他可能吗?(隐式类型转换 )</li>
</ul>
<p>四、假如有一个库(已经出现性能瓶颈了),库里面有10张表,其中两张表想迁出来,迁到一个独立的数据库里面,有什么思路。</p>
<ul>
<li>导出数据,再导入数据,再去更新代码中的数据库连接,中间这个过程中写在老库的数据就没有导入过来,不能暂停对老表的写操作。</li>
<li>定期增量备份,会有问题,定时跑的就会有定时的时间差。不管是定时备份也好还是手动导出导入也好,都不是原子性操作,就会有时间差,有数据漏损。</li>
</ul><a>#得物#</a><a>#Golang社招#</a><a>#社招#</a><a>#一面凉经#</a><a>#go#</a>
AI 推荐面试题
