面经知识

二叉树层次遍历(数据结构):利用队列,先从根节点开始,入队,出队时,左右子树入队

 

二叉树深度遍历 :先序(根左右)或者中(左根右)序或者后(左右根)序遍历,递归返回值,取最大值

 

Go内存泄漏的原因:

因Go向系统申请内存不使用后,并不立即归还系统
给系统压力,停止给压力后,内存不能降低

 

LRU算法:

LRU算法,哈希链表,哈希表都是Key和value,理论上是无序的,哈希链表的每一个key和value就有前驱和后继节点

 

哈希表,哈希函数:能根据key算出地址,key和value是无所谓排列顺序的

 

Go数组和slice的区别

Go数组定义时候需要定长,slice不需要

Slice可以append go不行

Slice有自己的copy函数,go数组相同大小时候可以赋值,拷贝全部内容,slice是指针一样。

 

Tcp/Ip协议:

连接:三次握手,发送FIN和SYN

我:1+1等于几 你:2,2+2=几 我:4  若没有收到则认为网络不通

断开:四次挥手 客户端向服务端发送断链接的请求+FIN,服务端向客户端发送已关闭应用程序,并发送ACK=FIN+SEQ  客户端接收到FIN,发送一个ACK=FIN+SEQ

 

线程,协程,进程的区别

进程:划分程序运行需要的资源,程序运行的基本单位,

线程:切换程序花费时间多,因为需要切换到内核态,需要读取用户态的数据,进程多的时候会消耗一大堆资源,共享进程的资源,只占用运行时需要的很少的资源。线程间通信主要通过共享内存,上下文切换很快,资源开销较少,但相比进程不够稳定容易丢失数据。

协程:协程是一种用户态轻量级线程,调度由用户控制,拥有自己的寄存器上下文和栈。

 

线程和进程的区别:

进程有独立的地址空间,一个进程至少有一个线程,线程共享进程的地址空间

进程是资源分配的单位,线程共享进程拥有的资源

线程是处理器调度的基本单位,进程不是

协程与线程比较

一个线程可以有多个协程,线程是同步机制,协程是异步

协程能保存上一次调用的状态,因为有自己的寄存器上下文和栈。

 

Linux常用命令

Touch 创建一个文件

ls 显示当前目录下的所有文件

posted @ 2020-10-26 11:54  YaochenZhang  阅读(88)  评论(0)    收藏  举报