2022-2023年度 golang(Go语言)工程师最新大厂面试真题

GO 基础类
1、与其他语言相比,使用 GO 有什么好处?

答:很快:开发效率快,尤其在异步并发,编译速度快,执行效率中上

简单:免去解释器,部署简单,自带交叉编译

语法:单一语法,强类型要求,利于团队协作

社区活跃:承诺版本向下兼容,工具多,第三方库丰富

2、GOLANG 使用什么数据类型?

​Go 语言中数据类型分为:基本数据类型和复合数据类型

基本数据类型有:

整型、浮点型、布尔型、字符串

复合数据类型有:

数组、切片、结构体、函数、map、通道(channel)、接口等。

Method、Bool、String、Array、Slice、Struct、Pointer、Function、Interface、Map、Channel

 
3、GO 程序中的包是什么?

包 (pkg) 是 Go 工作区中包含 Go 源文件或其他包的目录。源文件中的每个函数、变量和类型都存储在链接包中。

每个 Go 源文件都属于一个包,该包在文件顶部使用以下命令声明:

package

您可以使用以下方法导入和导出包以重用导出的函数或类型:

import

Golang 的标准包是fmt,其中包含格式化和打印功能,如Println().

更多内容,微信搜一搜:后端开发面试题

4、GO 支持什么形式的类型转换?将整数转换为浮点数。

Go 支持显式类型转换以满足其严格的类型要求。
i := 55 //int

j := 67.8 //float64

sum := i + int(j) //j is converted to int


5、什么是 GOROUTINE?你如何停止它?
6、 如何在运行时检查变量类型?

类型开关(Type Switch)是在运行时检查变量类型的最佳方式。类型开关按类型而不是值来评估变量。每个 Switch 至少包含一个case用作条件语句,如果没有一个case 为真,则执行default。


7、GO 两个接口之间可以存在什么关系?
8、GO 当中同步锁有什么特点?作用是什么
9、GO 语言当中 CHANNEL(通道)有什么特点,需要注意什么?
10、GO 语言当中 CHANNEL 缓冲有什么特点?
11、GO 语言中 CAP 函数可以作用于那些内容?
12、GO CONVEY 是什么?一般用来做什么?
13、GO 语言当中 NEW 和 MAKE 有什么区别吗?
14、GO 语言中 MAKE 的作用是什么?PRINTF(),SPRINTF(),FPRINTF() 都是格式化输出,有什么不同?
16、GO 语言当中数组和切片的区别是什么?
17、GO 语言当中值传递和地址传递(引用传递)如何运用?有什么区别?举例说明.
18、GO 语言当中数组和切片在传递的时候的区别是什么?
19、GO 语言是如何实现切片扩容的?
20、看下面代码的 DEFER 的执行顺序是什么? DEFER的作用和特点是什么?
21、GOLANG SLICE 的底层实现
22、GOLANG SLICE 的扩容机制,有什么注意点?
23、扩容前后的 SLICE 是否相同?
24、GOLANG 的参数传递、引用类型
25、GOLANG MAP 底层实现
26、GOLANG MAP 如何扩容
27、GOLANG MAP 查找
28、介绍一下 CHANNEL
29 、 CHANNEL 的 RING BUFFER 实现


GO 并发编程
1、MUTEX 几种状态?

⚫  mutexLocked — 表示互斥锁的锁定状态;

⚫ mutexWoken — 表示从正常模式被从唤醒;

⚫ mutexStarving — 当前的互斥锁进入饥饿状态;

⚫ waitersCount — 当前互斥锁上等待的 Goroutine 个数;

 更多内容,微信搜一搜:后端开发面试题
2、MUTEX 正常模式和饥饿模式
3、MUTEX 允许自旋的条件
4、RWMUTEX 实现
5、RWMUTEX 注意事项
6、COND 是什么
7、BROADCAST 和 SIGNAL 区别
8、COND 中 WAIT 使用
9、WAITGROUP 用法
10、WAITGROUP 实现原理
11、什么是 SYNC.ONCE
12、什么操作叫做原子操作
13、原子操作和锁的区别
14、什么是 CAS
15、SYNC.POOL 有什么用

你可能感兴趣的:(开发语言,后端,golang,vscode)