跑断腿的七次面试,我终于悟出这些道理(1),2024年最新15分钟的字节跳动视频面试

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
img

正文

6,abstract和native方法的区别?

上面的笔试题做了有五到, 那个IO操作的自己没有写, 还有第3题我只是知道用递归来遍历删除, 但是具体的代码写的并不好.

通过这个笔试题就暴露出了我的一些缺点, 自己对IO这块有些空白, 所以导致笔试题做的并不好, 最后的话就是面试官和我聊了一下他们公司的情况, 包括培训, 包括他们所做的项目.

第一场的面试之后自己心里还是挺失落的, 一点自信都没有, 可是无论怎样 路还要继续走下去, 于是便回去 准备下下午的面试了.

9月18 周日 下午 R公司

这个公司并不是我自己主动投的简历, 这是一加外包公司, HR在招聘平台看到我的简历主动和我联系的, 于是我下午就直接过去了.

首先是做了笔试题, 笔试题是他们公司17年校招的笔试题, 都很简单而且很基础, 做完之后就直接安排面试了.

面试的人是他们的合作方. 首先是技术一面, 面试官是个很nice的大叔(30岁左右), 主要就问了我一些项目上的东西:

因为我上一个项目是做的类似于电商的网站, 也是客户外包给我们做的, 而后期我自己从网上找了一些学习资源自己又针对于电商这块做了更深入的了解, 大家可以看我前阶段的博文都有写. 所以我对项目这块使用的技术及实现方式都是挺了解的.

1, Q: 你们购物车模块是怎么实现的? A: 我从用户未登录以及登录的两种情况分析. 未登录又有两种情况, 以及我们当时是如何考虑, 选择哪一种方案的角度去给他说, 然后又具体的说了购物车的原理, 其中提到这个地方会使用到Redis.

2, Q: Redis使用的场景及好处是什么? A: 我给他详细的说了我们在项目中的哪些地方会使用到Redis, 以及Redis相比于传统的关系型数据库的优点, 然后就是Redis在我们项目中是如何使用的, 包括如何去操作Redis.

3, Q: 你们项目中使用的Nginx集群是如何搭建的? 它是如何做到负载均衡的? A: 这个问题我就先从为何要使用Nginx来说起, 然后讲了什么叫Nginx反向代理, 接着讲了如何搭建Nginx集群, 以及我在项目中关于这块的职责.

4, Q: 你们这个Dubbo是做什么使用的? A: 关于这一块我首先说了我们的项目是由多个子系统构建的, 然后说我们系统中的一些调用需要使用到Dubbo, 最后对比了Dubbo与WebService的区别.

5, Q: 面试官问我是否了解集合的一些类? A:我说我看过一点HashMap的源码, 然后讲了HashMap中的数组和链表结构, 以及HashMap是如何自动扩容的, 以及扩容带来的好处(空间换时间), 然后就是put/get是如何实现的等.

6, Q: 内存泄漏和内存溢出的? 怎么使用工具去调试内存泄漏和溢出? A: 由于这个我真的接触不多, 我只是说了什么情况下会出现内存泄漏和内存溢出, 每种情况举了一个例子. 关于如何调试我直接说我有了解是通过生成dump文件 然后去调试.剩下就不知道了.

问到这里面试官就没有再问我具体的技术问题了, 于是便开始扯起了家常, 问我是哪里人, 哪个学校毕业的, 然后让我问他一些问题:

首先我问了他们项目是具体做什么的, 然后针对于他说的内容又问了他们主要使用了什么框架, 再就是问了项目的人员组成结构. 这里面问了好几个问题, 最后还是聊得很融洽

就这样一面救过了, 然后就是二面.

二面是个待了十几年的项目组大牛, 二面的话基本没有问太多的技术问题, 基本上就是聊一聊我在上个公司做的东西, 以及为什么要辞职, 以及我的一些价值观的东西, 聊了半个小时之后 就基本上结束了, 最后人事来找我 就开始谈薪资待遇问题了.

这一家的面试还算挺轻松, HR给的薪资也挺诱惑, 但是他们所做的项目并不是我特别感兴趣的, 还有一点就是二面的项目主管说他们加班到11/12 点是常事, 而且是经常性的. 还因为我后面还有几家公司要面试, 所以我就说我下周五给答复.

**(在这里要着重强调一点: 想好你的离职理由, 这一点真的很重要, 很多公司也是比较看重这个的.)

=====================================================================**

9月19 周一 下午 L公司

因为我一开始并不知道这个公司所处的那个位置是不是很远, 所以我一大早就打车过去了, 最后才知道也很近, 因为他们公司是九点上班, 我的面试是九点半, 我八点就到了这个公司楼下, 于是我就在外面等了好大一会, 到了九点我才进入公司面试.

首先是给我一张表格, 上面有你自己的期望薪资, 我写下自己的期望薪资, 然后他们人事看了后 说我写的期望薪资有点高, 剩下的就是给我拿笔试题.

笔试题也不是很难, 做完了后便开始面试了.

**1, 类加载的生命周期?

2, arrayList的扩容方式?

3, spring事务的优点?

4, getParameter和getAttribute的区别?

5, group by的使用?

6, onload()和ready()的区别?

7, 项目中的一些问题.**

基本上我记得的就这么多, 只要做过一些准备的话 这些面试题都不是问题, 面试也谈的比较融洽, 最后人事找到我说我开的薪资有点高, 并说了他们能够接受的一个最高值, 然后我就是说我还需要考虑一下, 然后周五给他们答复.

9月19 周一 下午 B公司

这个公司是一个猎头给我找的, 做车联网方面的开发的, 这个地方离我住的地方还是有些距离的, 所以中午面试完后直接在外面吃了点饭就去了. 到了面试的公司发现还是去的有点早, 于是便在公司楼下到处晃悠, 期间还发现了不少漂亮妹子(哈哈, 有点扯远了, 自己也是在减缓自己的压力)

进入公司首先也是要做笔试题, 在这里要好好说下这个笔试题:

笔试题包括30个选择题 和几个简答题, 选择题用的是英文, 而且全是多选题, 所以我的笔试题做的并不好.

简答题并不难, 最后一个关于IO操作且写出代码的题我也空着没有做.

剩下的就是面试了, 这次是一下来了两个面试官, 估计是一面二面全都一起来面了.

面试内容是第一个面试官把笔试题从头到尾的先问一遍, 然后第二个面试官把简历从头到尾的再问一遍. 最后是他们再自己按照自己笔记上的内容问一遍. 所以这场面试持续的时间有点长. 在这里写上几个我回答不好的问题.

**1, SpringMVC 怎么添加过滤使得避免空指针? 这个最后才知道可以在javabean上设置注解设置这个字段不能为空.

2, 你们项目在什么情况下会使用多线程? 这个我确实没有接触过, 所以直接说多线程我在项目中接触的比较少.

3, 如何通过反射去调用一个类的私有方法? 这个是需要setAccessible()方法来抑制Java访问权限的检查的, 当时觉得前面的问题被问的懵逼了, 大脑也一片空白.**

剩下的就不太清了, 总体的话面试还是问了比较多的问题, 大多我都能够很好的回答上来, 这场是让我感觉最压抑的一场面试, 但是自己也接触到了这么一种新的面试体验, 总体觉得自己还是收获很大的.

最后面试官看了我的期望薪资, 也说我写的有些高, 然后就是让我回去等结果. 我就知道自己肯定是挂了, 第二天早上就收到邮件说面试不通过. 我没多想, 仍然在准备接下来的面试.

=====================================================================

9月20 周二 上午 C公司

这家公司是一个国企, 也是猎头帮我找的, 早上起了大早, 坐了半个小时的车才到这家公司.

这家公司是一个独立的园区, 绿化很好, 占地面积很大, 当时就觉得这个国企好有钱… 最后才知道其他的办公楼只是他们母公司旗下的, 他们的研发部只有一层楼 30多个人.

**填写了面试基本信息表后就是直接安排面试了, 并没有笔试环节.

面试过程中面试官就问了三个问题.**

**1, 你对Spirng的理解? 我说了Spring的基本核心内容, 然后说了我们项目中是如何去配合其他框架使用的.

2, 你们负载均衡以及集群是怎么搭建的? 我给他讲了Nginx的原理以及如何搭建的, 以及这样做的优点. 然后讲了我们的系统是如何构建的, 以及为何要使用集群.(其实这些问题在上面几个公司我都回答过)

3, 你们购物车这个是如何做的?(因为我的简历中的项目中写的有我负责购物车这个模块)  然后我就给他讲了一下具体的实现以及用到了什么技术, 其实这些上面几家公司也有问到**

问到这里他就直接给我说他问完了,到这里我心里就在打鼓, 我回答的还可以啊, 面试官对我不满意? 然后他让我问他一些问题, 我接着就问他他们项目组的一些具体问题, 感觉我问他的问题比他问我的问题还要多.

这个是HR和面试官坐在一起的, 然后HR就给我讲了下他们公司的发展前景,最后还说了他们的薪资结构, 然后就让我回去等通知了.

同样的, 我以为等通知就是没戏了, 谁知道第二天给我打电话说我通过了, 然后说能够给我的是年薪XX, 而且他们的五险一金全都是按照最高标准去交, 当时听了真的很激动, 当时由于已经确定签约另一家公司, 所以还是和这个公司表示了感谢, 拒绝了这份offer.

9月20 周二 下午 L公司

我现在不想那么盲目的再去找面试了, 百度了这家公司发现网上骂声比较多, 而且这个公司规模也不是很大, 于是我便给这个公司打电话 表示自己去不了啦, 然后表示了自己的歉意.

面试完C公司我就回家睡觉了, 感觉这几天一直在跑 真的很累, 因为暂时还没有找到一个心仪的公司, 所以压力真的很大, 每天不想吃饭, 觉也睡不好.

=====================================================================

9月21 周三 上午 CQ公司

这个公司是在我住的附近, 所以踩着约定的时间到了这家公司面试, 公司里面面试者比较多, 我是先做完笔试题, 然后就排队等着面试了.

面试是在中午十一点, 因为后面等待的人还是很多, 所以面试官就面试了30分钟左右, 主要还是问了我一些项目上的内容, 我感觉还是回答的不错的, 最后到了饭点就让我回去等人事通知了.

第二天人事打电话想让我去签约, 开出的薪资还可以, 而且有2-4个月的年终奖.每年需要出差四个月.

因为下午的时候是签约了另一家公司, 所以这一家自己也是推掉了.

9月21 周三 下午 M公司

这一家公司是我最终选择的公司, 无论平台发展和薪资要求都是我很满意的.

首先是进入公司, 感觉公司的环境非常好, 因为提前在网上有对这家公司有过了解, 也用过他们的产品, 所以还是很想进入这家公司的. 我相信大家也一定用过他们家的产品, 这里我就不方便具体透漏了.

首先就是开始做笔试题, 笔试题 并不是很难, 做完后就开始面试了.

一面: 人事面

这里又和我之前面的几家公司不同, 第一轮是人事面, 问的问题就是为何辞职, 问了自己的人生规划, 问了自己的价值观的一些东西, 聊得还挺融洽, 紧接着就是二面了.

二面: 技术一面

面试官确实让我感觉到是个大牛, 他并没有 看我的简历, 只是针对于我的工作经验来问了我三个题.

1, 我们服务器在启动的时候 一瞬间有1000个访问, 那么如果使用一个HashMap去存储的话 你会设置初始值为多大?

其实这个问题我并没有正面的去回答设置多大的初始值, 我给他说了一下HashMap扩容的原理, 并说到了HashMap的阀值是和初始值大小和加载因子相关的, 然后说道要权衡空间复杂度和时间复杂度的情况.

感觉他对这个问题的回答还是比较满意的.

2, 我们是有700W的日活, 如果有一个方法的参数是(String cityCode)查询的话, 怎么去保证同步?

我说的是加synchronize或者加Lock, 接着他就问我这两种的区别, 问他们的性能哪个好. 然后我说在这个案例里面我们可以加Lock, 然后他就问我怎么加Lock去控制颗粒度来达到最好的效果?

到了这里我真的是不知道了, 因为压根就不太了解Lock的机制, 但是他说没关系, 然后想一下怎么去做, 还提示我这个可以引用HashMap的设计思想.

最后我想的就是这里对cityCode进行分组, 通过组去定位具体要查询的cityCode的位置. 对于这个答案他听后 觉得是可以提升一些性能, 但仍不是最好的.

最后的话给我说了下hash碰撞, 通过hash值取模来去颗粒度更精细, 其实这里我知道hashmap中也是通过hash值去定位数组的位置的. 这个问题就到这里了.

我自己又找了下HashMap中关于hashcode定位桶的位置的方法:

1 /**

2 * 根据特定的hashcode 重新计算hash值,

3 * 由于JVM生成的的hashcode的低字节(lower bits)冲突概率大,(JDK只是这么一说,至于为什么我也不清楚)

4 * 为了提高性能,HashMap对Key的hashcode再加工,取Key的hashcode的高字节参与运算

5 */

6 static int hash(int h) {

7 // This function ensures that hashCodes that differ only by

8 // constant multiples at each bit position have a bounded

9 // number of collisions (approximately 8 at default load factor).

10 h ^= (h >>> 20) ^ (h >>> 12);

11 return h ^ (h >>> 7) ^ (h >>> 4);

12 }

13

14 /**

15 * 返回此hashcode应当分配到的桶的索引

16 */

17 static int indexFor(int h, int length) {

18 return h & (length-1);

19 }

3, 有两个数字A,B, 他们都是有500位的数字, 如何规定不能使用BigDecimal 去运算的话怎么求的A+B的结果? 并写出代码.

这个是需要当场写出代码的, 而且他也不给我任何提示, 需要我自己想.

这个问题真是让我懵逼了,想了十多分钟,还是感觉自己的应变能力不够, 本打算放弃的, 最后还是想到了HashMap这个玩意, 哈哈, 感觉他好神奇.

思路: (我当时想到的思路, 不一定正确)

1 Map<String,int> a1Map = new HashMap<String,int>();

2 a1Map.put(“a1”,1234567890111111); //value值装入小于int类型能够接收到长度

3 Map<String,int> a2Map = new HashMap<String,int>();

4 a2Map.put(“a1”,1234567890111111); //value值装入小于int类型能够接收到长度

5 …

6 Map<String,int> b1Map = new HashMap<String,int>();

7 b1Map.put(“a1”,1234567890111111); //value值装入小于int类型能够接收到长度

8 Map<String,int> b2Map = new HashMap<String,int>();

9 b2Map.put(“a1”,1234567890111111); //value值装入小于int类型能够接收到长度

10 …

11

12 int c1 = a1Map.get(“a1”) + b1Map.get(“b1”);

13 int c2 = a2Map.get(“a1”) + b2Map.get(“b1”);

14 if (c12.length() > a2Map.get(“a1”).length()){

15   c1 += 1;

16 }

17 …

其实前端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

这里再分享一个复习的路线:(以下体系的复习资料是我从各路大佬收集整理好的)

《前端开发四大模块核心知识笔记》

最后,说个题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
ff2a0cd1db5a9d4251.png)

最后,说个题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-ybp8K5T6-1713098199294)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 13
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值