本网站可以通过分类标签帮助你快速筛选出你想看的文章,记住地址:www.Facec.cc

go面试题面试经验

目录(善用Ctrl+F)

基础入门

进阶

  • 包管理
    学go mod就够了!

  • 优化

  • 并发编程

  • 高级特性

  • 问题排查

    • trace
    • pprof
    • 什么是 goroutine 泄漏?
    • 当go服务部署到线上了,发现有内存泄露,该怎么处理
  • 源码阅读

  • 汇编

  • 推荐书籍

  • 视频教程

  • 实践常用工具

  • 图解网络基础

    • 漫画图解HTTP知识点+面试题
    • TCP粘包 数据包:我只是犯了每个数据包都会犯的错
    • 30张图带你搞懂!路由器,集线器,交换机,网桥,光猫有啥区别?
    • 既然IP层会分片,为什么TCP层也还要分段?
    • 断网了,还能ping通 127.0.0.1 吗?为什么?
    • 连接一个 IP 不存在的主机时,握手过程是怎样的?
    • 动图图解!代码执行send成功后,数据就发出去了吗?
    • 活久见!TCP两次挥手,你见过吗?那四次握手呢?
    • 动图图解!收到RST,就一定会断开TCP连接吗?
    • 动图图解!没有accept,能建立TCP连接吗?
    • 来了来了!小白图解网络电子书和博客都来啦!
    • HTTP 是无状态的吗?需要保持状态的场景应该怎么做?
    • 粘包如何解决
    • RestFul 是什么?RestFul 请求的 URL 有什么特点?
    • 一次url访问会经历哪些过程
    • TCP 三次握手以及四次挥手的流程。为什么需要三次握手以及四次挥手?
    • TCP的拥塞控制具体是怎么实现的?UDP有拥塞控制吗?
    • 是否了解中间人劫持原理
    • TCP 与 UDP 在网络协议中的哪一层,他们之间有什么区别?
    • HTTP 与 HTTPS 有哪些区别?
    • select和epoll区别
    • TCP 如何实现数据有序性?
    • TCP长连接和短连接有那么不同的使用场景?
    • TIME_WAIT时长,为什么?
    • 什么是零拷贝?
    • HTTP 简述 HTTP 的 keepalive 的原理和使用场景
    • Cookie 和 Session 的关系和区别是什么?
    • DNS 查询服务器的基本流程是什么?DNS 劫持是什么?
    • libevent结构,内部实现
    • 简述对称与非对称加密的概念
    • epoll中的ET和LT模式
    • JWT 的原理和校验机制
    • TCP 怎么保证可靠传输?
    • 介绍下proactor和reactor
    • Accept发生在三次握手哪个阶段
    • RPC 的调用过程
    • tcp的可靠性体现在哪里
    • 如何解决 TCP 传输丢包问题?
    • 什么是 ARP 协议?简述其使用场景
    • http和https区别
    • DDOS 攻击原理,如何防范它?
    • 如何防止传输内容被篡改?
    • 介绍下滑动窗口
    • 三次握手四次握手详细过程,越详细越好
    • 什么是中间人攻击?如何防止攻击?
    • TCP 半连接发生场景
    • reactor的组成
    • udp包长度
    • IP为什么要分片
    • OSI 七层模型,TCP,IP 属于哪一层?
    • 数据包乱序会处理?
    • 什么是 SYN flood,如何防止这类攻击?
    • WebSocket 是如何进行传输的
    • 为什么需要序列化?有什么序列化的方式?
    • 有chunked的时候contentlength是什么样子
    • 如何设计一个可靠的udp
    • TCP 中常见的拥塞控制算法有哪些?
    • 如何设置非阻塞
    • 什么是跨域,什么情况下会发生跨域请求?
    • Udp的接收缓冲区和发送缓冲区和tcp的区别
    • 什么时候需要TCP四次挥手?
    • traceroute 有什么作用?
    • HTTP 的方法有哪些?
    • TIME_WAIT危害
    • select什么情况返回0
    • 半连接在哪个阶段
    • TCP 的 keepalive 了解吗?说一说它和 HTTP 的 keepalive 的区别?
    • 简述常见的 HTTP 状态码的含义(30从系统层面上,UDP 如何保证尽量可靠?
    • 指针与引用的区别
    • iPv4 和 iPv6 的区别
    • 项目中说用到线程池,开多大,为什么运用线程池?
    • 如何设计 API 接口使其实现幂等性?
    • TCP 的 TIME_WAIT 和 CLOSE_WAIT
    • HTTP 报文头部的组成结构
    • RestFul 与 RPC 的区别是什么?RestFul 的优点在哪里?
    • 从输入 URL 到展现页面的全过程
    • 什么是 TCP 粘包和拆包?
    • HTTP 中 GET 和 POST 区别
    • 讲一下拥塞控制和流量控制
    • TCP 协议的延迟 ACK 和累计应答
    • TCP 挥手时出现大量 CLOSE_WAIT 或 TIME_WAIT 怎么解决?
    • ARP协议工作流程
    • tcp与udp的区别以及应用场景
    • HTTPS 的加密与认证过程
    • TCP 中 SYN 攻击是什么?如何防止?
    • HTTP 短链接与长链接的区别
    • TCP 的报文头部结构
    • http长连接与短连接的区别
    • TCP 滑动窗口以及重传机制
    • seq为1000,发送了1000个数据,下一个seq是多少?
    • chunked块了解?介绍下
    • BGP 协议和 OSPF 协议的区别
    • 简述在四层和七层网络协议中负载均衡的原理
    • http协议格式,几种方法,功能是什么
    • syn如果丢了,重传多少次
    • epoll可读情况有哪些
  • 操作系统

    • 创建线程有多少种方式?
    • 如何调试服务器内存占用过高的问题?
    • 简述操作系统如何进行内存管理
    • 简述创建进程的流程
    • 简述操作系统中 malloc 的实现原理
    • 简述僵尸进程和孤儿进程及其危害和处理
    • 两个线程交替打印一个共享变量
    • 进程通信中的管道实现原理是什么?
    • 简述同步与异步的区别,阻塞与非阻塞的区别
    • malloc 创建的对象在堆还是栈中?
    • 死锁产生的条件、死锁避免方法
    • 进程的三状态模型、五状态模型、七状态模型
    • 什么情况下,进程会进行切换?
    • Linux 系统态与用户态,什么时候会进入系统态?
    • Linux 下如何查看端口被哪个进程占用?
    • 共享内存是如何实现的?
    • 进程有多少种状态?
    • 线程间有哪些通信方式?
    • Linux 下如何排查 CPU 以及 内存占用过多?
    • 操作系统中,虚拟地址与物理地址之间如何映射?
    • CPU L1, L2缓存是什么
    • 信号量是如何实现的?
    • 什么时候会由用户态陷入内核态?
    • Linux 如何查看实时的滚动日志?
    • Linux 进程调度的算法
    • 简述分页与分段,分页与分段的区别
    • Linux 虚拟内存的页面置换算法
    • Linux 中虚拟内存和物理内存有什么区别?有什么优点?
    • traceroute 命令的原理
    • 操作系统是通过什么机制触发系统调用的?
    • Linux 零拷贝的原理
    • 系统调用的过程是怎样的?
    • Linux 的 IO模型有哪些
    • 简述自旋锁与互斥锁的使用场景
    • 多线程和多进程的区别是什么?
    • 简述几个常用的 Linux 命令以及他们的功能
    • 进程空间从高位到低位都有些什么?
    • 简述缓冲区溢出及其危害
    • mmap 的使用场景以及原理
    • BIO、NIO 有什么区别?怎么判断写文件时 Buffer 已经写满?
    • 线程有多少种状态,状态之间如何转换
    • 简述操作系统中的缺页中断
    • Linux 下如何查看 CPU 荷载,正在运行的进程,某个端口对应的进程?
    • 进程和线程之间有什么区别?
    • 进程间有哪些通信方式?
    • 为什么进程切换慢,线程切换快?
    • 线程从进程继承了哪些资源?线程独享哪些资源?
    • Linux 页大小是多少?
    • select, poll, epoll 的使用场景以及区别,epoll 中水平触发以及边缘触发有什么不同?
  • 数据库

    • 数据库三大范式是什么
    • mysql有关权限的表都有哪几个
    • MySQL的binlog有有几种录入格式?分别有什么区别?
    • mysql有哪些数据类型
    • MySQL存储引擎MyISAM与InnoDB区别
    • MyISAM索引与InnoDB索引的区别?
    • InnoDB引擎的4大特性
    • 存储引擎选择
    • 什么是索引?
    • 索引有哪些优缺点?
    • 索引使用场景(重点)
    • 索引有哪几种类型?
    • 索引的数据结构(b树,hash)
    • 索引的基本原理
    • 索引算法有哪些?
    • 索引设计的原则?
    • 创建索引的原则
    • 创建索引的三种方式,删除索引
    • 创建索引时需要注意什么?
    • 使用索引查询一定能提高查询的性能吗?为什么
    • 百万级别或以上的数据如何删除
    • 前缀索引
    • 什么是最左前缀原则?什么是最左匹配原则
    • B树和B+树的区别
    • 使用B树的好处
    • 使用B+树的好处
    • Hash索引和B+树所有有什么区别或者说优劣呢?
    • 数据库为什么使用B+树而不是B树
    • B+树在满足聚簇索引和覆盖索引的时候不需要回表查询数据,
    • 什么是聚簇索引?何时使用聚簇索引与非聚簇索引
    • 非聚簇索引一定会回表查询吗?
    • 联合索引是什么?为什么需要注意联合索引中的顺序?
    • 什么是数据库事务?
    • 事物的四大特性(ACID)介绍一下?
    • 什么是脏读?幻读?不可重复读?
    • 什么是事务的隔离级别?MySQL的默认隔离级别是什么?
    • 对MySQL的锁了解吗
    • 隔离级别与锁的关系
    • 按照锁的粒度分数据库锁有哪些?锁机制与InnoDB锁算法
    • 从锁的类别上分MySQL都有哪些锁呢?像上面那样子进行锁定岂不是有点阻碍并发效率了
    • MySQL中InnoDB引擎的行锁是怎么实现的?
    • InnoDB存储引擎的锁的算法有三种
    • 什么是死锁?怎么解决?
    • 数据库的乐观锁和悲观锁是什么?怎么实现的?
    • 为什么要使用视图?什么是视图?
    • 视图有哪些特点?
    • 视图的使用场景有哪些?
    • 视图的优点
    • 视图的缺点
    • 什么是游标?
    • 存储过程与函数
    • 什么是存储过程?有哪些优缺点?
    • 什么是触发器?触发器的使用场景有哪些?
    • MySQL中都有哪些触发器?
    • 常用SQL语句
    • SQL语句主要分为哪几类
    • 超键、候选键、主键、外键分别是什么?
    • SQL 约束有哪几种?
    • 六种关联查询
    • 什么是子查询
    • 子查询的三种情况
    • mysql中 in 和 exists 区别
    • varchar与char的区别
    • varchar(50)中50的涵义
    • int(20)中20的涵义
    • mysql为什么这么设计
    • mysql中int(10)和char(10)以及varchar(10)的区别
    • FLOAT和DOUBLE的区别是什么?
    • drop、delete与truncate的区别
    • UNION与UNION ALL的区别?
    • 如何定位及优化SQL语句的性能问题?创建的索引有没有被使用到?或者说怎么才可以知道这条语句运行很慢的原因?
    • SQL的生命周期?
    • 大表数据查询,怎么优化
    • 超大分页怎么处理?
    • mysql 分页怎么实现
    • 慢查询日志怎么看
    • 关心过业务系统里面的sql耗时吗?统计过慢查询吗?对慢查询都怎么优化过?
    • 为什么要尽量设定一个主键?
    • 主键使用自增ID还是UUID?
    • 字段为什么要求定义为not null?
    • 如果要存储用户的密码散列,应该使用什么字段进行存储?
    • 优化查询过程中的数据访问
    • 优化长难的查询语句
    • 优化特定类型的查询语句
    • 优化关联查询
    • 优化子查询
    • 优化LIMIT分页
    • 优化UNION查询
    • 优化WHERE子句
    • 数据库优化
    • 为什么要优化
    • 数据库结构优化
    • MySQL数据库cpu飙升到500%的话他怎么处理?
    • 大表怎么优化?某个表有近千万数据,CRUD比较慢,如何优化?分库分表了是怎么做的?分表分库了有什么问题?有用到中间件么?他们的原理知道么?
    • 垂直分表适用场景
    • 水平分表适用场景
    • 水平切分的缺点
    • MySQL的复制原理以及流程
    • 读写分离有哪些解决方案?
    • 备份计划,mysqldump以及xtranbackup的实现原理
    • 数据表损坏的修复方式有哪些?
  • 骚话连篇

# golang  

评论