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

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

Go语言常见面试题讲解!老男孩GO语言培训

老男孩IT教育

常见问题

2021年9月18日 16:00

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

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

Golang面试

       1、说说go语言中的init函数?

       一个包中,可以包含多个init函数;程序编译时,先执行导入包的init函数,再执行本包内的init函数。

       2、go语言中的引用类型和值类型包含哪些?

       引用类型:组切片、字典、通道、接口;值类型:基本数据类型,int、float、bool、string以及数组和struct。

       3、select是随机的还是顺序的?

       select会随机选择一个可用通道做收发操作。

       4、说说go语言的channel特性?

       a.给一个nil channel发送数据,造成永远阻塞;b.从一个nil channel接收数据,造成永远阻塞;c.给一个已经关闭的channel发送数据,引起panic;d.从一个已经关闭的channel接收数据,如果缓冲区中为空,则返回一个零值。

       5、map如何顺序读取?

       可以把key放入切片,对切片进行排序,遍历切片,通过key取值。

       6、new()和make()的区别?

       new(X)会为X类型的新值分配已置零的内存空间,并返回地址(指针),即类型为*X的值,不能对指针执行append操作,适用于值类型,如数组、结构体等。

       7、Redis有哪些数据类型?

       Redis支持五种数据类型:string(字符串)、hash(哈希)、list(列表)、set(集合)及zset(sorted set)有序集合

       8、Goroutine的调度原理?

       基于G-P-M模型:

       G:它是Goroutine,存储了Goroutine的执行栈信息,Goroutine状态以及Goroutine的任务函数等都是可以重用的;

       P:它是逻辑Processor,P的数量决定了系统内最大可并行的G的数据(物理CPU核数>=P的数量);P最大的作用是它有各种G对象队列、链表、缓存和状态;

       M:它是真正执行计算的资源,在绑定有效的P后,一个调度循环开始,而调度循环的机制是从各种队列、P的本地运行队列中获取G,切换到G的执行栈上并行执行G的函数,调用goexit做清理工作,然后回到M。这样反复。M并不保存G的状态,这是G可以跨M调度的基础。

  老男孩GO语言学习周期是多久?我校GO语言课程以周末班、网络班为主,学习周期4-6个月。

       推荐阅读:

       区块链究竟是什么?它的优势有哪些?GO零基础学习

       Go语言都有哪些特性?老男孩GO程序开发

       Go语言可以应用在哪些领域?Go开发培训

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