Cider一面二面 2025.12

一面
问项目
限流算法有哪些?
线程安全的List ?
鉴权怎么做的
spring 中涉及到的设计模式有哪些?
多线程编程
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class RpcBatchRequestTest {

    static RpcService rpcService = new RpcService();

    public static void main(String[] args) {
        // rpc 请求参数
        List<Integer> requestIds = IntStream.range(0, 1000).boxed().collect(Collectors.toList());

        // rpc 调用
        List<String> results = batchGetDetails(requestIds);

        // 输出
        for (String result : results) {
            System.out.println(result);
        }
        // 预期输出
        // details 0
        // details 1
        // details 2
        // .......
        // details 999
    }

    /**
     * 某个 rpc service 的接口只提供单个调用
     * 此处需要做一个封装,多次请求后返回
     *
     * 要求按照顺序返回
     *
     * @param ids
     * @return
     */
    public static List<String> batchGetDetails(List<Integer> ids) {
        // 单次调用
        // RpcService rpcService = new RpcService();
        // rpcService.rpcGetDetailsById(1);

        // TODO 在此处实现批量调用

        return null;
    }
}

class RpcService {
    public String rpcGetDetailsById(int id) {
        // 模拟 rpc service 耗时
        try {
            Thread.sleep(20L);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
        return "details " + id;
    }
}

二面#牛客AI配图神器#
TCP 的可靠性如何保证的?tcp 报文头有哪些内容?
MySQL 三种日志?
看过哪些源码?
分库分表有了解吗?

多线程编程
/*
n个线程交替打印1-100。

比如n=5,输出如下:
第一个线程打印 1
第二个线程打印 2
...
第五个线程打印 5
第一个线程打印 6
第二个线程打印 7
 */
全部评论

相关推荐

04-08 23:11
已编辑
哈尔滨工业大学 Java
一、字节一面——挂了,流式计算,面试官也是哈工大的,依旧给我挂了,感觉是和我的方向不一致,他更偏向Spark和flink,我项目里关于大数据只有一点点,然后手撕是前k个高频元素,第一次面试太紧张了,思路都记得,手抖写不下去,不到三十分钟,over,两小时hr联系挂了,整体回答的九成都回答出来了1&nbsp;怎么实现的分布式锁?怎么用的Redission(我回答lua脚本,但感觉面试官没听懂。。。)2&nbsp;如何防止SQL注入?SQL引擎怎么设计的?Mq怎么削峰的3&nbsp;有点久了,没记住其他,反正都是项目的内容4&nbsp;&nbsp;HashMap、HashTable、ConcurrentHashmap三者区别,八股就这一个二、腾讯一面——微信支付——过了,明天二面,面试官超好,和我差不多大,笑眯眯的1.压测怎么做的2.Redission双重检查锁机制怎么做的3.Redis的发布/订阅模式只能发送,不保证送达,如何保证缓存正常失效?4.缓存架构怎么设计的?caffeine的失效时间怎么设计的?为什么这个时间5.MQ削峰怎么做的?MQ异步化流程是什么6.项目上线了吗?7.如果kafka消费者特别多,相当于所有请求都打到MySql了,怎么避免?(这个懵住了,面试官提醒我想起来了,读写分离,分库分表那一套)8.其他一些细节没记住9.八股:http和https区别,三次握手?四次挥手?非对称加密流程?非对称加密包含对称加密吗?(这个忘了,应该是包含)10.进程调度方式11.udp和tcp区别?如何用udp改装成tcp(也是听都没听过,现场编的,面试官说答得基本没问题)?tcp优点?拥塞避免?快速恢复?超时重传?12.当发送窗口等于0,接受窗口&gt;0,怎么恢复发送(这个我都没听过,我和面试官说,我猜一下,应该是接受方发送一个心跳报文,面试关说猜对了,笑嘻了)13.好像还有一点点,不过没记住14.手撕:一个easy题目,链表部分逆转,1-&gt;2-&gt;3-&gt;4-&gt;5,变成2-&gt;1-&gt;4-&gt;3-&gt;515.总体而言,95%都回答出来了,相谈甚欢属于是,but他说他们是用c++的,WTF!!!感觉又是玩弄我三、蚂蚁国际——一面——全球电商Agent开发——昨天面的没消息,流程中,逆天纯血java流转到Agent开发,一天速成版1.拷打硕士毕设,关于医疗Agent,早就忘了,纯现编的2.各种Agent基本功能,多Agent如何协作,面试官我边说,他边记,我是真的在编流程,前天背的问题一个没问,3.RAG如何找回?以及本质上在问如何降低RAG的幻觉?4.既然余弦相似度低于60%选择丢弃,那么万一两个真正要召回的,真的余弦相似度是60%怎么办?PS:说实话,这纯杠精问题,他举那个例子我都觉得不合理,没明白。。。5.你觉得你的项目还有哪些亮点?6.问了半小时毕设,口干舌燥,开始问项目了,和前两个大同小异,没啥区别,脑子已经僵住了,无手撕,50min结束,感觉50%是寄了四、快手——一面——流程中1.介绍场景2.怎么防止雪崩、穿透、击穿,针对每一个措施详细展开。PS:我说布隆过滤器的时候,问的那叫一个细致,最后问到布隆过滤器如何设计的,真忘了,就几行代码谁特意去记。。。3.怎么保证Canal和ES之间的时间为200ms,我说的binlog用row,又问row为什么会更快?PS:这个真忘了4.Redission怎么做的分布式锁?看门狗的优势?为什么不用传统Redis做分布式锁?还是答得看门狗5.对什么上锁?我理解错了,我以为问的是,用什么上锁?我回答的线程ID,他说是资源。。。捏吗,这也叫问题6.怎么做的防SQL注入,这和我项目有关,我专门设计的引入AST拦截器和正则表达式匹配,万万没想到,他想听的是MyBatis的“#”防注入,我真没想到提问的这个,我明摆着简历写的前面的东西防注入7.MySql优化8.JVM调优,回答的半拉柯基9.接口时间长怎么排查,依旧半拉柯基10binlog异常遇到过哪些?知道哪些?这个我真不知道11.数据库索引都有哪些?只记得聚簇索引和非聚簇索引了,脑子有点懵住了,其他想不起来了?问了下二者区别12,.手撕:有序链表-》高度检索二叉树(节点两侧深度小于等于1),算是写出来了,就是没写测试用例,主要那面试官大舌头,我一直听到的是用列表输入,用列表输入,强调了好几遍,我还纳闷为什么要强调这个,快写完了,提示我,又说了两遍,我才反应过来,他说的是链表,以及题目还看错了,他两个结构,一个是ListNode,一个TreeNode,我没看见ListNode,快手那个IDE字太小了,还窄,写了半小时,我后面红温了,不想写测试用例,面试官说写的差不多了,就结束了13反问:工作强度,改进。PS:他说我语速太快,容易乱,确实是,我很容易,嘴在前面跑,脑子在后面追,追不上就卡住了。30%概率寄了
发面经攒人品
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

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