老男孩教育专注IT教育10余年,只培养IT技术精英

全国免费咨询电话(渠道合作):400-609-2893

【面试必备】GO语言常见面试题汇总!老男孩GO开发培训

老男孩IT教育

行业新闻

2021年10月19日 18:08

对于不少已经学习的差不多的小伙伴来说,最重要的事就是面试了,也就是找工作阶段,人人都想进入一个自己喜欢、薪资、待遇也都合适的企业吧,那如何进入呢?当然要靠我们的实力了,面试就要靠面试题,如果我们本身能力不低,面试答得也不错,大几率会被企业选中的,因此小编整理了一篇面试题文章,请看下文:

       对于不少已经学习的差不多的小伙伴来说,最重要的事就是面试了,也就是找工作阶段,人人都想进入一个自己喜欢、薪资、待遇也都合适的企业吧,那如何进入呢?当然要靠我们的实力了,面试就要靠面试题,如果我们本身能力不低,面试答得也不错,大几率会被企业选中的,因此小编整理了一篇面试题文章,请看下文:

Golang面试

       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个月。

       推荐阅读:

       学编程选择Rust还是GO?该如何选择适合的?

       区块链可以用来做什么呢?老男孩GO培训

       GO语言相比其他语言有哪些优势?老男孩GO开发培训

本文经授权发布,不代表老男孩教育立场。如若转载请联系原作者。