当前位置: 首页 > news >正文

某互联网大厂的面试go语言从基础到实战的经验和总结

### 一面
#### 1. **实习项目**
- 可以简要描述你的项目经历,最好是与职位相关的项目。如果是与技术栈相关的项目,比如 Go、C++、Golang 或 Python,重点讲述项目中的技术细节和你如何解决问题。

#### 2. **Go学习多久**
- 说明你学习 Go 语言的时间长度、学习的方式(如通过自学、培训、项目实践等),以及你学到的主要知识点,比如 Go 的并发模型(goroutines)、内存管理、接口等。

#### 3. **C++、Golang、Python优缺点**
- **C++**:优点是性能高,控制力强;缺点是内存管理复杂,语法较繁琐。
- **Golang**:优点是并发编程强,内存管理简单,语法简洁;缺点是相对较新的语言,第三方库的支持不如 Python。
- **Python**:优点是语法简洁,生态丰富,开发效率高;缺点是性能相对较低,无法像 C++ 一样控制硬件。

#### 4. **GMP模型**
- GMP 模型(Go的 Goroutine、M:操作系统线程,P:调度器)是 Go 语言中的并发模型。简要解释 Go 语言如何通过这一模型实现高效的并发编程,如何进行调度和工作。

#### 5. **slice底层实现**
- Go 的 slice 底层是一个数组,它有三个元素:指针(指向数组的某个位置)、长度和容量。当 slice 扩展时,Go 会创建一个新的数组,并将原有数据复制过去。

#### 6. **cap和len的区别**
- `len` 返回的是 slice 中元素的个数,而 `cap` 返回的是 slice 的容量,即底层数组的大小。

#### 7. **TCP和UDP区别**
- **TCP**:面向连接,保证数据的可靠性和顺序,适用于对数据传输有严格要求的应用,如 HTTP、FTP。
- **UDP**:无连接,不保证数据的可靠性和顺序,适用于实时应用,如视频流和在线游戏。

#### 8. **TCP如何保证可靠性**
- TCP 通过序列号、确认应答、重传机制和流量控制等手段确保数据的可靠性。

#### 9. **拥塞控制**
- TCP 拥塞控制通过算法(如慢启动、拥塞避免、快速重传、快速恢复)来控制网络中数据的发送速率,以避免过载。

#### 10. **TCP两次握手可行性**
- TCP 三次握手是必要的,第二次握手是为了确认客户端已经收到服务端的响应。如果只有两次握手,会导致数据丢失和连接不稳定。

#### 11. **MySQL使用的是什么索引**
- MySQL 使用 B+ 树作为索引结构,B+ 树的优势是能够保持有序,且每个节点只存储键值,实际数据在叶子节点。

#### 12. **为什么使用B+树而不是平衡二叉树**
- B+ 树相较于平衡二叉树,具有更高的磁盘效率,它的所有叶子节点形成链表,适合范围查询。

#### 13. **查看某个端口的占用的Linux命令**
- `lsof -i :<port>` 或 `netstat -anp | grep <port>`。

#### 14. **统计一个文件中的行数**
- 使用命令 `wc -l <file>` 来统计文件的行数。

#### 15. **进程、线程、协程区别**
- **进程**:独立的资源单元,拥有自己的地址空间和资源。
- **线程**:进程内的执行单元,共享进程的资源。
- **协程**:比线程更轻量级,通常由程序调度。

#### 16. **内核调用和普通调用的区别(内核态 & 用户态)**
- **用户态**:应用程序执行的状态,访问用户空间的内存。
- **内核态**:操作系统内核执行的状态,访问内核空间的内存。系统调用时需要从用户态切换到内核态。

#### 17. **虚拟内存**
- 虚拟内存是操作系统提供的一种内存管理机制,它允许每个进程使用一个独立的内存地址空间,操作系统通过映射机制将虚拟内存转换为物理内存。

#### 18. **为什么虚拟地址空间切换耗时,其切换流程是什么**
- 切换时需要保存当前进程的上下文,加载目标进程的上下文,涉及到页表的切换和TLB缓存失效等,耗时较长。

#### 19. **HTTP的GET、POST**
- **GET**:请求资源,数据通过URL传递,适用于获取数据。
- **POST**:提交数据,数据通过请求体传递,适用于修改数据。

#### 20. **浏览器访问URL时发生的事情**
- 浏览器解析 URL,DNS 查找域名,TCP 建立连接,发送 HTTP 请求,服务器响应,浏览器渲染页面。

#### 21. **HTTPS的S是什么**
- S 代表“安全”(Secure),它通过 SSL/TLS 协议加密 HTTP 数据,保证数据传输的安全性。

#### 22. **HTTPS如何实现**
- HTTPS 使用 SSL/TLS 协议在 HTTP 协议上加层安全,保证数据的加密和身份验证。

#### 23. **LRU和LFU**
- **LRU(Least Recently Used)**:最少使用算法,淘汰最近最少使用的缓存。
- **LFU(Least Frequently Used)**:最不常用算法,淘汰最不常用的缓存。

#### 24. **手撕:重排链表**
- 可以通过双指针或递归方法实现链表的反转或重排,具体实现可以使用交换指针等方法。

### 二面
#### 1. **场景题拷打,详细询问秒杀系统**
- 需要考虑高并发、分布式系统设计、数据库设计、缓存机制、队列处理等问题。秒杀系统的关键是高效地处理并发请求、保证库存一致性和数据的准确性。


文章转载自:

http://tX1p7ZmD.tnhqr.cn
http://B5OD2NiB.tnhqr.cn
http://xkUMY6e0.tnhqr.cn
http://voEqlOGf.tnhqr.cn
http://vpOumkiF.tnhqr.cn
http://pv0bBBqj.tnhqr.cn
http://5KX5zFZL.tnhqr.cn
http://aay1JgKt.tnhqr.cn
http://JICrCdvj.tnhqr.cn
http://K9IfNXTZ.tnhqr.cn
http://01EfE6V6.tnhqr.cn
http://s3nN0nLw.tnhqr.cn
http://qQL3YbRO.tnhqr.cn
http://qbb67vPN.tnhqr.cn
http://eux46DHR.tnhqr.cn
http://YzrFJyw5.tnhqr.cn
http://wyeGBU5m.tnhqr.cn
http://XqCYQU3q.tnhqr.cn
http://Y328ry8E.tnhqr.cn
http://hsrEylZb.tnhqr.cn
http://okKSscwj.tnhqr.cn
http://IdaIUb6w.tnhqr.cn
http://SdU2CbsF.tnhqr.cn
http://lXB6gn7N.tnhqr.cn
http://Tg2FlUsq.tnhqr.cn
http://iERRyrap.tnhqr.cn
http://NghkVwYR.tnhqr.cn
http://tksUmmDl.tnhqr.cn
http://pJ8hiE2v.tnhqr.cn
http://7q4BsWZl.tnhqr.cn
http://www.dtcms.com/a/373231.html

相关文章:

  • 软件设计师备考-(十六)数据结构及算法应用(重要)
  • flutter日期选择国际化支持
  • 最短路算法和最小生成树算法详解
  • 2005–2021年中国城市级终端能源消费(含可再生能源)综合数据集
  • Redis入门(部署、持久化、缓存问题)
  • 聊一聊 .NET 中的 CompositeChangeToken
  • 视觉语言模型应用开发——Qwen 2.5 VL模型视频理解与定位能力深度解析及实践指南
  • 深入理解 MDC(Mapped Diagnostic Context):日志记录的利器
  • 工业相机如何通过光度立体成像技术实现高效精准的2.5D缺陷检测
  • qt+halcon开发相机拍照软件步骤
  • cs61A lab01
  • 大数据毕业设计选题推荐-基于大数据的国家医用消耗选品采集数据可视化分析系统-Hadoop-Spark-数据可视化-BigData
  • Oracle APEX 利用卡片实现翻转
  • Spring Security AuthenticationManager 接口详解与实战
  • 人机协同的智慧共生平台:跨学科知识中心暨融智中心,从认知到实践的闭环自动转化
  • AG32 ( MCU+FPGA二合一 )是如何卷入了三相电能计量市场的
  • 2025年- H119-Lc88. 合并两个有序数组(数组)--Java版
  • 树莓派 Ubuntu 24.04 开机换源总结
  • 简单的 k8s 部署分布式Go微服务集群实例
  • 旅行社旅游管理系统的设计与实现(代码+数据库+LW)
  • Three.js shader内置矩阵注入
  • 在公用同一公网IP和端口的K8S环境中,不同域名实现不同访问需求的解决方案
  • 【MFC视图和窗口基础:文档/视图的“双胞胎”魔法 + 单文档程序】
  • Cocos creator3.x 处理 16KB 问题
  • 【MFC文档与视图结构:数据“仓库”与“橱窗”的梦幻联动 + 初始化“黑箱”大揭秘!】
  • 【MFC】对话框属性:Use System Font(使用系统字体)
  • springboot3.3.5 集成elasticsearch8.12.2 ssl 通过 SSL bundle name 来实现
  • ARM寄存器以及异常处理
  • vim修订版本
  • 代码随想录刷题——栈与队列篇(理论)