当前位置: 首页 > 开发知识 >

golang面试中那些经常被问到的题目盘点

作者:游戏app开发公司 阅读: 发布时间:2024-08-18 11:02

摘要:golang虽然相对其它语言来说算是一门新的编程语言,但是其实自它诞生以来也已经有了十年以上的历史了。...

golang虽然相对其它语言来说算是一门新的编程语言,但是其实自它诞生以来也已经有了十年以上的历史了。最近这两年,golang语言变得异常火爆,很多公司都开始大量招收golang开发人员,而golang程序员的面试就显得非常重要,下面笔者总结几个golang中经常被问到的经典题目。

内存管理

golang中的内存管理和其它语言基本一样,也是分为堆区和栈区,较c语言进步的地方是它的内存垃圾回收是自动的,不需要程序员手动释放内存。下面总结几点golang中内存分配到堆区和栈区的几点特性

Goroutines

golang语言最引以为傲的点应该就是goroutine了,它通过csp模型,解决了并发问题,而且它实现起来非常的简单优雅。

中干面试常问问题__面试中提问

关于goroutine也有几点需要说明的。

Channel

channel是golang语言一个特殊的数据结构,goroutine就是通过通道进行通讯,通道类似于一个队列,遵循先进先出原则。

WaitGroup,Mutex,RWMutex

当我们想要确定所有的goroutine是否都执行完毕的时候,我们需要一个同步机制,这个时候我们可以使用WaitGroup来进行同步,它可以控制一组gorouine都执行完毕。

Mutex是互斥锁,同一个时间只有一个gorouine获取到锁才能执行,其它的需要等待。

RWMutex是读写锁,顾名思义,当读的次数多的时候,我们可以加多个读锁,而写入操作的时候,只能加一个写锁。

锁的存在都是为了限制资源的竞争,防止资源被同时修改引起冲突。

Interface

golang语言中的接口是隐式实现的,也就是说它不需要显示声明,只要实现接口的方法,我们就说它实现了接口。

接口是golang语言中的一种类型,它可以成为变量的定义,函数的入参,函数的返回值。

结构体可以实现接口,结构体指针也可以实现接口,因为接口定义的时候没有指定类型。

golang中的接口不是任意类型,它是一种特殊类型。

  • 原标题:golang面试中那些经常被问到的题目盘点

  • 本文由游戏app开发公司小编,整理排版发布,转载请注明出处。部分文章图片来源于网络,如有侵权,请与迪集网络联系删除。
  • 微信二维码

    CLWL6868

    长按复制微信号,添加好友

    微信联系

    在线咨询

    点击这里给我发消息QQ客服专员

    点击这里给我发消息电话客服专员

    在线咨询

    免费通话


    24h咨询☎️:132-5572-7217


    🔺🔺 24小时客服热线电话 🔺🔺

    免费通话
    返回顶部