4.1企业微信一面

1H

1.  自我介绍

2.  项目难点

3.  redis怎么部署,redis怎么实现持久化,主从复制的过程?redis集群怎么实现,hash一致性算法,哨兵选举流程,主结点复活后怎么加入集群?raft算法,paxos算法

4.  进程的内存布局,一个进程获取内存的底层过程,malloc函数底层是怎么获取内存空间的?进程的数据是放在堆上还是栈?

5.  Http和websocket的区别,websocket内部是怎么实现双向通信的?还有什么别的可以实现双向通信的协议?

6.  登录功能要怎么实现?有没有调用过第三方登录比如微信登录?猜一下调用微信登录的具体过程是怎么实现的?

7.  算法:搜索二维矩阵、复原IP地址


第二个算法没a出来

#腾讯#
全部评论
羡慕企微
点赞 回复 分享
发布于 04-06 01:17 四川

相关推荐

以下是其中一些常见的工具和技术:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=9d41438f19104dca802ef21b5942c139混淆和压缩代码:通过工具如UglifyJS、Terser等来压缩JavaScript代码,删除不必要的空格、换行符和注释,并将变量名、函数名等重命名为更短的形式,以减少文件大小和提高加载速度。图片优化:使用工具如OptiPNG、JPEGoptim、SVGO等来优化图片,减小文件大小而不影响视觉质量。另外,使用适当的格式来存储图片,如使用WebP替代JPEG和PNG,以进一步减小文件大小和提高加载速度。懒加载:将页面上的非关键资源(如图片、视频、音频等)延迟加载,等到用户真正需要时再加载,以减少初始页面加载时间。缓存和版本控制:通过使用HTTP缓存来减少对服务器的请求,浏览器可以缓存静态文件(如样式表、脚本文件和图片),从而减少页面加载时间。此外,使用版本控制技术(如添加哈希值到文件名)来确保浏览器能够正确地加载最新的文件而不使用缓存。Tree Shaking:通过打包工具(如Webpack和Rollup)的Tree Shaking功能,可以自动删除未使用的代码,减小文件体积。资源合并和打包:将多个文件合并为一个单独的文件,减少网络请求次数和文件大小,同时使用打包工具(如webpack)将多个模块打包为一个或多个bundle,以减少页面加载时间。异步加载和代码分割:将代码按需加载,仅在需要时动态加载,提高页面加载速度。使用工具如Webpack的代码分割功能或动态导入(Dynamic Import),以将代码拆分成较小的块,并在需要时按需加载。响应式图片:根据设备的屏幕大小和分辨率,使用不同大小的图片,以减少不必要的下载和带宽消耗。
点赞 评论 收藏
分享
4 13 评论
分享
牛客网
牛客企业服务