菜鸟笔记
提升您的技术认知

字节跳动面试,第三面挂了

阅读 : 3038

前言

大家应该看过不少人分享的面试成功的面经,是不是觉得自己“说不定也可以”呢?

这里重提一个理论:幸存者偏差。当取得资讯的渠道,仅来自于幸存者时(因为死人不会说话),此资讯可能会存在与实际情况不同的偏差。

所以,今天要分享的是凉经。

那些年凉掉的面筋
这些面筋来自经常跟我沟通的学弟学妹以及部分网友,在此公开也是得到了他们的许可的。今天只分析其中的一个。

这位是二面字节挂掉的朋友

字节跳动面试

下面是他的面经

投的是抖音,感觉抖音的需求量大些,面上的可能性更高一些吧,但是我忘了一点供应量也是一样的大。。。

一面二面的时候感觉自己表现还不错,所以后面就有点飘,结果第三面准备不足,多人面试直接懵逼…(啊啊啊啊啊)

面试题主要问的有以下这些:

一面

(因为过程比较顺利,题目没有好好记下来,大概就是下面这些吧)

1.项目相关
2.hashmap
3.线程a 等b,b等c的实现
4.类的equals重写
5.线程安全是什么 如何保证多线程安全
6.public private protected
7.简单工厂 抽象工厂 是什么
8.判断一个数组是不是后序遍历(代码 )

二面

(二面一开始的时候我还是有些紧张的,但是我没想到居然挺简单,这也直接导致我三面轻敌了)

1.项目(10min)
2.算法题:判断一个字符串是否是一个IPV4
3.算法题:连续子数组的最大和(剑指Offer上的题)
4.Java异常体系(运行时与非运行时异常的区别)
5.HashCode与equals的区别
6.jvm内存区域划分(程序计数器,虚拟机栈,本地方法栈,堆,方法区,运行时常量池)
7.JVM内存回收方法(判断对象是否已死<1面那个问题>,新生代老年代的垃圾回收算法
8.哪些对象可以作为GC Roots
9.数据库中delete和drop的区别
10.数据库事务的使用场景
11.数据库三大范式
12.数据库索引的创建原则
13.数据库索引底层实现(B+树)
14.线程,进程,程序的区别
15.死锁的产生条件
16.继承与***模式的优劣势

想不到吧,居然就这些。就这?我开始飘了。

三面

1.项目
2.三次握手四次挥手
3.TCP核心机制(滑动窗口,快速重传机制,拥塞控制...可以参考我以前的博客)
4.HTTP和HTTPS及其区别
5.若建立连接时间比较长,HTTP是怎么优化的(注意是HTTP不是TCP)
( 网络怼到我哑口无言,问了三个问题都答不上来,这才换了一个方面,也是从这里我开始慌了)
6.接着问了我【性能优化的相关问题】(我答不上来,后面就又问了性能优化的方面的其他,我还是说不会)
7.性能优化完全答不上之后又问了音视频开发。大致就是为什么编码,常见的音视频格式,ffmpeg,opengl,egl,android怎么往ndk通信与调用的

大概就是这些吧,当时有些自乱阵脚,加上本身NDK 了解的就不多,总之,我的表现我自己都看不下去了。

后面……没有后面了。性能优化真的是难到我了。

总结

字节跳动的面试难吗?
我觉得字节跳动的面试并不难,虽然字节跳动考的有些东西与其他家的有点不一样,但是同样道理,都是看基础。就比如其他朋友反映的,面试中有时候会问到的子网掩码的问题。

那些大厂问来问去,还是那些换汤不换药的问题。

Android 知识点总结

性能优化这个问题难吗?
其实,性能优化这个问题并不难,我当时在听完这位朋友的诉苦后整理了一份APP全方位性能优化的资料,顺便把他不熟悉的音视频开发模块的知识也进行了整理。

性能优化部分大纲

NDK模块开发目录