成都晓多科技—社招一面(1小时)

1.个人介绍

2.项目介绍和工作内容

3.项目里面如何检测性能?性能优化手段有哪些?你在项目里面用到了哪些?详细说说

4.事件循环?为什么会有事件循环?同步异步,然后看一道事件循环相关的例题

5.Promise了解吗?promise.all ? 还知道promise一些方法吗?

6.for in和for of的区别?原型和原型链?为什么for in打印出来的属性没有原型和原型链上面的属性?

7.作用域和作用域链

8.react了解吗

9.什么是响应式?双向绑定?

10.深拷贝和浅拷贝?如何避免循环引用?

11.一道和nodeJS相关的输出结果题,就是nodeJS里面嵌套引用,最终输出什么结果,忘了题目。ES模块化了解吗?

12.网络安全

13.缓存

14.vue里面的$set(value)有什么用?为什么会出出现这个方法?

15.Vue和React中的虚拟Dom了解吗

16.你会在Vue的哪个生命周期发送请求?

17.如何知道原型链上的属性是否是可枚举的呢?如何把不可枚举的属性变成可枚举的呢?

手撕题目给了三题, 我选了比较简单的手撕深拷贝,另外两题,一题是缓存的没看懂题目,另一题是手撕Promise.all,深拷贝还算经典,只要把数据类型全部考虑进去就行,还要考虑上面面试题里面说的循环引用

function deepClone(obj, hash= new Map()){
    //基础数据类型,直接返回拷贝对象
    if(obj ===null || typeof obj !=='object'){
        return obj
    }
    //避免重复引用
    if(hash.has(obj)){
        return hash.get(obj)
    }
    let newObj 
    //判断数组、日期、正则、对象类型
    if(Array.isArray(obj)){
        newObj = []
    }else if(obj instanceof Date){
        newObj = new Date(obj)
    }else if(obj instanceof RegExp){
        newObj = new RegExp(obj)
    }else{
        newObj = {}
    }
    //缓存克隆
    hash.set(obj,newObj)
    //递归循环克隆属性
    for(let key of Object.keys(obj)){
        //只取自身属性,不取原型链
        if(obj.hasOwnProperty(key)){
            newObj[key]=deepClone(obj[key], hash)
        }
    }
    return newObj
}

let objA
objA = {name:'张三',arr:[1,{prop:'测试'}]}
let objB = deepClone(objA)

console.log(objA)
console.log(objB)

后面就是反问环节。还算可以,比较经典的面试题,牛油们共勉!

#晓多科技##前端##社招##面经#
全部评论
我昨天一面 不知道能不能过
1 回复 分享
发布于 2024-12-04 13:23 天津
晓多裁员多,去个鬼
点赞 回复 分享
发布于 2025-01-29 23:03 四川
晓多我社招一面告诉通过了,约好了时间二面,然后等二面途中说岗位招到人了,不给面试了。他那个岗位从10月份到现在我看每天都几十个回复,不知道想招什么样的人…
点赞 回复 分享
发布于 2024-12-26 11:56 广东
最新消息,一面挂了,没明白为什么,手撕题写出来了还挂
点赞 回复 分享
发布于 2024-12-12 23:10 广东
问下楼主现在啥进度了,拿到offer了吗
点赞 回复 分享
发布于 2024-12-12 19:06 江西
有没有AI开发工程师的面经
点赞 回复 分享
发布于 2024-12-04 15:02 上海
前端还有手撕?我后端面了四轮都没有手撕,hr头像都一个人,感觉开的不高,好纠结
点赞 回复 分享
发布于 2024-12-04 11:24 江苏
我要面这家的实习了,好紧张
点赞 回复 分享
发布于 2024-12-03 22:04 四川

相关推荐

📍面试公司:转转🕐面试时间:03/02💻面试岗位:java后端开发❓面试问题:1. 直接引用和间接引用2. 2PC 的思想3. 分布式系统中分布式事务其他实现思路4. 分布式锁的实现方案5. Zookeeper 了解吗6. Zookeeper 如何做续期和超时释放7. 使用分布式锁还遇到过什么问题8. JVM 几种垃圾回收算法9. JVM 的内存分布是怎么样10. 会发生 OOM 的区域有哪些,举一下相应的发生场景11. 程序计数器为什么不会发生溢出12. CMS 和 G1 回收过程以及区别13. 双亲委派机制,如何破坏双亲委派14. JVM 常见调优参数及设定标准15. 类加载过程16. 线程池为什么比多线程好用17. 线程池任务提交后线程执行过程18. 连接池关闭后线程池任务会怎么样19. 如何设定线程池参数20. synchronized 和 ReentrantLock 的区别21. 详细讲一下 synchronized 的锁升级过程22. 简单介绍一下 AQS 的数据结构23. 开发选择时会选 synchronized 还是 ReentrantLock,为什么24. TCP 三次握手,为什么是三次不是两次25. MySQL 为什么选用 B+ 树26. MySQL 事务是什么,实现原理27. MySQL 隔离级别28. MVCC 是什么29. 索引失效场景30. 聚簇索引和非聚簇索引区别31. 哪个会回表,为什么回表32. 联合索引 ABC,查询 AB 是否回表、是否走索引33. 联合索引 ABC,只查 C 会怎样34. 索引跳跃扫描和索引下推35. ES 为什么快36. ES 深度聚合是什么37. 为什么 MySQL 不用倒排索引38. 订单系统超时未支付设计方案39. 定时任务调度框架对比 Spring 原生调度40. XXL-Job 处理订单超时未支付会有什么问题41. 支付系统涉及微信、支付宝等多种支付方式,如何保证用户同一笔订单只支付一次,防止重复支付42. 手写双重检查锁单例模式43. 最长连续子序列算法🙌面试感想:这场面是很考广度,每次问完一个技术实现之后,就问你有没有其他的实现方式之间的对比,是怎么样的?你会怎么选择类似这种?感觉比较考量,你日常学习过程当中有没有去做过技术选型的对比,但是还好问的东西,我基本上都答出来了,然后第二天就约二面了
发面经攒人品
点赞 评论 收藏
分享
一、基础与中间件Q1:线程池的参数一般怎么设置?依据是什么?A:主要看任务是 IO 密集型还是 CPU 密集型。IO 密集型可设核心线程数为 2N(N 为 CPU 核数),CPU 密集型设为 N+1;最大线程数和队列长度根据业务负载调整,拒绝策略按场景选择(如丢弃或由提交线程执行)。✅ 思路正确,但未明确“N 是 CPU 核数”,且拒绝策略表述可更规范。Q2:G1 垃圾回收器的设计原理是什么?A:先初始标记 root 对象,再并发标记,然后重新标记修正,最后回收被标记对象。优化可调大堆内存减少 GC 频率。⚠️ 流程大致对,但未提 G1 核心机制(Region 分区、Remembered Set、Mixed GC),术语不够准确。Q3:MySQL 可重复读(RR)下如何避免幻读?A:InnoDB 通过 MVCC 和加锁机制防止幻读。✅ 方向正确,但未说明具体是 Next-Key Lock(记录锁 + 间隙锁) 实现。Q4:SQL 走了索引还是很慢,怎么优化?A:先看执行计划是否真走索引(避免隐式转换、最左匹配失效);若数据量大,考虑分库分表;还可加缓存,用消息队列更新缓存。✅ 思路完整,覆盖排查 → 架构 → 缓存三层优化。Q5:如何保证缓存(Redis)和数据库的一致性?A:更新数据库后删除缓存;读时若缓存为空,再查 DB 并回填。实习中也用过“写 DB 后更新缓存”。⚠️ 未明确推荐方案是 “先更新 DB,再删缓存”(Cache-Aside 模式),后者易引发脏读。Q6:Redis 缓存雪崩怎么解决?A:给缓存设置随机过期时间;热点 key 更新时加锁,只让一个线程重建缓存,其他等待。✅ 回答清晰,覆盖主流方案(过期打散 + 互斥重建)。Q7:Kafka 如何保证消息不丢失、不重复消费?A:不丢:靠副本机制和磁盘持久化(默认保留 7 天);不重:业务层做幂等,比如用达人 ID 去重。✅ 工程实践优秀,结合 Kafka 特性与业务兜底。Q8:Spring AOP 如何实现方法耗时统计?A:自定义注解,在切面中记录方法执行前后时间,计算差值。✅ 完全正确,简洁实用。二、项目与实习Q9:请讲一段你实习中做得比较关键的项目。Q10:项目中有用到事务吗?如何保证一致性?三、AI 与开放设计Q11:MCP 是什么?A:MCP 是一种协议,统一封装 AI 调用外部工具的能力(如查天气),类似 USB 接口,便于插拔扩展。✅ 理解准确,类比形象。Q12:如果让你用 AI 优化教务系统,你会怎么做?A:针对教师排课,AI 可自动分析课程依赖关系,生成多套排课方案并给出推荐理由,减轻老师负担。✅ 抓住核心痛点(排课复杂),有业务思考;可补充更多场景(如智能选课、毕业审核自动化)。四、行为与规划Q13:你未来的职业规划是什么?A:坚定走后端方向,前期深耕业务与技术栈,后期考虑往技术深度或管理发展。✅ 方向清晰;⚠️ 可更具体(如“希望深入分布式系统或云原生架构”)。Q14:你有什么想问我们的?A:询问部门具体负责哪个产品(学习通/学工/教务/校园信息化),以及校招流程。✅ 体现主动性和岗位关注。
查看14道真题和解析
点赞 评论 收藏
分享
📍面试公司:转转🕐面试时间:03/05💻面试岗位:JAVA后端开发❓面试问题:1. 做一个简单的自我介绍(包含学校、技术栈、实习经历、项目职责)。2. 礼物连击场景中,两步操作是否需要保证原子性?为什么?具体怎么设计连击窗口?3. Redis Pipeline 的底层原理是什么?在项目中具体用来解决什么问题?用了哪些函数?4. 除了 Redis Pipeline,还有哪些方式可以实现命令批处理?5. Redis 和 MySQL 之间如何保证数据一致性?讲一下具体方案。6. 为什么推荐先删缓存再更新数据库,而不是先更新数据库再删缓存,也不直接更新缓存?7. 更新缓存会有什么问题?8. 项目中用到 2PC 分布式事务,性能怎么样?9. 该业务场景为什么必须要强一致性,而不是最终一致性?10. 除了 2PC,还有哪些分布式事务方案?(3PC、TCC、本地消息表、MQ 最终一致性等)11. 为什么在项目中选择 2PC,而不是其他分布式事务方案?12. 如何用责任链 + 本地缓存减少 50% 重复 RPC 调用?具体怎么做的?13. 为什么不直接把查询结果放到上下文传递,而要使用本地缓存?14. 异步线程池查询的参数是怎么设置的?依据是什么?15. 如果使用原生线程池,核心参数如何合理设置?16. 用 Java 原生线程池异步调用多服务,其中部分服务超时、异常,该如何处理?17. 为什么订单反查用本地缓存,而不用 Redis?18. Caffeine 和 Guava Cache 有什么区别?19. 项目中用到状态机框架,如果让你手写一个简单状态机,会用哪些设计模式?如何设计?20. 算法题:实现字符串转整数(只保留数字,处理正负号、非法字符、整数溢出,不能使用库函数)。21. 数据库设计题:订单属性表字段经常变动,如何设计表结构实现动态扩展、不修改原表?22. 实习/项目中遇到的最大挑战和复杂度最高的点是什么?如何解决?🙌面试感想:整场面试大约50分钟,主要根据实习经历,然后发散出来了一些八股的底层拷问,我个人觉得只有两个问题回答的不是很好,最后还是挂了,算法题也刷出来了,场景题也给出了三种方案,回想起来也就pipeline管道的底层原理没有说的很好,以及像订单部分超时的处理方式没有说到位(是跟我实习项目来的,我觉得我这个项目不会出现对应的情况,但是还是硬着头皮往下说了)除此之外,大部分问题回答的都还算比较饱满只能说好好复盘,不知道这后面还有没有机会
查看22道真题和解析
点赞 评论 收藏
分享
评论
2
7
分享

创作者周榜

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