那位拿了多个Offer的大佬分享了最新Go面经

news2024/11/25 14:37:49

和大家分享一下我们 Go就业训练营 和 升职加薪星球 中战友们投稿的真实面经。

这是第一篇,计划还会再更新4篇最新Go面经,都是拿到Offer的那种!

欢迎大家关注我的账号,关注之后不迷路。

先秀战绩

虽然不同的公司考察的侧重点不一样,但是咱们还是可以有针对性做准备。大佬说到:

经过这么多场面试发现:如果面试官对项目感兴趣项目就拷打的比较深(我觉得还比较easy);如果面试官对项目没兴趣就深挖知识点,拷打算法。(墙裂建议大家写好项目介绍!)

b站外包

  1. 旋转数组

  2. mysql索引相关。

  • B+树有什么特点?
  • 为什么不用B树(查询的速度差不多,因为b+树数据都在叶子节点)。
  • 非聚簇索引和聚簇索引的区别。
  • 索引为什么要用id不用字符
  1. Linux相关命令和场景

  2. docker和k8s

上海莹锴网络科技

  1. Kafka怎么保证消息不丢失

  2. Kafka里面生产者给broker应答给生产者的时候网络断了该怎么处理?

  3. 讲一下golang中的并发编程

梭翱信息技术

  1. go语言特性(channel、map考察)

  2. 讲一下waitgroup的使用

  3. 知道模块化缓存吗?

  4. 知道分级缓存吗?

主要是一些缓存的应用场景为主。对于一些技术(redis、mq)的应用场景这部分比较欠缺

矢安科技

  1. 哪些数据结构是线程不安全的

  2. Map为什么是线程不安全的

  3. Channel阻塞可以实现什么场景(计数,令牌桶)

  4. Mysql什么时候是行所什么时候是表锁

  5. Mysql有几种错误读(脏读、幻读等等)

  6. Mysql默认事务隔离级别是什么

  7. 假如有个sql联了多个表还有字查询,改怎么优化

  8. 你平常是怎么优化mysql的

  9. Kafka为什么快?

  10. Kafka怎么实现消息不丢失

  11. Kafka是顺序写还是随机写

  12. Go协程是怎么扩展内存的(找P要)

  13. 讲一下你对docker和k8s的理解

  14. 说一下某种集群的leader选举策略(举例了redis)

  15. Redis中什么是主管下线,什么是客观下线。

  16. 聊一聊你对GRPC的理解。

  17. 为什么gprc传输比JSON快

  • 少了json转为2进制

  • protobuf文件中字段名用后面的数字代替,进一步减少数据量(学到了)

场景题:

  1. 假如有大量定时任务需要在凌晨1点都准时开始执行,你会怎么做

  2. 假如消息发送过多导致大量堆积怎么处理

华苏科技(国家电网外包)

项目拷打(介绍项目+遇到的难题)

  1. 有缓冲channel和无缓冲channel的区别

  2. 了解gin的中间件吗,讲一下你对他的了解

  3. select 满足多个case的时候怎么执行的。

  4. 如果有一个全局变量怎么保证并发安全。

  5. CPU高问题如何解决?

  6. 知道哪些设计模式?

场景题:

我有一个方法,用来存储一些文件资源,有多种不同的存储方式,你会怎么设计这个方法(应该是要考察泛型的使用)

爱可生

面试官说是go开发,但是没有什么技术原理提问。

介绍简历中的项目。

  1. 遇到的项目场景难题。

(他不太想听那种用技术选型方案来解决的常规问题,吹了一下systemtap)

  1. 讲一个技术栈中随便一个技术遇到的难题。

  2. 平时是怎么学习的。

整个面试几乎就没有技术性提问,一直在让我介绍项目,和遇到的问题以及我是怎么解决的,解决的思路是什么。

特斯拉外包笔试

题1

题2

题3

最后一道sql没写出来。但是前两题自测都对

成都美大

项目拷打

  1. 讲一下mysql的索引是什么结构

  2. 讲一下sql一般是怎么优化的

  3. Kafka消息堆积怎么处理

  4. 写一个方法的时候是传值好还是结构体好

场景题:

秒杀超卖怎么解决。(分布式锁+redis缓存)

矢安科技二面

一面的技术leader,没有聊太多的技术话题。主要是一些团队协作沟通上的问题

  1. 假如产品给你一个需求,你觉得不合适,和产品经理有冲突,你会怎么做?

  2. 你平时是怎么学习的?

  3. 假如给你一个活要求某个时间内快速完成,你又没学过,你会怎么做?

试探你是不是愿意加班

七云网络

笔试

三道程序解答题:

题1

问1

先输出哪个?

题2

问2

输出什么?

题3

问3

这段代码有什么问题?

问答题:

  1. TCP和http的关系是什么?

  2. 伪代码描述一下乐观锁

  3. Linux怎么看磁盘占用?

  4. 描述一下GC的过程?

  5. SQL题:写出薪资第二高的薪资

表emp

id int

salary int

算法:

力扣 : 20. 有效的括号(纸上纯手写)

面试

挨个问笔试的问题。。。

口述了两个方法for循环里操作channel之类的,但是他语言组织的我实在没听懂。。。

  1. 假如有一个高并发的场景,我怎么处理(不能借住其他组件,纯go程序)

然后mq问了两个迷一样的问题。

  1. 他提到了Kafka然后问我用的什么MQ,我说Kafka就是一种mq啊。感觉面试官不是很熟悉Kafka

  2. 接着他问我Kafka里的分组是怎么设置的,我以为他问的是消费者分组。结果他说是topic里的。结果他问的分组是Topic分区。。。

这家就别去了。面试流程很不合理,面试官沟通起来比较费劲,也不是很专业。

杉岩数据

项目拷打

其中问了为什么不用普罗米修斯去监控

  1. 假如你用于通知的Kafka挂了怎么办?有没有对Kafka进行监控?

  2. channel的使用场景?

  3. chaneel关闭之后再读和再关闭会发生什么?

  4. map中的数据delete之后内存会回收吗?

  5. GRPC请求和http请求有什么区别

腾娱

四道基础语法题

c := []int{11, 12, 13}
test(c)
log.Info("c=%v", c)
func test(s []int) {
	for i := 0; i < 10; i++ {
		s = append(s, i)
	}
}
  1. c最后是怎么样的?

func main() {
        values := []int{1,2,3,4,5,6,7,8,9}
        for _,v := range values {
                go func(){
                        println(v)
                }()
        }
}
  1. 求输出

func main() {
    wg := sync.WaitGroup{}

    for i := 0; i < 5; i++ {
        go func(wg sync.WaitGroup, i int) {
            wg.Add(1)
            fmt.Printf("i:%d\n", i)
            wg.Done()
        }(wg, i) 
    }
    wg.Wait()
	println("exit")
}
  1. 求输出

func testDefer() (err error) {
	defer func() {
		if err != nil {
			log.Error("defer: %s", err)
		}
	}()
	log.Info("testDefer: %s", "test")
	return handle()
}

func handle()error{
	return fmt.Errorf("normal:test")
}
  1. 求输出

  1. 改造他让他变得有序
func main() {
        values := []int{1,2,3,4,5,6,7,8,9}
        for _,v := range values {
                go func(){
                        println(v)
                }()
        }
}

杉岩二面

项目拷打15分钟

  1. Kafka的消息丢失和消息重复消费。

  2. Kafka和Rabbitmq的区别在哪?(架构、推和拉)

  3. 拉的模式有什么好处(控制消费速度)

  4. 使用分布式锁的过程中应用挂了?

  5. 优雅启停+defer

  6. 使用过期时间+自动续期

  7. 对象存储和文件存储的主要区别是什么?

  8. 分片上传是怎么实现的(文件合并hash一致性校验,引出文件秒传)

  9. 邮箱验证码功能怎么实现的。(redis+邮箱组件)

  10. jwt的格式。加密算法、内容、过期时间

  11. 讲一下defer的原理

  12. 讲一下map的底层结构

  13. map中hash冲突怎么解决(链表、红黑树)

  14. 讲一下go性能调优的案例(pprof,线程日志)

  15. 通过线程日志延伸出,怎么看一个线程在线程日志里是卡在循环还是事件等待?

  16. 线程日志上面会有标记。

  17. 讲一下mysql的事务隔离级别?

  18. 解释一下什么是可重复读?

  19. 事务实现的底层原理?

  20. Redis持久化机制(RDB,AOF)

  21. 为什么持久化的时候是fork子进程处理

  22. 讲一下docker实现容器的基本原理

  23. 用过其他容器运行时吗

  24. K8s有哪些组件?

  25. 你们是用什么control去构建deployment的?(没听懂)

欢迎交流

面经先分享到这里,如果你也有最新Go面经欢迎向我投稿:有偿的哦!

也欢迎你了解一下我们的就业训练营,辅导到你找到工作为止的那种

我们又出成绩啦!大厂Offer集锦!遥遥领先!

这些朋友赢麻了!

这是一个专注程序员升职加薪の知识星球

答疑解惑

需要「简历优化」、「就业辅导」、「职业规划」的朋友可以联系我。

一对一辅导的那种呦!

面试真题共享群

对了,我们准备搞一个金三银四面试真题共享群,互通有无,一起刷题进步,没准能让你能刷到自己意向公司的最新面试题呢。

感兴趣的朋友们可以在社区私信我。

或者加我微信:wangzhongyang1993

关注我的同名公众号:王中阳Go

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1545619.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

宜搭低代码高级认证实操题1 todolist

进行中待办 已完成待办 待办事项 待办事项远程api和变量配置 回调函数 function didFetch(content) {//console.log(content.data);// content.b 1; 修改返回数据结构中的 b 字段为1let res content.data;let todoList [];for(let i in res){todoList.push(res[i]);}consol…

MVC框架里的几种对象

Java语言是一门面向对象的编程语言&#xff0c;所有都用类表达&#xff0c;入口都是一个类&#xff0c;没有独立的main&#xff08;&#xff09;函数&#xff0c;类的实例化就是对象。 简单来讲类包括数据和方法&#xff0c;方法就是操作&#xff0c;是实现业务逻辑的地方&…

应急响应靶机-Linux(2)

前言 应急响应靶机训练&#xff0c;为保证每位安服仔都有上手的机会&#xff0c;不做理论学家&#xff0c;增加动手经验&#xff0c;可前来挑战应急响应靶机-Linux(2),此系列后期会长期更新&#xff0c;关注本公众号&#xff0c;被动学习。 挑战内容 前景需要&#xff1a;看…

16:00面试,16:06就出来了,问的问题有点变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到8月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

生物信息—数据库

文章目录 核酸数据库1 一级核酸数据库&#xff1a;GenBank1.1 原核生物核酸序列1.2 真核生物成熟mRNA1.3 真核生物DNA序列 2 一级核酸数据库&#xff1a;基因组数据库&#xff1a;Ensemble3 一级核酸数据库&#xff1a;微生物宏基因组数据库&#xff1a;JCVI4 二级核酸数据库 蛋…

(2022级)成都工业学院Java程序设计(JAVA)实验二:类和对象

写在前面 1、基于2022级软件工程/计算机科学与技术实验指导书 2、代码仅提供参考 3、如果代码不满足你的要求&#xff0c;请寻求其他的途径 运行环境 window11家庭版 IntelliJ IDEA 2023.2.2 jdk17.0.6 实验要求 1、 控制台菜单。在 Exp02_x 类中添加一个方法 menu_x&…

Flutter开发进阶之瞧瞧BuildOwner

Flutter开发进阶之瞧瞧BuildOwner 上回说到关于Element Tree的构建还缺最后一块拼图&#xff0c;build的重要过程中会调用_element!.markNeedsBuild();&#xff0c;而markNeedsBuild会调用owner!.scheduleBuildFor(this);。 在Flutter框架中&#xff0c;BuildOwner负责管理构建…

Java基础--128陷阱

问题引入 Integer a 123; Integer b 123; System.out.println(ab); 结果为true。 但是如果代码如下 Integer a 1230;Integer b 1230;System.out.println(ab); 这个的结果就是false。 问题解决 当Integer a 123时&#xff0c;其实他底层自动转换成了Integer a Inte…

数据库专题(oracle基础和进阶)

前言 本专题主要记录自己最近学的数据库&#xff0c;有兴趣一起补习的可以一起看看&#xff0c;有补充和不足之处请多多指出。希望专题可以给自己还有读者带去一点点提高。 数据库基本概念 本模块有参考&#xff1a;数据库基本概念-CSDN博客 数据库管理系统是一个由互相关联的…

Arduino+ESP8266+华为云物联网平台实现智能开关

前言 最近在做一个物联网项目&#xff0c;涉及到智能开关的开发。目前已经实现简单的TCP通信远程控制&#xff0c;但是考虑到后期的设备管理以及设备通信所需要的技术和服务器的维护成本&#xff0c;我决定将设备接入云平台。本文将详细阐述如何利用华为云的物联网平台&#x…

Linux系统下安装部署Linux管理面板1panel

目录 一 1panel介绍 1、1Panel简介 2、1Panel特点 二、本地环境规划 1、本此实验目的 2、本地环境部署 三、部署1Panel&#xff08;在线安装&#xff09; 1.创建安装目录 2.一键部署1Panel 3.检查1Panel服务运行状态 4.检查1Panel监听端口 四、关闭防火墙和selinux…

小动物主动跑轮和被动跑轮的功能和目的?

小动物主动跑轮和被动跑轮在运动方式、实验目的和设计构造方面上是有区别的。 运动方式不同。主动跑轮是由动物自主运动来推动跑轮转动的。这种设置可以真实地反映动物自发的运动情况。相对地&#xff0c;被动跑轮则是一种强迫运动的方式&#xff0c;通常由电机带动跑轮转动从…

视频生成Sora的全面解析:从AI绘画、ViT到ViViT、TECO、DiT、VDT、NaViT等

前言 真没想到&#xff0c;距离视频生成上一轮的集中爆发(详见《Sora之前的视频生成发展史&#xff1a;从Gen2、Emu Video到PixelDance、SVD、Pika 1.0》)才过去三个月&#xff0c;没想OpenAI一出手&#xff0c;该领域又直接变天了 自打2.16日OpenAI发布sora以来(其开发团队包…

基于yolov8安全帽检测的系统

基于yolov8安全帽检测的系统 项目描述&#xff1a; 安全头盔检测&#xff08;计算机视觉&#xff09; 1.自训练数据集1538张数据图片&#xff0c;进行标注&#xff0c;并进行100轮的训练&#xff0c;准确率达0.966 2.使用 Flask 和 Ultralytics YOLOv8 模型开发了一个 Web 应…

Matlab有限差分法求解狄利克雷(Dirichlet)边界的泊松(Poisson)问题,边界值为任意值

参考l链接&#xff1a; 有限差分法简介有限差分法-二维泊松方程及其Matlab程序实现弹性力学方程 有限差分法matlab,泊松方程的有限差分法的MATLAB实现 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%% Matrix method for Poisson Equation …

景联文科技上新高质量大模型训练数据!

在过去的一年中&#xff0c;人工智能领域呈现出了风起云涌的态势&#xff0c;其中模型架构、训练数据、多模态技术、超长上下文处理以及智能体发展等方面均取得了突飞猛进的发展。 在3月24日举办的2024全球开发者先锋大会的大模型前沿论坛上&#xff0c;上海人工智能实验室的领…

[Linux]知识整理(持续更新)

前言 Linux的目录结构 Linux的目录结构是一个树型结构 Windows 系统可以拥有多个盘符, 如 C盘、D盘、E盘 Linux没有盘符这个概念, 只有一个根目录 /, 所有文件都在它下面 Linux路径的描述方式 第一章 基本命令 命令格式 例:ls –la /etc 说明: 1)个别命令使用不遵循…

照片尺寸怎么修改?高效快速处理方法

在分享照片到不同平台时&#xff0c;也需要符合不同尺寸要求&#xff0c;在不同场景中&#xff0c;应该如何修改图片尺寸呢&#xff1f;还有不同的证件类型有着不同的证件照尺寸要求&#xff0c;因此我们需要根据要求对证件照尺寸进行调整&#xff0c;接下来就介绍几个可以图片…

35.基于SpringBoot + Vue实现的前后端分离-在线考试系统(项目 + 论文)

项目介绍 本站是一个B/S模式系统&#xff0c;采用SpringBoot Vue框架&#xff0c;MYSQL数据库设计开发&#xff0c;充分保证系统的稳定性。系统具有界面清晰、操作简单&#xff0c;功能齐全的特点&#xff0c;使得基于SpringBoot Vue技术的在线考试系统设计与实现管理工作系统…

Netty学习——源码篇6 Pipeline设计原理 备份

1 Pipeline设计原理 在Netty中每个Channel都有且仅有一个ChannelPipeline与之对应&#xff0c;它们的组成关系如下图&#xff1a; 通过上图可以看到&#xff0c;一个Channel包含了一个ChannelPipeline&#xff0c;而ChannelPipeline中又维护了一个由ChannelHandlerContext组成的…