当前位置: 首页 > 面试经验 >

默安科技Golang后端开发实习 一面

优质
小牛编辑
88浏览
2023-04-13

默安科技Golang后端开发实习 一面

面了30分钟 , 基本什么都问了但是答不出来的有很多

1. 自我介绍

--

2. string有了解吗 ,他的底层是什么

一个指针指向[]byte , 还有一个长度 ,

3. 那么string底层是一个指针,我们函数传参的时候修改会影响string吗

string并不能被修改

--

4. 那么如果传参是一个slice会影响原数组吗

如果没扩容会被影响 , 但是扩容了并不会影响

--

5. map有了解吗 ,怎么保证并发安全

加一个互斥锁和map一起或者改用sync.map

--

6.sync.map底层是什么有了解吗

底层是两个map , 一个read map 一个dirty map , 一开始读read map ,没有数据则加锁穿透去读dirty map

并且记录一个计数 ,计数满的时候read map被用dirty map进行覆盖

--

7. 我看你有了解过context是吗 ,context用来干嘛的

context和channel差不多,一般用来在并发场景下进行传递数据

--

8. 那你项目中[七天-Web框架]你的context是怎么用的

我并没有用context ,我是自己设计了一个和context差不多的结构体,里面有head body ,中间件信息, 和一个互斥锁

进行传递上下文

--

9.我们读一个关闭的channel会发生什么吗 , 写一个呢?

读并不会panic , 但是写会。我们优先读取channel里面还有的值 , 如果没有则放回当前数据的0值

--

10. 你项目gprc用的什么协议规定

用的protobuf

--

11.有了解过protobuf是用什么进行序列化的吗

不了解

--

12. 讲讲mysql索引的优化

最左前缀

注意范围查找会把联合索引退化成全表查询

注意类型转换带来的全表查询 ,例如varchar -> int

--

13.你项目中是用到了吗

是的

--

14.一般你怎么设计一个表 (还扯了点场景 ,没听清)

首先必有的字段id , 创建更新删除时间

另外的字段需要根据具体场景具体分析

--

15. 你一般设置的varchar一般都是变长的吗

不懂 , 我一般都是定长的varchar(100)...

--

16. 你知道utf8 varchar最长是多少吗

不知道

--

17. 查询xxxx一般用什么 (没听清 , 复述了一遍还是没有就说不会了)

--

18.你有自己写过联表查询吗(还多说了一句有的吧) ,

没有写过,大二的时候数据库课程写过,但是大三并没有写过

--

19.数据库的原子性用什么方式实现的

记不清了,不知道

--

20.你一般使用ORM ,有自己写过纯SQL吗

有写过,之前Java的时候写过

--

21.有了解过Linux的虚拟内存吗

操作系统的虚拟内存吗 , (以为会问分页啥的,没清楚),没了解过

--

22.Linux你一般用什么指令

Top查看内存和CPU , 或者使用ps ,以及看一些端口占用的指令,和一些创建文件,进入文件,查看文件,删除的指令

--

23.那么我现在需要查看一个文件最新更新的100行怎么做

不知道, 只会vim

--

24.进程和进程之间的通信是怎么实现的

一开始答了channel和goroutine , 但是说不对,想想管道?信号量? (面试官 : 算了我们先不说这个)

--

25.两次握手但是我一直发数据,和三次握手一样吗

先八股文了 , ,.... 浪费了服务端等待的时间 , (反问: 可是我一直发) , en... 一直发我认为应该就一样了

--

26.TCP断开连接的Time_OUT状态字有了解吗

没有

--

27.说一个你熟悉的排序算法

快速排序

--

28.说说快速排序的流程

首先将大问题处理成子问题 , 然后递归处理子问题,最后回溯子问题合并

我们一般需要找一个基值, 然后从两头找第一个大于基质的值,然后找一个小于基质的值

最后我们交换位置

--

29.那么我对一个排好序的数组进行快排时间复杂度是多少

nlogn及以下?

--

30.为什么是nlogn及以下?

快排本来就是nlogn,因为已经排好了,我认为不会再进入处理操作(想错了) ,所以log可以去掉

--

31.topk问题

--

应该还有好几个问题,忘记了IOS不能录音,只能自己回忆了

#go##实习##面经#
 类似资料: