写在最前:非科班渣硕去年转码一年,不是什么大佬,纯小白(go语言开发)。
一面(大概70min)
- 首先是自我介绍。(比较传统,就是描述下自己的技术栈)
- 线程和进程的关系。
- 线程之间如何进行通信。
- 死锁发生的条件。
- 简述go语言GMP调度模型。
- 简单的问了下go语言的引用类型有什么。
- 数据库ACID原则,分别代表什么意思,分别举个例子。
- 为什么Mysql默认是可重复读,如何实现的。
- 提交读,如何实现的。
- Mysql 索引的分类,聚簇索引与非聚簇索引区别
- 谈到了锁,然后写了两个情景题,更新一条记录时,需不需要加锁,此时有一个事务需要插入一条记录是否成功。
- 谈谈MVCC。
- 计算机网络三次握手,四次挥手。
- syn攻击,为什么是四次挥手不是三次挥手。
- 进行了算法题:树的层序遍历。
【【第十三期】B站后端开发实习生一、二面经】反问:
二面(大概60min)
- 上来也是先自我介绍。(楼主以为二面会问很多项目,结果全程都是基础,并且越问越深)
- 问除go之外还会什么语言,大学学过Java(早忘了),问go和java的区别,并且说是开发题,让我想好在回答。
- go语言的GMP模型,全局队列中的G会不会饥饿,为什么?P的数量是多少?能修改吗?M的数量是多少?
- P和M的数量一定是1:1吗?如果一个G阻塞了会怎么样?
- 讲一讲GC的原理,三色标记法?还懂其他的GC原理吗?
- 逃逸分析说下?为什么要逃逸分析?如何避免逃逸
- 并发控制的方法?chan、sync包
- chan的相关问题,如关闭一个已关闭的chan会如何,有缓存和没缓存的区别是什么?等等。。。
- Map的底层?查询的时间复杂度多少?hashmap如何进行扩容?发生哈希碰撞如何解决?将链表改成红黑树?
- 红黑树与AVL比较
- Mysql索引讲一下,为什么B+树更好?B+树与差别在哪?
- 用B树查询时候如何遍历?前序?层序?为什么
- 查询优化?explain,有什么内容?
- 计算机网络:TCP IP 有什么区别,作用是什么?
- TCP 和UDP 的区别。
- 四次挥手细节,time_wait 的状态 为什么2MLS?
- 大量处于Close wait 是什么场景,如何解决?
- 时间不是很多了,进行算法:连续子序列的最大和。
- 反问
本文由 GOLANG ROADMAP 发布!
推荐阅读
- 【第三十一期】360后台开发实习面经 - 两轮技术面
- golang|golang性能分析工具pprof介绍
- golang|【golang】源码层面学习日志框架logrus 01
- Go精进|Go语言学习笔记——Golang 1.18新特性泛型
- Go|《Go Web 编程》之第4章 处理请求
- 遇见Golang|【Go开源宝藏】十分强大的日志库 logrus
- #|go-cqhttp环境配置
- golang|Go编译处理过程(一)go工具
- golang|golang京东美团面经