最近刚参加完字节跳动的一轮面试,正在备战下面几轮面试。现来回馈牛客的小伙伴们也是给自己做个复盘,希望可以帮助到你们,我会从个人介绍、面试准备、面试经过几个方面做下介绍,以便于一些小伙伴根据自己情况对照比较一下,具体的考点在文末,想看可以直接跳过前面的内容
个人情况
我目前是动力工程硕士在读,今年9月份找工作,面试的是Java后端开发的实习岗,之前有过C的基础也学过一些python,Java后端的技术栈是在今年2月开始准备,以前没有基础。目前有过一次JavaSE的项目锻炼。掌握了JavaSE、数据库、数据结构与算法、计算机网络、操作系统和设计模式, 框架了解不多Spring入门级,JVM和并发也不是很扎实。但是JVM和并发也算后期学习的重点,有时间一定要多了解。面试准备
我是从5月下旬开始找实习,字节跳动的面试邀请是在6月初通过邮件发给我的,当时只有一周左右的时间复习了,因此不能做到面面俱到。其中算法和数据结构是重点,一定要多刷题多总结。建议先看《剑指offer》的讲解,之后再分知识点进行集中训练提高自己的算法水平。其他的计算机基础,主要的知识点网上帖子很多我就不加赘述了,因为我也是多家比较总结自己的复习节奏的,因人而异。面试经过
当时我是视频面试,主考官进来必然是一段自我介绍。主要着眼于以下几点:- 我是谁,我学校专业是什么?
- 我面试的岗位是什么?
- 我有什么能力可以胜任自己的岗位
- 未来的简单展望,以及表达自己渴望加入贵公司的愿景
接着面试官向我问到:项目的主要功能是什么?你负责的内容?实现了什么成果等等。
之后面试官会根据你描述的内容继续结合现有的技术知识深度提问,可以说是项目引导了面试官对你的提问。因此再以后面试准备时,建议提前想好自己参与项目具体干了什么?尽量展现自己熟悉的,引导面试官提问。避免说一些自己不是很懂的技术点,这可能会将面试官引导至你不擅长的领域
很遗憾在昨天收到失败的消息,简单问了一下原因。主要是因为计算机基础不够扎实,基本的编程四大件了解的不够多。目前在准备另外的一个面试,字节跳动的就告一段落了,以后有经验还会更新
总计下失败经验
- 对于纯自学的小伙伴,个人认为面试的重点应该是:计算机基础(算法尤为重要) > 项目经验 > 框架等外挂buff。 我这次主要就是因为时间紧导致的基础不扎实。所以如果有像我一样的,如果时间不足那么专心准备基础最重要,项目的经验不是一两天就能见效的。
- 数据结构和算法的重要性我再强调下,非常重要。简单来说就是熟能生巧。
- 面试的时候,想清楚再说。否则面试官会认为你逻辑不严谨,这点很重要,我当时回答一些问题时候,方案没想全面就急于给出答案。多考虑给出一个能用的方案总好过一个漏洞百出的想法。
- 如果对未来目标有完整的计划的时候,对时间节点的把控也十分重要,永远要将找工作作为自己的行动指南。明白市场中什么时候会有实习的高峰期,什么是秋招期间。时刻做好准备
剩下的就是主要的考点汇总,以后会慢慢补充,祝愿小伙伴能够早日找到自己心仪的工作。peace~
一面考点
技术问题
- Java中HashMap底层是如何实现的
- Java中查询元素,和添加元素的整个逻辑过程是如何实现的
- JavaHashMap底层中,哈希表对应位置上的链表过长,底层如何解决的。当底层红黑树层数过深是,底层又是如何平衡的
- Java中HashMap底层扩容是如何实现的
- Java锁有哪些,具体的原理是什么,之间有什么区别
- 进程和线程的区别,多进程和多线程之间的区别
- 进程之间是如何切换的
- HashMap在多线程操作时候,如何保证线程的安全性
- Collecions类对于线程安全是如何实现的
- jvm中类加载是如何实现的
- Java中Class类是什么作用
- 反射是如何实现的,有什么作用
- 你认为java是解释型语言还是,编译型语言?为什么
- Java在多线程操作中,分组上锁(可能说的是分离锁)是如何实现的?
算法问题
- 一个0-5区间的随机函数,只会产生0,1,2,3,4,5。如何将其变成0-7的随机函数,保证每个数字出现的概率相同?
- 一个含有一万个数字的数组,如何从其中找出最小的十个数,保证使用的空间复杂度最小?
- 快速排序的空间复杂度是多少?具体如何实现
- 一个链表是否有环
智力问答
- 有A,B两个人,双方轮着数数。每次说出的数字,只能在对方的基础上加一或者加二,当最后谁先数到30及以上谁输。如果A先从0开始数,那你有什么方法使得A必赢?能否用具体算法实现
- 有一组小球共12个,其中一个是残次品,比标准球重还是轻未知。你现有一个天平,如何用最少的次数将残次品挑出,最少称几次?
世上只有一种真正的英雄主义,那就是认清生活的真相后依然热爱生活。--Romain Rolland
全部评论
(15) 回帖