爆肝整理的Golang面试题,拿走不谢

爆肝整理的Golang面试题,不对之处望批评指正答案需要加上自己的思考,最好是代码实践下。

1、面试建议

技术部分

1)算法部分,刷LeetCode就完事了,这是一个长期的过程,短期突击没啥效果,因为题目太多了。

2)语言基础,细分为:golang基础及原理,就是本文主要内容了;mysql基础及原理;redis基础及原理;linux常用的命令,比如定时脚本几个参数时间分别代表啥,文件权限需要搞清楚,进程内存占用命令;小公司还要懂一些前端的知识,因为他们希望你什么都会。

建议大家可以去多刷刷Golong题库,题库总结的很到位,而且题目质量也很高,方便巩固语法基础,还可以去看前端面试题库,题目很全还配有答案,可以方便快速的了解前端知识。

3)项目经验,可以搞一个基于gin的后端接口服务的web框架,一般会问你怎么实现的;以及微服务了解一下。

非技术部分

1)HR面也可以完全准备一份可能问到的问题的答案,并不是说你不会回答,而是会让你的表达更顺畅,其次也说明你是有备而来的,我在某拉公司面试就吃了这个亏,技术通过,HR说我的表达能力不行(后续我也会把这个模板分享出来,感谢我媳妇充当面试官,以及指导如何高情商的回答HR的问题)。

2)可以自己录音面试回答,看看自己的语气、音量,顺畅度,如果自己听了都不舒服,面试官可能也不舒服。

1、golang中make和new的区别?(基本必问)

共同点:给变量分配内存

不同点:

1)作用变量类型不同,new给string,int和数组分配内存,make给切片,map,channel分配内存。

2)返回类型不一样,new返回指向变量的指针,make返回变量本身。

3)new分配的空间被清零。make分配空间后,会进行初始化。

2、数组和切片的区别(基本必问)

相同点:

1)只能存储一组相同类型的数据结构。

2)都是通过下标来访问,并且有容量长度,长度通过len获取,容量通过cap获取。

区别:

1)数组是定长,访问和复制不能超过数组定义的长度,否则就会下标越界,切片长度和容量可以自动扩容。

2)数组是值类型,切片是引用类型,每个切片都引用了一个底层数组,切片本身不能存储任何数据,都是这底层数组存储数据,所以修改切片的时候修改的是底层数组中的数据。切片一旦扩容,指向一个新的底层数组,内存地址也就随之改变。

简洁的回答:

1)定义方式不一样。

2)初始化方式不一样,数组需要指定大小,大小不改变3)在函数传递中,数组切片都是值传递。

3、forrange的时候它的地址会发生变化么?

答:在fora,b:=rangec遍历中,a和b在内存中只会存在一份,即之后每次循环时遍历到的数据都是以值覆盖的方式赋给a和b,a,b的内存地址始终不变。由于有这个特性,for循环里面如果开协程,不要直接把a或者b的地址传给协程。

解决办法:在每次循环时,创建一个临时变量。

4、godefer,多个defer的顺序,defer在什么时机会修改返回值?

作用:defer延迟函数,释放资源,收尾工作。如释放锁,关闭文件,关闭链接。捕获panic。

避坑指南:defer函数紧跟在资源打开后面,否则defer可能得不到执行,导致内存泄露。

多个defer调用顺序是LIFO(后入先出),defer后的操作可以理解为压入栈中defer,return,returnvalue(函数返回值)。

执行顺序:首先return,其次returnvalue,最后defer。defer可以修改函数最终返回值。

修改时机:有名返回值或者函数返回指针。

5、能介绍下rune类型吗?

golang中的字符串底层实现是通过byte数组的,中文字符在unicode下占2个字节,在utf-8编码下占3个字节,而golang默认编码正好是utf-8。

byte等同于int8,常用来处理ascii字符。

rune等同于int32,常用来处理unicode或utf-8字符。



  • 鐖嗚倽鏁寸悊鐨凣olang闈㈣瘯棰,鎷胯蛋涓嶈阿
    绛旓細1锛夌畻娉曢儴鍒嗭紝鍒稬eetCode灏卞畬浜嬩簡,杩欐槸涓涓暱鏈熺殑杩囩▼锛岀煭鏈熺獊鍑绘病鍟ユ晥鏋滐紝鍥犱负棰樼洰澶浜嗐2锛夎瑷鍩虹锛岀粏鍒嗕负锛golang鍩虹鍙婂師鐞嗭紝灏辨槸鏈枃涓昏鍐呭浜嗭紱mysql鍩虹鍙婂師鐞嗭紱redis鍩虹鍙婂師鐞嗭紱linux甯哥敤鐨勫懡浠わ紝姣斿瀹氭椂鑴氭湰鍑犱釜鍙傛暟鏃堕棿鍒嗗埆浠h〃鍟ワ紝鏂囦欢鏉冮檺闇瑕佹悶娓呮锛岃繘绋嬪唴瀛樺崰鐢ㄥ懡浠わ紱灏忓叕鍙歌繕瑕佹噦涓浜...
  • 扩展阅读:护士面试三基问答题 ... golang高级面试题 ... golang面试题及答案 知乎 ... golang面试题库pdf ... golang为什么不建议学 ... 面试官最讨厌的6句话 ... 医院面试常见专业问题 ... 医生50个经典面试题 ... 10个高情商面试题 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网