当前位置: 首页 > 面试经验 >

百度提前批go一面

优质
小牛编辑
61浏览
2024-07-31

百度提前批go一面

北京-C++/PHP/GO研发工程师(J73089)

https://talent.baidu.com/jobs/center

问题

rpc和http的区别

  • RPC(Remote Procedure Call):是一种通过网络从远程计算机程序上请求服务的协议,而不需要了解底层网络技术的细节。RPC允许程序调用远程服务,就像调用本地服务一样。
  • HTTP(HyperText Transfer Protocol):是一种用于传输超文本的协议,主要用于Web浏览器和服务器之间的通信。HTTP是无状态的,每个请求都是独立的。

http和https的区别

  • HTTP(HyperText Transfer Protocol):是一种无状态的应用层协议,用于传输超文本。
  • HTTPS(HTTP Secure):是在HTTP的基础上加入了SSL/TLS协议,用于加密数据传输,确保数据的安全性和完整性。

go的gmp模型

  • GMP模型:Go语言的并发模型,包含三个主要组件: G(Goroutine):轻量级线程,由Go运行时管理。M(Machine):操作系统线程,负责执行Goroutine。P(Processor):逻辑处理器,负责调度Goroutine到M上执行。

go的new 和 make的区别

  • new:用于分配内存,返回指向零值的指针。
  • make:用于初始化内置的数据结构,如slice、map和channel,返回初始化后的值。

从关闭的go channel里面读会发生什么

  • 从关闭的channel读取数据时,如果channel中还有未读取的数据,会继续读取数据,直到数据被读完。之后,再次读取会返回零值,并且不会阻塞。

go的引用类型

  • Go语言中的引用类型包括:slice、map、channel、interface和function。这些类型的变量存储的是对底层数据结构的引用。

go的hashmap,以及sync下的map

  • Go的hashmap:即map,是一种键值对数据结构,使用哈希表实现。
  • sync.Map:是Go标准库中的并发安全的map,适用于多线程环境下的读写操作。

context的使用

  • context:用于在Go中传递上下文信息,控制goroutine的生命周期。常用于处理超时、取消操作和传递请求范围内的数据。

红黑树的特点

  • 红黑树是一种自平衡二叉搜索树,具有以下特点: 每个节点是红色或黑色。根节点是黑色。每个叶子节点(NIL节点)是黑色。如果一个节点是红色,则它的两个子节点都是黑色。从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。

计算机网络OSI七层模型

  • OSI模型分为七层: 物理层:传输原始比特流。数据链路层:提供节点间的数据传输。网络层:负责数据包的路由。传输层:提供端到端的通信。会话层:管理会话和连接。表示层:处理数据格式和加密。应用层:提供网络服务和应用。

tcp和udp的区别

  • TCP(Transmission Control Protocol):面向连接的协议,提供可靠的数据传输,保证数据按顺序到达。
  • UDP(User Datagram Protocol):无连接的协议,不保证数据的可靠传输,适用于对速度要求高但对可靠性要求低的场景。

SSL是怎么建立的

SSL(Secure Sockets Layer)协议用于在客户端和服务器之间建立安全的通信通道。以下是SSL建立连接的过程:

  1. 客户端Hello:客户端向服务器发送一个Hello消息,其中包含客户端支持的SSL/TLS版本、加密算法、压缩方法和一个随机数。
  2. 服务器Hello:服务器响应客户端的Hello消息,选择SSL/TLS版本、加密算法、压缩方法,并发送一个随机数。
  3. 服务器证书:服务器向客户端发送其数字证书,证书中包含服务器的公钥和由可信的证书颁发机构(CA)签名的证书链。
  4. 服务器Hello Done:服务器发送一个Hello Done消息,表示服务器Hello阶段结束。
  5. 客户端验证服务器证书:客户端验证服务器的数字证书,确保证书有效且由可信的CA签名。
  6. 客户端密钥交换:客户端生成一个预主密钥(pre-master secret),使用服务器的公钥加密该预主密钥,并将其发送给服务器。
  7. 服务器解密预主密钥:服务器使用其私钥解密预主密钥。
  8. 生成会话密钥:客户端和服务器使用双方的随机数和预主密钥生成会话密钥,用于对后续通信进行加密。
  9. 客户端Finished:客户端发送一个Finished消息,表示客户端的握手过程结束。该消息使用会话密钥加密。
  10. 服务器Finished:服务器发送一个Finished消息,表示服务器的握手过程结束。该消息也使用会话密钥加密。
  11. 安全通信:客户端和服务器使用生成的会话密钥进行加密通信,确保数据的机密性和完整性。

通过上述步骤,SSL协议在客户端和服务器之间建立了一个安全的通信通道,确保数据在传输过程中不被窃听和篡改。

算法

5L的水桶和6L的水桶如何得到3L的水

等于k值的子数组个数

不含重复字符的最长子串

总结

osi七层模型忘了,后面面试官就问了数据链路层,网络层和传输层,也忘了,然后面试官就问我是不是没有学过,我说我没有复习,有点难崩。大部分是go的问题,算法题也挺简单。最后我问了他们是做什么的,他们做的是tob,用到k8s和go,我猜是做的云原生相关的东西。

#百度求职进展汇总#
 类似资料: