贝壳golang9.17凉经

自我介绍
一.channel底层原理?
答:channel有几个重要的字段:
1.buf指向底层的循环数组,只有设置为有缓存的channel才会有buf
2.sendx和recvx分别指向底层循环数组的发送和接收元素位置的索引
3.sendq和recvq分别表示发送数据的被阻塞的goroutine和读取数据的goroutine,两个都是双向链表结构
4.sendq和recvq的结构为等待队列类型,sudog是goroutine的一种封装
二.channel是如何发送数据的?
答:1.首先看看recvq是否为空,如果不为空,直接从recvq队头取出一个goroutine,将数据发送过去,并唤醒goroutine
2.如果recvq为空,则将数据放入到buffer中
3.如果buffer满了则将goroutine放入sendq队列中,并将当前goroutine置为waiting状态

三.golang中如何拼接字符串?哪种效率最高?
答:
1.在已有字符串数组的场合,使用 strings.Join() 能有比较好的性能
2.在一些性能要求较高的场合,尽量使用 buffer.WriteString() 以获得更好的性能
3.性能要求不太高的场合,直接使用运算符,代码更简短清晰,能获得比较好的可读性
4.如果需要拼接的不仅仅是字符串,还有数字之类的其他需求的话,可以考虑 fmt.Sprintf()

四.介绍下项目的主要内容?

五.单点登陆怎么实现的?

六.说说你对Elasticsearch的了解?

七.说说平时是怎么优化程序性能的?

八.说说对kafka和zookeeper的了解?

九.项目中你是怎么使用kafka的?

十.说说DevOps自动化工作流你是怎么搭建的?

算法:
一、判断链表是否有环?

二、算法三数之和?
全部评论
贝壳还有go吗
点赞 回复 分享
发布于 2023-09-18 12:41 广东
这还凉?
点赞 回复 分享
发布于 2023-09-19 08:17 广东
本科还是硕士呀老哥
点赞 回复 分享
发布于 2023-09-19 09:24 河北
都答上来了也凉凉了吗
点赞 回复 分享
发布于 2023-09-19 09:50 山西

相关推荐

📍面试公司:字节跳动👜面试岗位:生活服务📖面试问题:1.问我知不知道http1和http2的区别(想不起来了)2.问我了不了解https(我回答:HTTP是明文传输,HTTPS通过SSL/TLS加密传输。HTTPS通过数字证书验证服务器身份,并使用对称加密和非对称加密结合的方式保证数据安全。然后面试官问我为什么用对称非对称加密,就答不上来了)3.问了我Grid和Flex的使用场景区别(说不出来,最后答了个Grid更适用于网格)4.问了我CSS实现水平垂直居中的方法(我说Grid,Flex,绝对定位都可以,让我选一个实现一下,我用了Flex)5.问我了不了解浏览器安全相关的知识(我说了什么是XSS跨站脚本攻击并怎么防范,面试官问了攻击者注入的是什么样的恶意脚本,就答不出来了)6.简历里面写的webpack和gulp,问我对这两个熟不熟悉(并不了解,面试官就问下一个了)7.问了我node.js(不知道具体问的什么,我就说是一个js运行环境,然后面试官说本来就是用js写的,就笑了笑过去了)8.代码题:给了一个二叉树,让我编写代码输出所有节点(我用了递归的前序遍历)9.反问🙌面试体验:应该差不多就这些问题,全靠记忆,我看别的大佬都是面试1小时以上,我这半小时结束了,估计要凉了。面试官人很好,没有那么严肃,看我答不上来就说没事我们下一个问题,让我感觉不是特别紧张。#字节面经##牛客AI配图神器#
点赞 评论 收藏
分享
评论
3
45
分享

创作者周榜

更多
牛客网
牛客企业服务