3-5月暑期寄中寄,最终二进字节

上周四hr面,上周五offer进入审批流程,这周二一觉醒来OC回顾一下我的暑期实习求职历程:
微信存储,一面算法挂
字节DPU基架,三面排序挂
淘天Java,二面表达挂
美团存储,kpi面挂
美团到家Java,一面八股挂
字节tiktok直播golang,二面后hc收缩挂
微信支付C++,一面算法挂
字节抖音golang,已OC

一面(6小时后通过):
1、介绍一下C语言中的堆和栈,malloc函数底层实现
2、介绍一下进程、线程、协程的区别
3、怎么去实现一个协程框架(参考C++无栈协程的设计糊了一个),汇编层面是如何实现函数跳转的(讲了讲arm abi中的函数调用流程和相关指令)
4、为什么MySQL中存储引擎普遍支持B+树(简单题)
5、介绍一下6.x版本的Redis的线程模型,Redis是怎么通过IO线程利用好多核性能的(看过Redis源码,能答)
6、如何使用Redis实现一个分布式锁(setnx、lua脚本),不可靠的地方在哪里(这里本来想说redis-raft的,但是面试官说我的面评已经提到raft掌握很深,不用吟唱了)
7、如何使用MySQL + Redis实现缓存,以及如何维护缓存一致性
8、介绍一下Java的Netty框架(三大部分transport + codec + bytebuf,针对原生JDK组件的优化)
9、介绍一下TCP三次握手流程,要和socket的accept、listen、connect等函数关联起来
10、介绍我的C++网关项目,以及其中的设计亮点、难点
11、设计题:实现一个金额转换的函数库(需求讲的很模糊,于是随便糊了一个,面试官看看也就过去了,非常怀疑这是放水环节)

二面(2小时后通过):
1、介绍一下Java和C++的区别
2、介绍一下Java的synchronize关键字底层实现原理(ObjectMonitor),对象头markword数据结构,有哪些GC Roots
3、synchronize关键字和ReentrantLock有什么区别,ReentrantLock默认是公平锁吗
4、介绍我的C++网关项目,以及其中的设计亮点、难点,探讨了部分设计细节
5、介绍一下raft的选举机制(是时候表演真正的技术了!)
6、算法题:k个一组反转链表

三面(2小时后通过):
1、讲上一段实习经历的细节
全部评论
现在还有hc嘛
1 回复 分享
发布于 06-12 18:04 北京

相关推荐

事件循环(Event Loop)是 JavaScript 中用于协调和处理异步操作的机制。它的作用是监听事件队列,将其中的事件按照顺序执行,并将结果返回给相应的回调函数或者更新UI界面。在 JavaScript 中,单线程的特性意味着只有一个执行线程来处理代码。然而,JavaScript 中的许多操作都是异步执行的,比如网络请求、文件读写、定时器等。为了处理这些异步操作,JavaScript 引擎使用了事件循环来管理和调度任务的执行。事件循环的基本流程如下:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=5bbc1ec127b94659b8688475db533ecb执行同步代码,将任务添加到调用栈中。当遇到异步操作时,将其推入任务队列(回调队列)中,继续执行后续的同步代码。当调用栈为空时,事件循环开始执行。它会从任务队列中获取一个任务,将其放入调用栈中执行。执行任务的同时,可能会产生新的异步操作,将其推入任务队列中等待执行。循环上述过程,直到任务队列中没有任务需要执行。与线程之间的关系是,JavaScript 运行在单个主线程中,即 JavaScript 引擎(如浏览器的 V8 引擎)是单线程执行的。事件循环使得 JavaScript 引擎能够处理异步操作,而不会阻塞主线程,从而保持了用户界面的响应性能。虽然 JavaScript 引擎是单线程的,但是 JavaScript 还有其他的线程,比如网络请求、定时器等底层操作会在其他线程中执行。当这些操作完成后,会将相应的回调函数推入任务队列中,等待事件循环将其执行。这样,通过事件循环机制,JavaScript 实现了异步编程,提高了程序的效率和性能。#ai智能作图#
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
23
55
分享
牛客网
牛客企业服务