字节跳动实习-测开(凉经)

上个周面的了,补一下面经。

一面 12.12 1h

  1. 自我介绍
  2. UDP和TCP的区别
  3. HTTP和HTTPS的区别
  4. 三次握手的细节,什么时候客户端会重传请求,多少秒传一次(下次组织一下语言,说的有点乱)
  5. 常用的集合类
  6. JVM垃圾回收机制
  7. MySQL底层什么实现的?B+树的特点?还有哪些树?为什么不用其他树?
  8. 了解unique key吗?可以解决幂等性……,又聊了聊项目中如何做的幂等性,有哪些保障幂等性的方法。
  9. 索引索引什么?(没听懂想问啥,说了说创建索引的原则和聚簇索引)
  10. Nginx经常配置什么部分?说了说在项目中如何配置的。
  11. Redis在项目中用来什么?怎么做?缓存从哪里查数据?为什么不使用LocalCache?什么场景用LocalCache?(一些细节,结合你的项目来问)
  12. 项目中QPS怎么测试的?
  13. 手撕:
  14. 三道SQL题(多表联查、排序、limit、模糊查询)太久没写SQL了,但还是凭记忆写出来了,以后一定要抽时间练练
  15. 计算根号2的值,不能使用库函数,保留2位小数(当时直接写的模拟,答案不对,他说了时间复杂度太高,考虑一下其他的查询,说了二分法,他觉得可以,但是已经很久了,就没再让我写了,唉,没做过类似的,菜😭😭😭)

二分方法:

// 计算根号2的值,不使用库函数,保留两位小数
public class Sqrt {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Sqrt demo = new Sqrt();
        double n = sc.nextDouble();
        int m = sc.nextInt();

        // 2 2
        System.out.printf("%.2f", demo.mySqrt(n, m));
    }

    /**
     * 每组输入只有1行,包括有一个正实数和一个n正整数m,其中1 <= n <= 32, 1<=m<=2^n
     *
     * @param n
     * @param m
     * @return
     */
    private double mySqrt(double n, int m) {
        double pre = 0, l = 0, r = n;
        // 迭代精准度,取决于题目对精度的要求
        double eps = 1e-12;
        // 在精准度范围内,进行搜索(浮点数的二分搜索)
        while (r - l > eps) {
            double t = 1;
            double mid = (l + r) / 2;

            // 对mid乘m次
            for (int i = 0; i < m; i++) {
                t *= mid;
            }

            // 在对t的值和n进行判断,来决定左右边界的移动
            if (t > n) r = mid;
            else l = mid;

            // 记录前一个搜索的值
            pre = mid;
        }

        return pre;
    }
}

其他方法:ChatGPT说牛顿插值法来解决

  1. 说说红包满减的测试用例设置:开始理解歪了,说的不够开阔,面试官一直引导,后面提醒了一下我可以从数据库和异常方面来说。总之说的磕磕绊绊的。
  2. 说说用过哪些测试工具?
  3. 你对测开的看法?
  4. ……其他问题记不太清楚了

反问:

  1. 多久有结果(1~3天)
  2. 测开进去开发多还是测试多(看个人的发展意向)

全程面试官都会看你简历来问你,不会问你没写的。字节很重视coding能力,需要准备一下。不会会引导你,总结体验不错。

二面 12.15 1h

  1. 自我介绍,介绍项目
  2. 你做项目的流程?
  3. 项目中Redis怎么用的?为什么用它,用他的理由?
  4. Redis的数据类型
  5. Redis持久化机制
  6. 阻塞Redis的原因有哪些?
  7. MySQL左连接、右连接、内连接的区别?
  8. MySQL的锁机制,又聊了聊悲观锁乐观锁那些
  9. MySQL创建表(说了说创建表的原则)
  10. ==和equals的区别
  11. 多态的特性,不只是简单的说说重写和重载,聊了很久,面试官一直让我举例生活中的例子,在说说怎么实现的,反正就问的比较深入,并说我不能只看书上讲的😂
  12. final关键字什么情况下需要使用,每种情况下的好处
  13. 如果让你测试项目中的抢购模块,怎么测试?
  14. 算法题:************,很常见的题,但是面试官一直聊有什么优化的地方,也就是不需要重复计算的地方,优化到最优。
  15. ……中间又聊了聊其他问题,记不太清楚了

反问:

  1. 开发和测试占比?4:1
  2. 多久有结果?1~2天,可能还需要三面

三面 12.16 1h多

抓住项目问了很久很久,问的很深。主要从提高QPS,性能优化的角度来问你。也就是Redis和MQ问的很多。

  1. 项目为了提高性能,做了什么优化和改进?
  2. 你为什么使用Redis?存了哪些数据?为什么要存这些数据,不存其他的?数据过多不会有问题吗?有什么淘汰策略,用的啥?为啥使用LFU?LRU和LFU有什么区别?缓存击穿、穿透、雪崩?
  3. 为什么不用Spring的多线程,而是使用Executors自己配置?有什么好处?
  4. 为何使用MQ?怎么用的?MQ的消息丢失(三种情况)?如何保序?
  5. 怎么保存信息在线程上下文使用的?就是问ThreadLocal,原理是什么?和CurrentHashMap的区别?
  6. 项目中遇到的困难?
  7. 手撕:128. 最长连续序列(O(n)复杂度,用Set即可),并写出你需要测试的所有数据,能写多少写多少
  8. 有些项目细节实在记得不清楚了,问的很广,开始一直get不到面试官想问啥。

过几天问了下结果,HR说盘点了一下需求,暂时不招实习生了,想招全职的,应该是婉拒吧😂。

发下面经攒攒人品

#字节日常实习##测开实习##凉面##24届实习##24实习#
全部评论
哇,好多都听过,但是没有深入了解,我这去面试不是直接凉了啊
点赞
送花
回复
分享
发布于 2023-01-06 12:05 湖南
请问楼主你是背了八股文了吗
点赞
送花
回复
分享
发布于 2023-01-06 12:06 湖南
秋招专场
校招火热招聘中
官网直投

相关推荐

点赞 评论 收藏
转发
8 43 评论
分享
牛客网
牛客企业服务