所需E币: 0
时间: 2023-11-3 13:35
大小: 2.62KB
2023全新GO工程师面试总攻略,助力快速斩获offer视频教程,视频+源码+电子书下载!!选择题1. 【初级】下面属于关键字的是()A.funcB.defC.structD.class参考答案:AC2. 【初级】定义一个包内全局字符串变量,下面语法正确的是()A.varstrstringB.str:=""C.str=""D.varstr=""参考答案:AD3. 【初级】通过指针变量p访问其成员变量name,下面语法正确的是()A.p.nameB.(*p).nameC.(&p).nameD.p->name参考答案:AB4. 【初级】关于接口和类的说法,下面说法正确的是()A.一个类只需要实现了接口要求的所有函数,我们就说这个类实现了该接口B.实现类的时候,只需要关心自己应该提供哪些方法,不用再纠结接口需要拆得多细才合理C.类实现接口时,需要导入接口所在的包D.接口由使用方按自身需求来定义,使用方无需关心是否有其他模块定义过类似的接口参考答案:ABD5. 【初级】关于字符串连接,下面语法正确的是()A.str:=‘abc’+‘123’B.str:="abc"+"123"C.str:='123'+"abc"D.fmt.Sprintf("abc%d",123)参考答案:BD6. 【初级】关于协程,下面说法正确是()A.协程和线程都可以实现程序的并发执行B.线程比协程更轻量级C.协程不存在死锁问题D.通过channel来进行协程间的通信参考答案:AD7. 【中级】关于init函数,下面说法正确的是()A.一个包中,可以包含多个init函数B.程序编译时,先执行导入包的init函数,再执行本包内的init函数C.main包中,不能有init函数D.init函数可以被其他函数调用参考答案:ABQ1无缓冲的channel和有缓冲的channel的区别?答案:对于无缓冲的channel,发送方将阻塞该信道,直到接收方从该信道接收到数据为止,而接收方也将阻塞该信道,直到发送方将数据发送到该信道中为止。对于有缓存的channel,发送方在没有空插槽(缓冲区使用完)的情况下阻塞,而接收方在信道为空的情况下阻塞。例如:funcmain(){ st:=time.Now() ch:=make(chanbool) gofunc() { time.Sleep(time.Second*2) <-ch }() ch<-true //无缓冲,发送方阻塞直到接收方接收到数据。 fmt.Printf("cost%.1fs\n",time.Now().Sub(st).Seconds()) time.Sleep(time.Second*5)}funcmain(){ st:=time.Now() ch:=make(chanbool,2) gofunc() { time.Sleep(time.Second*2) <-ch }() ch<-true ch<-true//缓冲区为2,发送方不阻塞,继续往下执行 fmt.Printf("cost%.1fs\n",time.Now().Sub(st).Seconds())//cost0.0s ch<-true//缓冲区使用完,发送方阻塞,2s后接收方接收到数据,释放一个插槽,继续往下执行 fmt.Printf("cost%.1fs\n",time.Now().Sub(st).Seconds())//cost2.0s time.Sleep(time.Second*5)}那想成为年薪50w以上的Go语言工程师到底需要掌握哪些东西?大的点就是Goroutine的调度策略,Channel和Golang协程配合使用。另外,Go的底层、并发、调度、GC等等都是重中之中!基本Go语言搞定这些,跳槽薪资都会非常不错。我明白,大家平时忙于搬砖,没太多时间去学习,为了给我的粉丝们谋取更多福利,我通过几位大厂的朋友搞到了一手面试资料,整理了268道「大厂Go工程师面试题及详细解析」,这份资料不仅仅覆盖了Go开发核心内容,更包含后端工程师必备知识点!通过这些面试题带你了解大厂会关注工程师哪些技术点,查漏补缺,也为你提供一个学习的方向。Go语言领域知识点合集(以下为部分题目)除了面试时用,通过这些你是可以了解现在一线市场的招聘需求,可以认识到自己的问题,丰富自己的知识宽度,熟悉Go高频难点,巩固Go相关知识...1.Go基础类什么是Goroutine?你如何停止它?Go两个接口之间可以存在什么关系?与其他语言相比,使用Go有什么好处? ……2.Go并发编程类Mutex几种状态Mutex允许自旋的条件什么操作叫做原子操作…… 3.GoRuntime类1.0之前GM调度模型GMP调度流程基于信号的抢占式调度01初级/中级Golang工程师,能力有何差异?开始招聘之前,面试官的首要工作仍然是明确岗位招聘的需求。确认岗位等级后,再从实际工作任务出发,反推候选人应该具备哪些技能和知识。对于不同级别的Golang工程师,所需完成的开发工作也有所不同