教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 Golang常见面试题

Golang常见面试题

发布时间:2022-02-17   编辑:jiaochengji.com
教程集为您提供Golang常见面试题等资源,欢迎您收藏本站,我们将为您提供最新的Golang常见面试题资源
<h3>1.select是随机的还是顺序的?</h3>

select就是用来监听和channel有关的IO操作,当 IO 操作发生时,触发相应的动作。
如果有一个或多个IO操作可以完成,则Go运行时系统会随机的选择一个执行,否则的话,如果有default分支,则执行default分支语句,如果连default都没有,则select语句会一直阻塞,直到至少有一个IO操作可以进行。

<h3>2.Go语言局部变量分配在栈还是堆?</h3>

Go语言编译器会自动决定把一个变量放在栈还是放在堆,编译器会做逃逸分析,当发现变量的作用域没有跑出函数范围,就可以在栈上,反之则必须分配在堆。
对于动态new出来的局部变量,go语言编译器也会根据是否有逃逸行为来决定是分配在堆还是栈,而不是直接分配在堆中。

<h3>3.简述一下你对Go垃圾回收机制的理解?</h3>

垃圾回收触发有两种,一个是在堆上分配大于 32K byte 对象的时候进行检测此时是否满足垃圾回收条件,如果满足则进行垃圾回收;(2)一种是主动垃圾回收,通过调用 runtime.GC(),这是阻塞式的。

垃圾回收的主要流程是三色标记法,步骤如下:
(1)所有对象最开始都是白色。
(2)从 root 开始找到所有可达对象,标记为灰色,放入待处理队列。
(3)遍历灰色对象队列,将其引用对象标记为灰色放入待处理队列,自身标记为黑色。
(4)重复(3)处理灰色对象队列直到队列为空,对白色对象执行清扫工作。

<h3>4.简述一下golang的协程调度原理?</h3>

https://www.cnblogs.com/linguoguo/p/10611837.html

到此这篇关于“Golang常见面试题”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
Golang template 高级问题
golang基础教程
Golang 正则表达式匹配
Golang在windows上开发的一些问题
golang常见容器
golang 算法课 给定乱序的0, 1 输出前0 后1
Golang常见面试题
使用Delve进行Golang代码的调试
Golang的map并发安全
Golang 高频面试题七问

[关闭]
~ ~