贝壳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 山西

相关推荐

03-12 20:34
门头沟学院 Java
### 字节生活服务成都一面面经---#### **一、项目相关**1. **第一个项目**     - **登录模块实现**       - 短信登录流程如何设计?验证码如何存储(Redis哈希结构)?       - Token与Cookie的区别?分布式场景下如何解决Session共享问题?       - Token刷新机制如何优化用户体验?     - **秒杀场景设计**       - 如何解决库存超卖问题?(乐观锁、分布式锁)       - 分布式锁的实现原理(Redis Redisson的可重入、超时续约机制)?       - 如何通过消息队列(RabbitMQ + Lua脚本)优化秒杀性能?  2. **第二个项目**     - 如何基于Redis发布订阅实现动态调整?     - 如何采集线程池指标并上传监控中心?  ---#### **二、技术问题**1. **Redis**     - Redis数据结构及适用场景(String、Hash、ZSet等)?     - ZSet如何实现排行榜?Hash如何存储对象?     - Redis分布式锁的底层实现(Redisson的Watch Dog机制)?  2. **MySQL**     - 索引类型(主键索引、联合索引、前缀索引)?     - B+树的结构特点?联合索引的最左匹配原则?     - 事务ACID特性及隔离级别(读未提交、读已提交、可重复读、串行化)?  3. **网络协议**     - HTTP请求报文组成(请求行、请求头、请求体)?     - `Content-Length`的作用及必要性?  ---#### **三、编程题**1. **矩阵中的最大岛屿面积**     - **题目**:给定二进制矩阵,计算由相邻1组成的最大面积。     - **思路**:DFS/BFS遍历,标记已访问节点。  2. **二叉树路径总和**     - **题目**:找出根节点到叶子节点路径和为给定值的所有路径。     - **思路**:递归遍历,维护路径和当前和,叶子节点时校验结果。  ---#### **四、反问环节**1. 部门业务方向?     - 生活服务业务(类似美团,聚焦团购、酒旅等场景的用户体验优化)。  2. 对实习生的要求?     - 基础技术能力、需求落地能力、学习能力。  3. 面试流程?     - 技术面2-3轮 + HR面。  4. 实习时间要求?     - 一周5天,持续半年以上。  ---#### **五、总结建议**- **项目**:需深入细节,如Redis数据结构选型、锁的优化逻辑。  - **基础**:加强MySQL索引原理、HTTP协议细节、Redis底层机制。  - **代码**:注意边界条件(如矩阵越界)、DFS/BFS模板熟练度。
查看16道真题和解析
点赞 评论 收藏
分享
评论
3
45
分享

创作者周榜

更多
牛客网
牛客企业服务