4399后端面经

💼公司岗位:4399 Java后端工程师
⏳投递进度条:8.13投递 8.19笔试 8.28一面
一面面经:
1:自我介绍
2:介绍一下自己做的项目
3:是用的ClickHouse+Kafka搭建的日志,讲一下如何搭建的
4:EMQX是什么
5:如果让你实现一个注册中心 你怎么实现 ,如果一个服务器挂了怎么办
6:Kafka如何保证不丢失消息
7:Kafka如何做到的高性能,高吞吐量
8:项目有没有进行压测,QPS多少,Kafka这些有没有后台监控
9:一道编程题,讲思路
10:讲一下Mysql的存储引擎
11:讲一下Mysql的redo log,binlog,undo log
12:为什么用Clickhouse存储日志,Mysql不行吗
13:说一下对游戏行业的看法
14:考虑来广州吗
15:平时怎么学习新知识的
16:反问 部门业务:4399中台 对我的评价和建议:挺好的
#面试#  #java#  #后端#  #秋招#  #面经#  #校招#  #4399#
全部评论
坏了 我怎么没有反问环节
1 回复 分享
发布于 2024-08-29 15:53 湖北
面了多长时间啊
1 回复 分享
发布于 2024-08-28 17:52 上海
为啥你这个问得挺全面,我是常规八股
点赞 回复 分享
发布于 2024-09-11 00:54 福建

相关推荐

bg双非本科,方向是嵌入式。这次秋招一共拿到了 8 个 offer,最高年包 40w,中间也有一段在海康的实习经历,还有几次国家级竞赛。写这篇不是想证明什么,只是想把自己走过的这条路,尽量讲清楚一点,给同样背景的人一个参考。一、我一开始也很迷茫刚决定走嵌入式的时候,其实并没有一个特别清晰的规划。网上的信息很零散,有人说一定要懂底层,有人说项目更重要,也有人建议直接转方向。很多时候都是在怀疑:1.自己这种背景到底有没有机会2.现在学的东西到底有没有用3.是不是已经开始晚了这些问题,我当时一个都没答案。二、现在回头看,我主要做对了这几件事第一,方向尽早确定,但不把自己锁死。我比较早就确定了嵌入式这个大方向,但具体做哪一块,是在项目、竞赛和实习中慢慢调整的,而不是一开始就给自己下结论。第二,用项目和竞赛去“证明能力”,而不是堆技术名词。我不会刻意追求学得多全面,而是确保自己参与的每个项目,都能讲清楚:我负责了什么、遇到了什么问题、最后是怎么解决的。第三,尽早接触真实的工程环境。在海康实习的那段时间,对我触动挺大的。我开始意识到,企业更看重的是代码结构、逻辑清晰度,以及你能不能把事情说清楚,而不只是会不会某个知识点。第四,把秋招当成一个需要长期迭代的过程。简历不是一次写完的,面试表现也不是一次就到位的。我会在每次面试后复盘哪些问题没答好,再针对性补。三、我踩过的一些坑现在看也挺典型的:1.一开始在底层细节上纠结太久,投入产出比不高2.做过项目,但前期不会总结,导致面试表达吃亏3.早期有点害怕面试,准备不充分就去投这些弯路走过之后,才慢慢找到节奏。四、给和我背景相似的人一点建议如果你也是双非,准备走嵌入式,我觉得有几件事挺重要的:1.不用等“准备得差不多了”再投2.项目一定要能讲清楚,而不是做完就算3.不要只盯着技术,多关注表达和逻辑很多时候,差的不是能力,而是呈现方式。五、写在最后这篇总结不是标准答案,只是我个人的一次复盘。后面我会陆续把自己在嵌入式学习、竞赛、实习和秋招中的一些真实经验拆开来讲,希望能对后来的人有点帮助。如果你正好也在这条路上,希望你能少走一点弯路。
x_y_z1:蹲个后续
点赞 评论 收藏
分享
1.自我介绍2.介绍一下mcp, skills3.了解react哪些状态管理库4.对话是sse还是什么?是用fetch还是EventSource?5.ts中的any 和 unknown讲一讲6.是直接用组件库的组件还是自己封装了一些别的7.代码输出题1function main() {{var a = 1let b = 2}console.log(a);console.log(b);}main()console.log(a);8.什么是块级作用域 全局作用域 函数作用域9.代码输出题2for (var i = 0;i < 5;i++) {setTimeout(() => {console.log(i);}, 100);}10.代码输出题3for (var i = 0; i < 5; i++){function printText(temp) {setTimeout(() => {console.log(temp);}, 100);}printText(i)}11.代码输出题4for(var i = 0;i < 5;i++){function printText(temp) {var temp = isetTimeout(() => {console.log(temp);}, 100);}printText(i)}12.代码输出题5for(var i = 0;i < 5;i++){function printText(temp) {setTimeout(() => {var temp = iconsole.log(temp);}, 100);}printText(i)}13.点击控制台输出题export default function App() {const [count, setCount] = useState(0)console.log('render',count)return (<div><h1>{count}</h1>{setCount(count + 1)setTimeout(() => console.log('setTimeout', count), 1000)}}>+1</div>)}//这个组件点击按钮后,控制台的输出顺序和值如下:// 1. render 1 (组件重新渲染, count 更新为 1)// 2. setTimeout 0 (1秒后输出,注意这里是 0 而不是 1)14.算法:给有序数组arr = [-4, -1, 0, 3, 5],返回平方后的排序// 有序数组平方后排序const arr = [-4, -1, 0, 3, 5]function solution(arr) {const len = arr.lengthconst result = new Array(len)let left = 0let right = len - 1let index = len - 1while (left <= right) {if (arr[left] * arr[left] > arr[right] * arr[right]) {result[index] = arr[left] * arr[left]left++} else {result[index] = arr[right] * arr[right]right--}index--}return result}console.log(solution(arr));15.反问
查看14道真题和解析
点赞 评论 收藏
分享
评论
10
30
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务