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
 */
全部评论

相关推荐

03-27 12:25
门头沟学院 Java
项目点评还有一个agent1:简历上的&nbsp;项目&nbsp;是练手项目还是实习公司项目?2:介绍项目主要功能。3:做该项目时遇到的难点及解决方法?3:什么情况下会使用&nbsp;Redis?(业务层面)4:缓存除了快速响应,还有什么重要使用场景?(为什么有&nbsp;MySQL&nbsp;还需要缓存?)5:为什么要用二级缓存?加入本地缓存的考量是什么?6:Redis&nbsp;的内存淘汰机制是什么?//答成键淘汰策略了7:缓存穿透和缓存雪崩了解吗?(定义&nbsp;+&nbsp;解决方法)8:MySQL&nbsp;的事务隔离级别有哪些?分别说明,InnoDB&nbsp;默认是哪一种?MVcc怎么做的9:幻读是什么样的场景?10:消息队列(RocketMQ)一般是为了解决什么问题?11:结合项目说明为什么要用&nbsp;MQ?不用会怎么样?12:高并发(限时秒杀)情景下的限流是怎么做的?还了解其他限流算法吗?//没答出来&nbsp;简历也没写13:JVM&nbsp;内存模型结构是什么?14:程序计数器的作用是什么?15:栈(虚拟机栈&nbsp;+&nbsp;本地方法栈)的作用是什么?16:局部变量在&nbsp;JVM&nbsp;内存的哪个结构里?17:Java&nbsp;的垃圾回收算法、特点及使用场景?&nbsp;//混淆算法和具体实现了&nbsp;答的磕磕巴巴18:JVM&nbsp;的类加载机制是什么?&nbsp;//提到双亲委派&nbsp;但是过程答的也不好19:引入&nbsp;RAG&nbsp;之后最大的好处是什么?解决了什么痛点?20:MCP&nbsp;是什么?21:第二个项目中怎么使用&nbsp;MCP&nbsp;的?22:自己平常有没有用ai工具&nbsp;用了什么?token消耗怎么办&nbsp;学校有支撑吗手撕k个反转链表&nbsp;与力扣不同的是最后不足k个节点也要反转手撕边界没弄清楚&nbsp;递归超时&nbsp;没有调试&nbsp;面试官要把构建链表和输入输出都写出来&nbsp;第一次没运行出来就结束了&nbsp;可能觉得没必要浪费时间了反问:给我建议多尝试用一些ai的工具&nbsp;大部分公司都会往这方面发展面试官很好每次答完ai会说出他的理解&nbsp;感觉面试官更想知道从业务上为什么要用缓存消息队列&nbsp;可能这方面答的不好&nbsp;我说了之后面试官说为什么不用不行之类的话术&nbsp;没有问太多底层的东西&nbsp;也问了ai的工具总体都是很基础的八股&nbsp;整体不难&nbsp;还得练&nbsp;第二天发感谢信&nbsp;我觉得没过的原因是很多知识停留在原地而不是业务层面&nbsp;知识为了学而学&nbsp;理解不够&nbsp;可能答的很宽范&nbsp;没有自己的理解
查看23道真题和解析
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

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