您当前的位置: 首页 >  面试
  • 2浏览

    0关注

    212博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

golang笔记-面试题整理01

杰哥的技术杂货铺 发布时间:2021-12-23 23:52:43 ,浏览量:2

前两天有个朋友去面试,把他给问自闭了。。。 拿到他的面试题后,花了一些时间,整理了以下golang面试题,都是比较基础的问题,留给大家作为面试参考。

文章目录
        • 1、在进行项目开发时,遇到的关于golang的问题有哪些?
        • 2、golang中关于grpc和rest都使用过吗?grpc相对于rest的优势是什么?为什么选择groc?
        • 3、golang里面常用到的技术栈有哪些?
        • 4、gin框架的好处是什么?
        • 5、无缓冲通道和缓冲通道的区别是什么?
        • 6 、select的用处是什么?
        • 7、defer的用途和使用场景是什么?
        • 8、defer的执行顺序是什么?
        • 9、defer函数遇到return以后是怎么执行的?
        • 10、对于进程,线程,协程的理解是什么?
        • 11、有时候会遇到一些空的结构体,这个目的是什么?
        • 12、map怎么顺序读取?
        • 13、你在项目里面会用到什么数据结构,例如map、slice
        • 14、如果用range修改切片元素的值,会发生什么?
        • 15、了解空指针吗?
        • 16、怎么用go去实现一个set
        • 17、一般怎么比较两个结构体,怎么判断他们是否相等?
        • 18、make和new的区别是什么?
        • 19、说一下你对并发编程的理解?
        • 20、碰到过分布式锁的问题吗?分布式锁的原理你清楚吗?

1、在进行项目开发时,遇到的关于golang的问题有哪些?

可简单描述工作中用到的东西,协程,通道,框架、加密等等,说一些关键的技术点

2、golang中关于grpc和rest都使用过吗?grpc相对于rest的优势是什么?为什么选择groc?

两种API架构概述

  • grpc:gRPC是RPC框架中的一种,RPC(remote procedure call 远程过程调用)框架目标就是让远程服务调用更加简单、透明。RPC 框架负责屏蔽底层的传输方式(TCP 或者 UDP)、序列化方式(XML/Json/ 二进制)和通信细节。服务调用者可以像调用本地接口一样调用远程的服务提供者,而不需要关心底层通信细节和调用过程。RPC是一种设计理念,而gRPC是基于此种设计理念设计的真实框架。

  • rest:描述的是在网络中client和server的一种交互形式;一个架构样式的网络系统,指的是一组架构约束条件和原则。

grpc相对于rest的优势

gRPC 对接口有严格的约束条件,安全性更高,对于高并发的场景更适用

为什么选择grpc

  • grpc有明确的接口规范和对于流的支持;
  • RPC 效率更高。RPC使用自定义的 TCP 协议,可以让请求报文体积更小,或者使用 HTTP2 协议,也可以很好的减少报文的体积,提高传输效率。
3、golang里面常用到的技术栈有哪些?

协程、通道、web框架、密码学等

4、gin框架的好处是什么?
  • 快速:基于Radix树的路由,性能非常强大。
  • 支持中间件:内置许多中间件,如Logger,Gzip,Authorization等。
  • 崩溃恢复:可以捕捉panic引发的程序崩溃,使Web服务可以一直运行。
  • JSON验证:可以验证请求中JSON数据格式。
  • 多种数据渲染方式:支持HTML、JSON、YAML、XML等数据格式的响应。
  • 扩展性:非常简单扩展中间件。
5、无缓冲通道和缓冲通道的区别是什么?
  • 无缓冲通道,在通道满了之后就会阻塞所在的goroutine。(需要在其他goroutine中取出该通道中的元素,才能解除它所在通道的阻塞,不然就会一直阻塞下去。)
  • 缓冲通道,存完了东西可以不取出来,不会阻塞;
  • 缓冲通道相较于无缓冲区的通道在用法上是要灵活一些的,不会出现一次写入,一次读完就会堵塞。
6 、select的用处是什么?

过select可以监听channel上的数据流动。 select的用法与switch语言非常类似,由select开始一个新的选择块,每个选择条件由case语句来描述。

示例代码如下:

select {
    case             
关注
打赏
1666063422
查看更多评论
0.1202s