字节到底会不会脏面评?

万能的牛友们,小厂实习基本没怎么准备算法题,网上都说字节会脏面评,因此跟字节hr说没准备好,不面了,但是字节hr说不会脏面评。所以字节会不会脏面评呀#字节面评#
全部评论
但凡是个大公司,他就会有面试评价。 所以你说的这个脏不脏面评的这个就纯属扯淡。你要是面试的时候答成一坨了,那肯定会脏面评。而且尤其是算法,你如果说算法没准备好的话,那你就千万不要你自己,你如果算法一旦做不出来,并且前面答的不是特别好的话,那你近四五个月就别想面字节了。
3 回复 分享
发布于 2025-07-11 23:05 浙江
花那么大力气搭建的招聘门户,你以为不用吗
1 回复 分享
发布于 2025-07-15 14:02 湖南
公司会保留面评的全都看得到
1 回复 分享
发布于 2025-07-09 23:51 天津
我过年前面的番茄客户端,HR也说不会脏,还是处女面面的很烂。然后实习一个面试也没有
点赞 回复 分享
发布于 2025-06-26 11:56 广东

相关推荐

一、Java设计模式理解(高频重点)核心掌握常用设计模式,重点深耕3类企业级落地场景,侧重解耦、扩展能力:1. 责任链模式核心逻辑:请求沿预设链路逐级传递,每个节点各司其职,实现请求与处理逻辑解耦,新增/移除节点无侵入。落地场景(必背):Netty处理器Pipeline、Spring Filter过滤器、MVC拦截器,均是责任链模式的典型应用。2. 策略模式核心逻辑:封装不同算法/业务分支,提供统一调用入口,消除硬编码if-else,符合开闭原则,扩展新策略无需修改原有代码。3. 装饰器模式(结合AOP/动态代理)核心逻辑:动态给原有对象叠加增强能力,不修改原类源码,实现横向扩展。落地场景(必背):Spring AOP、动态代理,比如日志打印、权限校验、事务增强、方法埋点,均基于装饰/代理思想实现。二、策略模式代码讲解(实战落地)1. 定义统一策略接口(如PaymentStrategy);2. 多个实现类封装不同业务逻辑(如WechatPayment、AlipayPayment);3. 定义上下文类(PaymentContext),调度不同策略,实现动态切换。2. Spring进阶落地(高频)利用Spring自动注入特性,将所有策略实现类注入Map/List,手写路由器实现复杂的路由处理 等等三、线程池详解(必考深挖)1. 核心参数(7大参数,必背)corePoolSize(核心线程数)、maximumPoolSize(最大线程数)、keepAliveTime(非核心线程空闲超时时间)、unit(超时单位)、workQueue(阻塞队列)、threadFactory(线程工厂)、handler(拒绝策略)。2. 任务流转过程(必背)新任务提交 → 优先创建核心线程执行 → 核心线程满 → 塞入阻塞队列 → 队列堆满 → 创建非核心线程执行 → 达到最大线程数 → 触发拒绝策略。3. 核心配置原则- CPU密集型:线程数 ≈ CPU核心数 + 1(避免上下文切换过多);- IO密集型:线程数 ≈ CPU核心数 × 2(利用IO等待时间提升吞吐);- 严禁使用Executors快捷创建,必须手动指定有界队列、自定义拒绝策略。4. 常见注意事项&核心问题(必考深挖)(1)核心线程无超时,常驻内存泄露:默认核心线程永不回收,业务低谷时闲置线程占用内存、TCP资源,导致内存飙升;解决方案:开启allowCoreThreadTimeOut=true,给核心线程加超时回收。(2)任务队列无界,引发OOM:原生Executors.newFixedThreadPool()用无界LinkedBlockingQueue,高并发洪峰下任务无限堆积,直接触发OOM宕机;解决方案:使用有界队列(如ArrayBlockingQueue),控制队列容量。(3)大量异常抛出,CPU和内存飙高:任务内部未捕获异常,会导致线程频繁销毁重建,引发CPU、内存异常;解决方案:全局包装任务,统一try-catch,打印日志+告警。(4)无监控、无告警,黑盒运行:原生线程池无内置监控,队列积压、任务拒绝、线程峰值无法实时感知,故障事后发现;解决方案:埋点监控(活跃线程数、队列size、拒绝次数),配置超时告警。(5)父子线程上下文传递丢失:普通ThreadLocal无法跨线程池传递,导致链路ID错乱、用户信息串号、脏数据;解决方案:使用TransmittableThreadLocal,清理复用线程的上下文。(6)不支持动态扩缩容,峰值扛不住:原生线程池运行中无法动态修改参数,流量突增/突降无法适配;解决方案:接入配置中心,动态热更新核心参数(核心线程数、最大线程数等)。四、Redis分布式锁深挖(必考,锁失效场景+解决方案)核心:掌握锁失效全场景,对应解决方案落地,结合Redisson、AOF、Redlock等技术兜底。1. 锁失效场景1:主从延迟+主节点宕机问题:主节点加锁后,锁未同步到从节点,主节点宕机,从节点升主,新主无锁,导致锁失效。解决方案:关键业务启用Redlock红锁(多独立主节点过半加锁);核心金融场景降级数据库分布式锁兜底。2. 锁失效场景2:锁过期+误删问题:业务执行超时,锁提前过期;手动删锁非原子,误删他人持有锁。解决方案:加锁时存入唯一标识(UUID/线程ID),删锁用Lua脚本原子校验+删除;结合Redisson看门狗自动续期,保证业务跑完锁不失效。3. 锁失效场景3:网络分区+脑裂问题:集群断网分裂,出现双主,两边均能加锁,锁彻底失效。解决方案:配置Redis AOF同步刷盘,开启min-replicas-to-write限制,断网后主节点无法写操作,杜绝双主写;业务层加幂等兜底。五、手撕题:阻塞队列(高频手撕)核心要求:实现生产者-消费者模型,保证生产、消费互斥安全,支持队列满阻塞生产者、队列空阻塞消费者。实现思路(必背)基于ReentrantLock(保证互斥)+ 两个Condition信号量(分别控制队列空、队列满)实现:1. 用ReentrantLock保证生产、消费操作的原子性,避免并发安全问题;2. Condition notEmpty:队列空时,阻塞消费者,等待生产者唤醒;3. Condition notFull:队列满时,阻塞生产者,等待消费者唤醒;4. 生产方法:加锁→判断队列满→阻塞→入队→唤醒消费者→解锁;5. 消费方法:加锁→判断队列空→阻塞→出队→唤醒生产者→解锁。六、TCP 如何处理拆包粘包「长度字段(n 字节)+ 报文号 + 序列号 + 是否最后一条 + 是否完整数据 + 消息体」方案 1:固定长度(简单,适合报文长度固定场景)核心:约定所有数据包的固定长度(比如每个数据包固定 100 字节);配合你的 4 个字段:接收端每次读取 100 字节,再通过 “是否完整数据”“序列号” 判断是完整包还是拆包片段,拼接后校验;缺点:不灵活,若数据长度不固定,会浪费带宽(不足 100 字节补空)。方案 2:长度字段 + 消息体(最常用,灵活适配所有场景)核心:在数据包的最开头,加一个 “长度字段”(比如 4 个字节),表示后续消息体的总长度;接收端处理逻辑(面试口述重点):先读取开头 n 个字节,解析出消息体总长度;再根据总长度,读取对应字节数的消息体;结合序列号、是否最后一条,拼接拆包片段,校验数据完整性;最后通过报文号,分发到对应业务逻辑处理。反问环节:1. 业务相关2. 个人成长&潜质要求
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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