【面试必备】GO语言常见面试题汇总!老男孩GO开发培训
老男孩IT教育
行业新闻
2021年10月19日 18:08
对于不少已经学习的差不多的小伙伴来说,最重要的事就是面试了,也就是找工作阶段,人人都想进入一个自己喜欢、薪资、待遇也都合适的企业吧,那如何进入呢?当然要靠我们的实力了,面试就要靠面试题,如果我们本身能力不低,面试答得也不错,大几率会被企业选中的,因此小编整理了一篇面试题文章,请看下文:
对于不少已经学习的差不多的小伙伴来说,最重要的事就是面试了,也就是找工作阶段,人人都想进入一个自己喜欢、薪资、待遇也都合适的企业吧,那如何进入呢?当然要靠我们的实力了,面试就要靠面试题,如果我们本身能力不低,面试答得也不错,大几率会被企业选中的,因此小编整理了一篇面试题文章,请看下文:
1、说说GO语言的main函数?
main函数不能带参数,不能定义返回值,所在的包必须是main包,可以使用flag包来获取和解析命令行参数。
2、new和make的区别?
new是内建函数,作用是初始化一个指向类型的指针,make的作用是slice,map或chan初始化并返回引用,第一个参数是一个类型,第二个参数是长度。
3、说说GO语言的协程?
协程和线程都可以实现程序的并发执行,通过channel来进行协程间的通信,只需要在函数调用前添加go关键字即可实现go的协程,创建并发任务,关键字go并非执行并发任务,而是创建一个并发任务单元。
4、go语言中的引用类型包含哪些?
数组切片、字典、通道、接口。
5、Golang的内存模型,为什么小对象多了会造成gc压力?
通常小对象过多会导致GC三色法消耗过多的GPU,优化思路是减少对象分配。
6、读写锁或互斥锁读的时候能写吗?
读写锁包括读锁和写锁,多个读线程可以同时访问共享数据,写线程必须等待所有读线程都释放锁以后,才能取得锁,同样的,读线程必须等待写线程释放锁后,才能取得锁,也就是说读写锁要确保的是如下互斥关系,可以同时读,但是读-写,写-写都是互斥的。
7、主协程如何等其余协程完再操作?
使用channel进行通信,context,select。
8、slice、len、cap、共享、扩容?
append函数,因为slice底层数据结构是由数组、len、cap组成,所以在使用append扩容时,会查看数组后面有没有连续内存块,有就在后面添加,没有就重新生成一个大的数组。
关于"【面试必备】GO语言常见面试题汇总!"的话题到这里就结束了,老男孩GO语言学习周期是多久?我校GO语言课程以周末班、网络班为主,学习周期4-6个月。
推荐阅读:
