大家好,我是二哥呀。
在脉脉上看到字节跳动最新的绩效考核公布了,有几点变化,觉得很有必要同步给大家:
-
年终奖结构调整
:年终奖由现金和期权两部分组成;现金最高为 3 个月,绩效突出的有期权奖励,力度比往年大;
-
绩效基数扩大
:以往绩效计算的基数是月base(基础月薪),现在调整为月总包。这意味着基数不仅包括原有的现金月薪,还新增了期权月均值;
-
月数上限提升
:除了基数的变化,绩效奖励的月数上限也有所提高;
-
期权兑换灵活性
:低于 10 股的期权奖励,员工可以直接兑换为现金,按最新的回购价计算,10 股差不多是 1.3 万元;另外,期权的归属时间也更加人性化,最慢两年内全部归属,最快一个月内就能完成;
前几天看微信快讯说,字节的期权估值已经飙升到 4000 多亿美元,如果按照市值上桌吃饭的话,只有鹅厂上桌比他早,其他(阿里、多多)都得排在他后面。
并且有员工爆料 +1 直接给他谈了 3.5 个月,是 M 中最靠前的,并且涨薪 4000。
并且的并且,这位员工爆料说自己一年都在混,对于这次的绩效考核比较满意。
我没酸,真的,但我有个朋友表示他酸了🍋。
可能第一次接触字节跳动绩效考核的小伙伴会好奇,M 是什么意思?
我用秘塔搜索帮大家简单解释一下:
字节跳动的绩效考核分为八级:F、I、M-、M、M+、E、E+、O,其中M是中等偏上级别;M对应的年终奖通常为3个月月薪,M+可能达到4个月以上。
这波,真的提前恭喜了!
有一说一,字节对实习生/应届生是非常友好的,有读者在星球里提问的时候有这样一段内容,大家可以细品。
我在携程的师兄让我直接去试一下字节,他说最好四月之前投出去,我听说字节也不是很重视学历这块。
看到这,估计有不少小伙伴表示跃跃欲试,今年一定冲字节,那在冲字节之前,一定要知彼知己。
怎么去准备呢?
字节的主语言虽然是 Go,但 Java 岗的数量也不少,所以大家可以放心地去投。我在
Java 面试指南专栏
中也收录了不少字节跳动的面经,需要的小伙伴可以参考一下。
基本上也是围绕着我给大家强调的 Java 后端四大件展开,Java 基础(包括并发编程和 JVM)、MySQL、Redis 和 Spring 全家桶(包括 Spring Boot)。
计算机网络和操作系统也会问一些,但占比不大。
算法基本上是必有的,但也都是比较常见的题目,比如说
力扣128 数组中的最长连续序列的长度
、
合并k个有序数组
、
数组最大子串和
等等。
我举个例子大家感受一下:
像这些题,也都是非常常见的八股。
所以,大家在准备面试的时候一定不要恐慌,尤其是第一次面试的小伙伴。
简历准备好了,八股、项目经历、算法有个 7788 就可以冲了,没必要非要等到 100% 的程度。
即便是你觉得面试表现的不理想,凉凉了,结果隔天 HR 发信息说你 OC 了。
应届生/实习生最重要的是把自己的潜力表现出来,也就是 DeepSeek 表现出来的那种推理过程,哪怕结果是错的,但思考的过程,只要被面试官认可了,也是能过面的。
明白我的意思吧?
相信自己,你能行的!
offer 非你莫属!
字节后端八股一道
有读者反馈,面试很多场,基本上我讲过超过 5 次出现的面渣八股题,都碰到了,大部分还是原题。
点击屏幕左下方的【
关注
】按钮,带走她,这份在 GitHub 上星标 13000+ 的面渣逆袭 PDF,共有 30 万+字,400+张手绘图,口碑作品。
12.count(1)、count(*) 与 count(列名) 的区别?
在 InnoDB 引擎中,
COUNT(1)
和
COUNT(*)
没有区别,都是用来统计所有行,包括 NULL。
如果表有索引,
COUNT(*)
会直接用索引统计,而不是全表扫描,而
COUNT(1)
也会被 MySQL 优化为
COUNT(*)
。
COUNT(列名)
只统计列名不为 NULL 的行数。
-- 假设 users 表:
+----+-------+------------+
| id | name | email |
+----+-------+------------+
| 1 | 张三 | [email protected] |
| 2 | 李四 | NULL |
| 3 | 王二 | [email protected] |
+----+-------+------------+
-- COUNT(*)
SELECT COUNT(*) FROM users;
-- 结果:3 (统计所有行)
-- COUNT(1)
SELECT COUNT(1) FROM users;
-- 结果:3 (统计所有行)
-- COUNT(email)
SELECT COUNT(email) FROM users;
-- 结果:2 (NULL 不计入统计)
这里解释一下,假设有这样一张表:
CREATE TABLE t1 (
id INT,
name VARCHAR(50),
value INT
);
插入的数据为:
INSERT INTO t1 VALUES
(1, 'A', 10),
(2, 'B', NULL), -- NULL in value column
(3, 'C', 30),
(4, NULL, 40), -- NULL in name column
(5, 'E', NULL); -- NULL in value column
因为 id 列没有索引,所以
select count(*)
是全表扫描。
二哥的 Java 进阶之路:count(*)全表扫描
然后我们给 id 列加上索引。
alter table t1 add primary key (id);
二哥的 Java 进阶之路:修改t1主键
再来看一下
select count(*)
,发现用了索引(MySQL 默认为给主键添加索引)。
二哥的 Java 进阶之路:count(*)走了索引
另外,MySQL 8.0 官方手册有明确说明,InnoDB 引擎对
SELECT COUNT(*)
和
SELECT COUNT(1)
的处理方式完全一致,性能并无差异。
二哥的 Java 进阶之路:MySQL 8.0 官方手册
ending
一个人可以走得很快,但一群人才能走得更远。
二哥的编程星球
已经有 7500 多名球友加入了,如果你也需要一个优质的学习环境,
戳链接 🔗
加入我们吧。你可以阅读星球专栏(
Java 面试指南
、
技术派
、
PmHub
)、向二哥提问、帮你制定学习计划、
精修简历
、和球友一起打卡成长。
沉默王二,一个有颜值却靠才华吃饭的程序员,高产似母猪,你知道,他的文章风趣幽默,读起来就好像花钱一样爽快(😄)。
点击屏幕左下角的【
关注
】按钮,你将拥有到一个有趣的灵魂,且每篇文章都有干货。
最后,把二哥的座右铭送给大家:
没有什么使我停留——除了目的,纵然岸旁有玫瑰、有绿荫、有宁静的港湾,我是不系之舟
。