目录

1自我介绍

2 基础提问

2.1 HashMap的扩容机制

2.2扩容时的多线程问题

2.arrayList 和 LinkedList 

2.4事物的ACID?

2.5MVCC的原理

2.6数据库的四种隔离级别

2.7什么是当前读和快照读

2.8JAVA内存模型?volatile关键字作用?

2.9TCP 的流量控制和拥塞控制

2.10慢启动是指数增长,就为什么是指数增长,而不是线性增长呢?

2.11清楚这个 Docker 的这个核心概念吗?就是容器和虚拟机的这种区别?

3 项目提问

3.1第一个是那个微信聊天系统,然后主要想了解一下第一个是那个,呃,心跳检测和断线重连,你这块具体是怎么实现的

3.2这些操作在并发下下有没有数据一致性的问题?这个我想就是看看你你们是怎么考虑的?

3.3SA token 的 token 默认是怎样传递的?

3.4套餐的那些数据,就是底层它是怎么做的?就比如说那个有没有什么缓存之类的?就每次用户浏览都会查数据库吗?

3.5缓存和数据库是如何保持数据一致性的?

3.6为什么是删除缓存,而不是更新缓存?

4测试用例设计

4.1体检预约功能 — 测试用例设计思路

5手撕

6其他

6.1你现在有接触过 AI 吗?可以大概大概说一下吗?

6.2你觉得Agent和大语言模型有什么区别?

6.3龙虾尝试过吗

6.4主动学习了什么内容?然后这个是什么驱动你去学习它?以及你通常是通过什么方式去学习这种新的知识、新的技术?

6.5 base在北京,就你对这个地域有啥要求吗?

6.6如果说有后续的话,然后你的那个实习,实习是怎么安排?就是最早什么时候可以来实习?大概能实习多久?

7反问环节


写在前,一面面试官是一个很温柔的小姐姐,遇到我不会的问题小姐姐也在耐心沟通!!
时长60min

1自我介绍

首先在第一部分了解到了Keemart 是美团面向沙特等海外市场的即时零售业务,类似国内小象超市,结合了国际化业务特点。

2 基础提问

2.1 HashMap的扩容机制

HashMap原理?为什么扩容是扩容是二次幂扩容?

2.2扩容时的多线程问题

2.arrayList 和 LinkedList 

区别?什么场景下用ArrayList 什么场景下用 LinkedList 呢?

2.4事物的ACID?

2.5MVCC的原理

2.6数据库的四种隔离级别

2.7什么是当前读和快照读

2.8JAVA内存模型?volatile关键字作用?

2.9TCP 的流量控制和拥塞控制

2.10慢启动是指数增长,就为什么是指数增长,而不是线性增长呢?

2.11清楚这个 Docker 的这个核心概念吗?就是容器和虚拟机的这种区别?

3 项目提问

3.1第一个是那个微信聊天系统,然后主要想了解一下第一个是那个,呃,心跳检测和断线重连,你这块具体是怎么实现的

项目有点忘了+有点紧张 没太答上来。。不过面试官说没关系(555

3.2这些操作在并发下下有没有数据一致性的问题?这个我想就是看看你你们是怎么考虑的?

3.3SA token 的 token 默认是怎样传递的?

3.4套餐的那些数据,就是底层它是怎么做的?就比如说那个有没有什么缓存之类的?就每次用户浏览都会查数据库吗?

3.5缓存和数据库是如何保持数据一致性的?

3.6为什么是删除缓存,而不是更新缓存

4测试用例设计

4.1体检预约功能 — 测试用例设计思路

5手撕

我记得是最长括号匹配,也就是最长括号对长度。

先用的栈解的

public int longestValidParentheses(String s) {
    int max = 0;
    // 栈存下标
    Stack<Integer> stack = new Stack<>();
    // 先放一个-1当起点
    stack.push(-1);

    for (int i = 0; i < s.length(); i++) {
        // 左括号:存下标
        if (s.charAt(i) == '(') {
            stack.push(i);
        } 
        // 右括号:匹配
        else {
            stack.pop();
            if (stack.isEmpty()) {
                stack.push(i);
            } else {
                // 计算长度
                int len = i - stack.peek();
                if (len > max) max = len;
            }
        }
    }
    return max;
}

提问:讲一下这个代码的思路?你是怎么想的? 时间复杂度和空间复杂度?有其他更优的解法吗?是什么?


6其他

6.1你现在有接触过 AI 吗?可以大概大概说一下吗?

6.2你觉得Agent和大语言模型有什么区别?

6.3龙虾尝试过吗

6.4主动学习了什么内容?然后这个是什么驱动你去学习它?以及你通常是通过什么方式去学习这种新的知识、新的技术?

6.5 base在北京,就你对这个地域有啥要求吗?

6.6如果说有后续的话,然后你的那个实习,实习是怎么安排?就是最早什么时候可以来实习?大概能实习多久?

7反问环节

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐