Golang面经总结

无法分类的问题 讲一下协程和线程的区别 3次 进程和线程的区别 1次 Epoll rpc框架序列化解决了什么问题 grpc框架 一致性hash是怎么做的 为什么 讲讲levelDB和RockesDB的区别 分布式锁改进和优化 怎么处理锁分段 缓存一致性问题怎么解决的优劣呢? hash的选型和一致性hash rpc框架解决了什么问题 grpc和jsonrpc的优劣 分布式框架的解决方案 路由网...
面试

面试问题之Top K系列

思路整理: 几种方法讲解 以剑指offer40题为例,求最小的k个数字 方法一: 思路:直接用最快的排序方法排好序后取前k个或者后k个元素即可 时间复杂度:O(n * logn)空间复杂度:O(1) 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505...

计算机网络面试题整理

操作系统协程,线程,进程,以及区别 操作系统为了跟踪每个进程的活动状态,维护了一个进程表。进程表的内部列出了每个进程的状态以及每个进程使用的资源等。 进程:正在执行程序的一个实例,是资源分配的基本单位。(进程控制块(process control block)描述进程的基本信息和运行状态,所谓的创建和撤销进程,都是指对PCB的操作)线程:进程中的单条流向,是程序独立调度的基本单位。 区别:...

go中的heap实现大根堆与小根堆

小根堆

几个注意点:

  1. 我们使用Less比较的时候决定了大根堆或小根堆
  2. push以及pop需要传入指针,因为涉及到改动。
  3. pop的时候需要删除最后一个,因为我们是append自己模拟进去的
  4. 我们自己用堆加入元素的时候需要使用heap中的方法来加入元素heap.push()和删除元素heap.pop()
  5. 如果我们自己想要查看堆顶,切片中索引为0对应的元素就是堆顶
1
2
3
4
5
minHeap := &MinHeap{}
heap.Init(minHeap)
heap.Push(minHeap, 123)
heap.Push(minHeap, 999)
num := heap.Pop(minHeap) //将会弹出堆顶

内存泄漏与内存溢出

内存泄漏与内存溢出:

单工通信,半双工通信,双工通信

1. 单工通信(simplex)只有一个信道不可改变方向 单工通信只支持信号在一个方向上传输(正向或反向),任何时候不能改变信号的传输方向。为保证正确传送数据信号,接收端要对接收的数据进行校验,若校验出错,则通过监控信道发送请求重发的信号。 应用:此种方式适用于数据收集系统,如气象数据的收集、电话费的集中计算等。例如计算机和打印机之间的通信是单工模式,因为只有计算机向打印机传输数据,而没有相...

描述输入url到页面呈现的整个过程

大致过程客户端获取URL - > DNS解析 - > TCP连接 - >发送HTTP请求 - >服务器处理请求 - >返回报文 - >浏览器解析渲染页面 - > TCP断开连接 详细文字讲解客户端: (应用层开始)获取URL,通过负责域名解析的DNS服务获取网址的IP地址,根据HTT协议生成HTTP请求报文(应用层结束) (传输层开始)根据TCP协...

https面试题

https中ssl的握手过程,为什么不一致用非对称加密?https中ssl的握手过程为什么不一直用非对称加密? 使用非对称密钥用于传入对称密钥来保证传输过程的安全性,之后使用对称密钥加密进行通信来保证通信过程的效率 非对称加密加密解密算法效率较低,不适合客户端和服务器端这样高频率的通信过程,在某些极端情况下,甚至能比非对称加密慢上1000倍。 非对称加密的优势在于它可以很好帮助完成秘钥的交换...

TCP面试整理

第1题:请详细介绍一下TCP的三次握手机制,为什么需要三次握手?2个点: 为什么需要握手? 为什么是3次握手?(建连接需要3次握手,关闭连接需要4次握手) TCP一个重要特性便是可靠性,必须对方告诉说收到消息才算收到消息,不然就会一直重发,互相发的时候如何确定消息发过去呢?给消息进行一个编号叫序列号,序列号不能从0开始,相对随机,需要通过握手同步序列号确定双方都收到消息。 正常是4次,但...

并发,并行,异步,同步,长连接,短连接,阻塞,非阻塞

同步和异步区别同步和异步最大的区别就是被调用方的执行方式和返回时机。同步指的是被调用方做完事情之后再返回,异步指的是被调用方先返回,然后再做事情,做完之后再想办法通知调用方。 阻塞和非阻塞阻塞请求,A调用B,A一直等着B的返回,别的事情什么也不干。 非阻塞请求,A调用B,A不用一直等着B的返回,先去忙别的事情了。 区别阻塞和非阻最大的区别就是在被调用方返回结果之前的这段时间内,调用方是否一直...
面试