字节跳动再次加码!大厂之间也开始卷起来了?

科技   2024-11-20 16:05   上海  

昨天字节跳动又发了一封全员信。

临近年终,各家公司裁员新闻不断的时候,字节反而要加码年终激励力度,对高绩效人才发放更多的期权。

今年年初,字节就更新过一次年终激励方式,而且字节员工之前的总包期权是按照季度归属。

这次则从 3 个方面进行了调整:

  • 扩大计算基础,以月总包取代月薪来计算绩效期权,基数中不仅包括了原有的现金形式的月薪,还新增了总包中的期权月均价值,使得整体激励基数变得更大。
  • 股数方面,会额外给高绩效员工增发一定比例(约 10%)。
  • 月数方面,高绩效员工的激励月数上限有所提升。

自 2017 年以来,字节跳动每年都会为员工提供期权回购机会。最近一次回购活动就在 2024 年 10 月,回购价为每股 180.7 美元。

这一次字节的年终激励加码,给得还是很大方的,特别对绩效高的员工来说,到手的更多了。据说新方案会在 2024 年全年绩效评估中首次启用。

不过我也看到有同学吐槽说更喜欢京东的 20 薪,还是现金香,不知道让你来选,会选哪一种呢?

……

大厂福利是真的香,如果不想只能在梦里做选择,那就快点开始刷题准备面试吧~

今天为大家准备一份抖音的面经,部分超链接内容可点击下方小程序查看

Java 抖音(校招)一面


介绍项目

做这个项目时遇到的印象比较深刻的问题

session 在 redis 中是如何存储的?

  • 315. Redis 分布式 Session 实现用户登录的原理是什么?

Redis 有哪些数据结构?

  • 637. Redis 中常见的数据类型有哪些?

Redis 的 Zset 底层是如何实现的?

Redis 中的 Zset 是基于跳表和哈希表实现的

  • 跳表用于实现分值排序和高效的范围查询。

  • 哈希表用于快速查找 member 的 score ,确保元素的唯一性。

  • 662. 如何使用 Redis 快速实现排行榜?

操作系统中的进程和线程有何区别?

  • 467. 线程和进程有什么区别?

为什么在设计并发时不使用进程,而是使用线程?

主要是资源和效率问题。进程的创建、切换和销毁需要较大的系统资源开销,且之间的通信相对复杂,比如管道、消息队列都需要额外的系统调用或者数据拷贝。

而线程就比较轻量级。

在项目中有哪些使用多线程的场景?

volatile 关键字的作用是什么?

  • 519. Java 中 volatile 关键字的作用是什么?

为什么会出现一个线程更改了数据,而其他线程读不到的情况?

  • 501. 什么是 Java 内存模型(JMM)?

ThreadLocal 的基本原理是什么?ThreadLocal 中 map 的 key 是什么?

  • 507. Java 中的 ThreadLocal 是如何实现线程资源隔离的?
  • 509. 为什么 Java 中的 ThreadLocal 对 key 的引用为弱引用?

算法:如何在数组中滑动窗口的过程中找出每一个窗口的最大值?

  • 5517. 滑动窗口最大值

一个系统中,记录处理用户提交的订单的耗时,得到实时流式输入的耗时数据的中位数

使用两个堆(大顶堆和小顶堆)

维护一个大顶堆和一个小顶堆。

大顶堆存储较小的一半数据,小顶堆存储较大的一半数据。

当新数据到来时:

如果大顶堆为空或者新数据小于等于大顶堆的堆顶元素,将新数据插入大顶堆;否则,将新数据插入小顶堆。

然后进行调整,使两个堆的元素数量差不超过 1。

要获取中位数:

如果两个堆的元素数量相同,中位数为两个堆顶元素的平均值;如果大顶堆的元素数量比小顶堆多 1,大顶堆的堆顶元素为中位数;反之,小顶堆的堆顶元素为中位数。

插入数据和获取中位数的时间复杂度都为 O(log n),效率较高。

import java.util.PriorityQueue;

class MedianCalculator {

    private PriorityQueue<Integer> maxHeap; // 存储较小的一半数据
    private PriorityQueue<Integer> minHeap; // 存储较大的一半数据

    public MedianCalculator() {
        maxHeap = new PriorityQueue<>((a, b) -> b - a);
        minHeap = new PriorityQueue<>();
    }

    public void insertData(int data) {
        if (maxHeap.isEmpty() || data <= maxHeap.peek()) {
            maxHeap.offer(data);
        } else {
            minHeap.offer(data);
        }

        // 调整两个堆的大小
        if (maxHeap.size() > minHeap.size() + 1) {
            minHeap.offer(maxHeap.poll());
        } else if (minHeap.size() > maxHeap.size()) {
            maxHeap.offer(minHeap.poll());
        }
    }

    public double getMedian() {
        if (maxHeap.size() == minHeap.size()) {
            return (maxHeap.peek() + minHeap.peek()) / 2.0;
        } else if (maxHeap.size() > minHeap.size()) {
            return maxHeap.peek();
        } else {
            return minHeap.peek();
        }
    }

    public static void main(String[] args) {
        MedianCalculator calculator = new MedianCalculator();

        calculator.insertData(5);
        calculator.insertData(3);
        calculator.insertData(7);
        calculator.insertData(2);
        calculator.insertData(6);

        System.out.println("中位数: " + calculator.getMedian()); 
    }
}

最后

再来推荐下我们的面试刷题网站和小程序:面试鸭!



咱们面试鸭立志成为一款题库全面、持续更新、题解优质的刷题神器,主要目的就是为了彻底解决所有你能想到的八股文学习痛点!

我们精选了近两年的高频面试真题,已经有 9000 多道面试题目啦,由大厂资深面试官手写答案,押题命中率超高!

不仅有传统八股文,场景题、项目题、系统设计题等等应有尽有,还在不断更新中!

现在邀请好友注册并成为会员,还可获得最高 50% 的分佣🧧!详情见面试鸭拉新邀请有赏规则(网页版面试鸭点击头像查看)

网页端网址:www.mianshiya.com



欢迎关注面试鸭,每日获取经典面试题和优质题解,我们下期见~


往期推荐

不愧是外企,连裁员福利也这么好。。。

手拿 8 个 offer ,他是按这路线刷的面试题

马斯克招人:要高智商、0 薪、每周工作 80 小时、还容易得罪人

没想到在 AMD 上班也被裁了

2025 年请假攻略!

公司发黄金了

连支付宝都崩了,还开猿节流吗?

程序员鱼皮
一手科技热点和编程干货 | 免费编程学习网 codefather.cn
 最新文章