字节——二面

省流:无项目拷打,八股+设计题(CMS垃圾回收器)

1.老年代有哪些垃圾回收器
2.CMS的特性
3.CMS如何保证用户线程不影响标记结果(浮动垃圾的问题)   ——回答的没完全解决,重新标记可以解决并发标记时的浮动垃圾,但最后的并发清楚仍会产生浮动垃圾
4.继续追问,怎么解决二阶段(并发标记)时用户线程对引用的修改产生的变动  —— 回答的记录被用户修改的引用,然后第三阶段重新标记再去修正
5.被用户修改的引用,你觉得记在哪里比较合适,或者如何设计记录这种被用户修改的引用,可以自己yy一下
6.假设你设计一个cms,还原垃圾回收的流程,你会怎么操作    ——答的链式记录
7.刚才说记录用户修改的引用,那用户线程不会主动去记录,如何感知用户对引用的修改  ——回答应该需要进行拦截和记录
8.在jvm运行周期中,哪些节点或部分可以做到这一点     ——回答的说应该在类初始化阶段、对象初始化阶段进行记录
9.讲讲G1,有什么特点?
10.了解G1是如何实现以上特点的吗?
11.G1怎么解决浮动垃圾的问题
12.了解G1使用的三色标记法吗

****垃圾回收器设计部分被问的神志不清,可能问题记录的也不太恰当*****

13.java有几种选型可以实现锁
14.ReentrantLock实现公平锁的原理
15.要实现分布式锁,有什么选型可以实现?
16.mysql可不可以实现分布式锁?
17.Redis为什么可以作为分布式锁(两方面:Redis什么底层原理保证可以作为分布式锁,以及Redis怎么作为一个高可用的锁)
18.Redis集群是什么?讲下哨兵?切片是什么?
19.Redis使用集群,还能实现分布式锁吗  ——回答:同一个键的SETNX请求一定会被路由到同一个主节点,而且是修改操作,不会分配到从结点
20.Redis的过期淘汰机制
21.mysql可重复读隔离级别如何实现的
22.完全解决幻读了吗    ——回答:没有,给出例子,A查(不存在),B插入,A指向update,A再查(存在)
23.针对以上情况,怎么解决    ——回答:1.加锁 2.可能使用版本号解决?
24.输入网址到返回页面的过程
25.以你的认知,服务器内部服务架构一般有那些层,或有哪些中间件(大概是这意思)    ——不知道
26.负载均衡器有听过吗,处理第一层做负载均衡。
27.讲讲io多路复用,怎么实现的
28.既然select和poll都是轮询,那区别在哪

开放题:
1T文件,由单词组成,中间逗号隔开(例如 hello,hey,bye,……)。电脑内存256M,如何实现单词去重
 答:借用外部排序的思想

手撕:字符串的最长不重复子串

已约三面

#字节##牛客解忧铺##面经##面经Java#
全部评论
佬oc了吗
点赞 回复 分享
发布于 04-03 12:12 辽宁
国际电商吗还是抖音电商呀?
点赞 回复 分享
发布于 04-02 15:17 浙江
汗流浃背了 怎么问了这么多八股 没有问项目吗
点赞 回复 分享
发布于 04-02 15:00 北京
点赞 回复 分享
发布于 04-02 11:36 北京
佬 啥部门
点赞 回复 分享
发布于 04-02 08:26 黑龙江
想问一下啥部门呀
点赞 回复 分享
发布于 04-01 23:59 上海
第三道问的不是原始快照和增量更新吗?
点赞 回复 分享
发布于 04-01 22:20 陕西
考这么多 jvm
点赞 回复 分享
发布于 04-01 21:13 江苏

相关推荐

头像
04-01 19:37
已编辑
华中科技大学 Java
3.17日 一面 :60min20min 问实习15min 算法:删除无效括号看我算法写的太轻松了,出了个多线程题。用信号量实现读写锁没写出来,晚上睡觉的时候想到,用读锁一次获得一个资源,写锁一次获取所资源上限的资源量。10min https深挖:追问我https为什么安全,到最后问我要是本地证书被攻破了怎么办本地攻破了那确实没办法了,没安装360是这样的反问:3.24 日 二面 70min20min 聊实习20min 八股1,kafka相关,kafka积压怎么解决2,介绍一下http3,sql优化相关4,一次sql理想的io次数30min 算法给了一堆用户访问信息,做一些统计,并统计出topk用户访问量cpp写代码工具都得自己搭建,写的有点慢了,最后findkth写的好像有问题,不过运行是对的,面试官也没看出来写的有问题,有点尴尬3.28日 三面 60min二十分钟问实习十分钟:设计一个单点限流,每个ip只限定100qps回答了zset对每个ip限流,但是造成zset过多的问题。redis本身的淘汰策略不可信,可以用时间分片zset优化,定时清理上一个时间片,如果时间片选的是10min那么这个窗口最多只有10分钟访问ip的zset。三十分钟:最大子数组乘积,并输出左右边界。反问:有没有转正名额。不方便透露hc,但是给我画饼优秀的同学不需要hc就可以留任。4.1日 hr面,面完oc#面经# #字节跳动#
查看11道真题和解析
点赞 评论 收藏
分享
2025.4.2 下午三点开始面试,时长大约55分钟。2025.4.3 下午四点多一面挂的邮件就已经发来。本人是个菜鸡,正在为找暑期实习而努力。记录一下自己的第二场面试,也是第一个大厂面试。前面直接给我问懵了,中间有一会感觉大脑缺氧,晕晕的。面试官总体来说还行,但是我回答完问题就只是嗯,也不多说。1.自我介绍#牛客AI配图神器#2.首先问了项目是练习项目吗?回答:是学习练手项目;又问:从头开始做的吗?回答:从头开始做的。3.项目为什么选择微服务,是怎么拆分的回答:(这块没准备)只说了微服务后期好扩展,且不同微服务之间解耦。(这时候脑子已经乱了)具体如何拆分微服务的,我回答的是微服务分为对外接口层api、应用层、领域业务层、基础设施层、调用别的微服务接口的rpc层。这真是给后面埋了大雷。4.项目开发过程中的难点和亮点巴拉巴拉乱说一通,但是没忘记说项目的亮点,说了好几个项目的亮点,可能面试官不兴趣,后面就问了我说的在项目中用到了一些设计模式的亮点....5.如何和其他服务交互回答了api层封装接口、rpc层调用其他服务6.RPC基于什么实现回答:rpc是微服务中的其中一层,如果要调用其他服务的,经过 nacos 注册中心借助 Feign 可以实现调用别的微服务中的接口。。7.追问了 Feign 如何实现的回答:把项目中一个微服务调用另一个微服务的实现说了下追问:底层如何实现的回答:网络协议和数据序列化(没看过这个,随便说了俩)8.feign的协议和序列化是用的什么?直接抱歉,不会9.项目部署了吗?回答:在自己实验室电脑上的linux环境接著jenkins自动部署,只能内网访问。把jenkins部署流程简单说了一下10.你提到项目中用到了设计模式,具体如何实现的?把项目中用到的的工厂-策略模式、适配器模式都说了项目阶段回答的太烂了,就开始问八股了。11.java的哈希结构有哪些?回答:hashmap、concurrentHashMap、linkedhashmap、hashtable(直说了这些,其他的回答不上来了)12.hashmap的底层,红黑树查询和插入效率回答:基于数组、链表/红黑树实现,还说了链表转红黑树的时机;面试完回想当时好像说的是O(n),脑子想的是O(logn),说成了O(n)13.hashmap和hashtable的区别回答:hashmap不是线程安全的、hashtable是线程安全的14.hashtable线程安全怎么实现回答:使用synchronized实现15.ConcurrentHashMap实现线程安全?回答:回答了 jdk1.7和1.8分别怎么实现的16.乐观锁与悲观锁,分别的应用场景回答:乐观锁和悲观锁回答出来了,但是应用场景说反了17.synchronized和lock区别回答:说了synchronized基于jvm的监视器锁机制,巴拉巴拉;而reentrantlock使用lock显示的获取锁。18.lock和unlock底层怎么实现回答:只记得判断state的状态来获取和释放锁,具体如何不知道19.JVM的GC算法回答:最开始回答了垃圾回收器,过一会才反应过来,20.什么情况下触发GC回答:说主要是因为内存不足,然后System.gc()方法,其他的不记得了21.讲讲spring的IOC回答:控制反转,把bean交给spring管理,解耦,方便维护和测试。依赖DI实现22.依赖注入怎么实现回答:静态、实力工厂、构造器、setter方法。(注解注入忘记了,没有说)23.Spring事务注解@Transaction的底层实现回答:只说了使用AOP和事务拦截器,替代传统的编程式事务(其他的不知道了,直接抱歉)24.mysql的默认隔离级别回答:read-committed,读已提交25.read-committed是什么意思回答:回答成了一个线程只能读取其他线程已提交的数据(哎,事务说成线程了)26.其他的隔离级别以及解决了什么问题回答:回答了其他的几个隔离级别对应解决的问题27.如何实现可重复读回答:这个忘记了,随便说了一个MVCC28.MVCC如何实现回答:版本号,读取数据快照29.算法(没成功运行):单链表奇数节点递增偶数节点递减,重排后使之升序,回答一下思路。在纸上画了一下,过一会有了思路:把原链表拆分成两条链表,奇数节点链表和偶数节点链表,然后反转偶数节点链表,这时候就是合并两条有序链表。面试官让我实现一下代码写完之后,在合并代码那报空指针异常,检查了一下这个合并方法,问题不出在这,估计是前面的拆分链表的时候写错了。但是没检查出来哪里写错了。面试官说时间快到了,让我下去再看看。反问:通过这场面试,您觉得我应该往哪方面改进?面试官反问,你觉得你前面的问题哪些没答好我说了一些前面没回答好的问题面试官说要了解框架、和一些技术的底层原理,不能只会用#面经java#
点赞 评论 收藏
分享
评论
7
49
分享

创作者周榜

更多
牛客网
牛客企业服务