最后
如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。
最后针对Android程序员,我这边给大家整理了一些资料,包括不限于高级UI、性能优化、移动架构师、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
这位是二面字节挂掉的朋友
下面是他的面经
投的是抖音,感觉抖音的需求量大些,面上的可能性更高一些吧,但是我忘了一点供应量也是一样的大。。。
一面二面的时候感觉自己表现还不错,所以后面就有点飘,结果第三面准备不足,多人面试直接懵逼…(啊啊啊啊啊)
面试题主要问的有以下这些:
一面
(因为过程比较顺利,题目没有好好记下来,大概就是下面这些吧)
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 了解的就不多,总之,我的表现我自己都看不下去了。
后面……没有后面了。性能优化真的是难到我了。
总结
####字节跳动的面试难吗?
总结:
面试是一个不断学习、不断自我提升的过程,有机会还是出去面面,至少能想到查漏补缺效果,而且有些知识点,可能你自以为知道,但让你说,并不一定能说得很好。
有些东西有压力才有动力,而学到的知识点,都是钱(因为技术人员大部分情况是根据你的能力来定级、来发薪水的),技多不压身。
附上我的面试各大专题整理: 面试指南,满满的都是干货,希望对大家有帮助!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!