某互联网大厂的面试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://www.pswp.cn/bicheng/96544.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/96544.shtml

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

相关文章

掌握Java控制流:编程决策的艺术

控制流语句是用来 控制程序执行顺序 的关键工具&#xff0c;它们允许你根据不同的条件执行不同的代码块&#xff0c;或者重复执行某段代码。这使得程序能够根据输入和情况做出智能的决策&#xff0c;而不仅仅是线性的执行。1. 条件语句 (Conditional Statements)条件语句允许你…

Docker 安装 MySQL 和 Redis 完整指南

前言 在开发环境中,使用 Docker 安装数据库服务是一种快速、便捷的方式。本文将详细介绍如何在 macOS 上使用 Docker 安装 MySQL 和 Redis,并解决国内网络访问 Docker Hub 的问题。 环境准备 macOS 系统 Docker Desktop 已安装 网络连接 配置 Docker 国内镜像源 方法一:通…

Spring Boot---自动配置原理和自定义Starter

1.自动配置原理2.自定义starter①dmybatis-spring-boot-autoconfigure步骤一&#xff1a;先创建项目步骤二&#xff1a;导入响应的依赖步骤三&#xff1a;创建自动配置的配置类步骤四&#xff1a;创建配置文件项目结构②dmybatis-spring-boot-starter步骤一&#xff1a;先创建项…

【后端】MySQL 常用 SQL 语句大全

整理一份 MySQL 常用 SQL 语句大全&#xff0c;从基础操作到进阶查询&#xff0c;都涵盖。方便日常开发和学习参考。1. 数据库操作-- 查看所有数据库 SHOW DATABASES;-- 创建数据库 CREATE DATABASE db_name;-- 删除数据库 DROP DATABASE db_name;-- 使用数据库 USE db_name;--…

[iOS] 单例模式的深究

文章目录前言一、什么是单例模式二、单例模式的优缺点优点缺点三、模式介绍1.懒汉模式&#xff08;GCD & 互斥锁&#xff09;GCD 写法互斥锁写法&#xff08;双重检查锁&#xff09;2.饿汉模式总结懒汉式 互斥锁&#xff08;Mutex&#xff09;**懒汉式 GCD (dispatch_onc…

解决Discord.py中的/help命令问题

在使用Discord.py开发机器人时,常常会遇到一些常见的问题,比如命令找不到或者命令功能不符合预期。本文将详细探讨如何解决在使用@bot.slash_command定义/help命令时遇到的问题,并提供一个完整的实例来展示如何正确设置这个命令。 问题描述 当你在Discord机器人中输入/hel…

解决VSCode默认F5配置无法启动调试器的问题

前几天做笔试&#xff0c;最后一题代码有点问题&#xff0c;习惯性地按了个F5启动gdb发现居然爆炸了&#xff0c;报错找不到编译出来的二进制文件&#xff0c;看着像是默认配置的问题&#xff0c;由于时间紧迫最后只能用输出大法解决。 感觉不可理喻&#xff0c;几年前调程序的…

webrtc弱网-LossBasedBweV2类源码分析与算法原理

1. 核心功能LossBasedBweV2是WebRTC Google Congestion Control (GoogCC) 算法套件中的第二代基于丢包的带宽估计器。它的核心功能是&#xff1a;带宽估计&#xff1a; 根据网络数据包的丢失情况&#xff0c;估算当前网络路径可用的带宽上限。其核心假设是&#xff1a;当发送速…

AI代理化检索:智能信息获取新范式

代理化检索(Agentic Retrieval)是一种由AI代理自主管理的信息检索范式,通过动态规划、工具调用和多步推理提升复杂查询的处理能力。其核心机制、技术实现和应用特点如下: 一、核心机制 自主决策循环 代理通过循环执行"规划-行动-观察"流程处理查询: 规划阶段:…

Android Studio中的各种Java版本区别

Android Studio中的各种Java版本 创建一个项目&#xff0c;app模块的build.gradle.kts默认配置如下&#xff1a; plugins {alias(libs.plugins.android.application)alias(libs.plugins.kotlin.android) }android {namespace "cn.android666.javaversiontest"comp…

ubuntu新增磁盘扩展LV卷

登录平台 login as: wqbboy wqbboy172.17.2.86s password: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)* Documentation: https://help.ubuntu.com* Management: https://landscape.canonical.com* Support: https://ubuntu.com/proSyst…

Day 16: GAN生成对抗网络专项 - 从博弈论到艺术创作的完整之旅

Day 16: GAN生成对抗网络专项 - 从博弈论到艺术创作的完整之旅 🎯 学习目标: 深度掌握生成对抗网络理论与实践,从博弈论基础到风格迁移应用的完整技术栈 ⏰ 学习时长: 6小时深度学习 (理论3小时 + 实践3小时) 🔧 技术栈: PyTorch + 数学推导 + 经典架构 + 实战应用 💡 核…

《QT 108好类》之16 QComboBox类

《QT 108好类》之16 QComboBox类QT 108好类之16 QComboBox类QComboBox类特性和应用场景QComboBox类继承关系QComboBox类使用1 简单使用2 表单输入3 使用自定义模型和视图4 完全自定义弹出窗口QComboBox类类使用效果QT 108好类之16 QComboBox类 QComboBox是 常用的下拉框&#…

项目模块划分

项目模块划分 服务端模块&#xff1a; 持久化数据管理中心模块 在数据管理模块中管理交换机&#xff0c;队列&#xff0c;队列绑定&#xff0c;消息等部分数据数据。 \1. 交换机管理&#xff1a; a. 管理信息&#xff1a;名称&#xff0c;类型&#xff0c;是否持久化标志&#…

小白也能看懂!OpenCV 从零开始安装配置全教程(包含Windows / Ubuntu / 树莓派)系统详细操作配置教程

小白也能看懂&#xff01;OpenCV 从零开始安装配置全教程&#xff08;包含Windows / Ubuntu / 树莓派&#xff09;系统详细操作配置教程 摘要 本教程是面向“小白也能懂”的OpenCV安装与配置全攻略&#xff0c;涵盖Windows、Ubuntu和树莓派三大平台&#xff0c;真正实现“从零…

【华为云】容器镜像服务 SWR 详解:从上传下载到 ModelArts 应用

前言 华为云容器镜像服务&#xff08;Software Repository for Container&#xff0c;简称 SWR&#xff09;是华为云提供的企业级容器镜像仓库服务。它支持 Docker 镜像的存储、管理和分发&#xff0c;为容器化应用提供安全可靠的镜像托管服务。本文将详细介绍 SWR 的核心功能…

计算机网络知识点梳理(一)概述:组成、发展、性能、体系结构等

目录 一、互联网 &#xff08;1&#xff09;特点 &#xff08;2&#xff09;网络的组成 &#xff08;3&#xff09;网络、互连网、因特网 &#xff08;4&#xff09;互联网发展的三个阶段 &#xff08;5&#xff09;标准化 &#xff08;6&#xff09;组成 二、计算机网…

不同行业视角下的数据分析

声明&#xff1a;以下部分内容含AI生成 基于行业维度来划分数据分析岗位&#xff0c;可以帮助我们更好地理解不同行业对数据分析技能、业务知识和职业发展的独特要求。 目录 一、总体框架&#xff1a;为什么行业维度如此重要&#xff1f; 二、主要行业划分及详细讲解 1. 互联…

「CTF」青少年CTF·雏形系统

题目&#xff1a; 解题过程 尝试随便输入点什么&#xff0c;没有结果 使用dirsearch扫描网址目录 可以看到有扫描到一个www.zip&#xff0c;zip文件大概率有需要的东西 网址后加上www.zip就能对该文件进行下载 文件解压缩后如下 打开qsnctf.php&#xff0c;代码内容如下 <…

Java实战项目演示代码及流的使用

project 准备牌->洗牌->发牌 import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.TreeSet;public class PokerGameplus {static HashMap<Integer,String> hs new HashMap<>();static ArrayList<Int…