分享

如何拿到一线互联网大厂offer

问题导读

1.作者对大厂是如何总结的?
2.名企面试都考察了哪方面的问题?
3.总结面试,你认为面试成功跟什么有关系?



二话不说先上图:
1.png


1.png

经过半个多月的面试,拿到了滴滴和蘑菇街的offer,虽然没有拿到bat的offer但是对于我来说这个结果还是可以的。面过啊里和腾讯最后还是失败了,确实能感觉到其中存在的差距,毕竟全国大学生、研究生都想进bat,如果没有突出的表现的话,难度还是挺大的。


啊里面试官建议:在大学学的东西太多太杂了,搞java又学python、机器学习等,其实能专攻一个方向就够了,毕竟想什么都学通的话很难。
腾讯面试官建议:来面试的人很多,我们更希望的是听到一些大家都不知道的,而你知道,比如说你能讲一些NameNode的源码…

看到这两条,应该都有点感觉把,大厂要找招的是学得精而不是学的多。也就告诉我们在写简历的时候,尽量写我们最擅长的,岗位最需要的,而不要凡自己学过的都写上去,切记!,还有就是源码搞起来。

每个人都有大厂梦,尤其是普通学校,能进大厂是多么值得高兴的事情,以至于我们需要更加倍努力,冲啊!

接下来讲一下我们该准备什么,我主要投的是java后端开发和大数据开发。面试就是一场和面试官的战斗,想要赢就不能没有准备。先看一下面试都干了啥。

上来先自我介绍

ArrayList和LinkedList的区别。
多线程环境下怎么使用集合。
紧接着问我CopyOnWriteArrayList的底层实现。
Vector的怎么实现线程安全的。
synchronized和ReentrantLock的区别。
volatile关键字干嘛的。
什么时候用synchronized,什么时候用volatile,说个场景。
HashMap和ConcurrentHashMap的区别。
线程池什么原理。
在java中线程有哪些状态。
java基础轰炸完之后来到了jvm

叫我谈一下GC。
刚问讲理论,接着就问你做过什么GC优化。
干完垃圾回收那一块,开始问类加载机制。
接着就来了个场景题,你说有双亲委派模型有优点那它有什么缺点呢。什么场景需要破坏双亲委派模型。
经过了jvm的激战,来到了数据库篇

问我使用什么数据库,mysql,接着叫我谈索引。
什么是聚簇索引什么是非聚簇索引。
最后来了个场景题,一张表有A、B、C、D、E五个字段,对A、B、C、D建立了复合索引,现在要查A=1 and B=2 and C>3 and D=4,用到了那些索引? 为什么D没用上;
最后来到了项目篇

三分钟描述你的项目。
项目的数据量是多少。
项目哪些地方用的是分布式。
kafka如何保证幂等性,即怎么做到数据不重复消费。
TF-IDF是什么。
不过还没完,说要来个线上小测试,发了个阿里在线评测系统,直接手撕。

实现一个阻塞队列。
总用面了一个半小时。

这次面试我面的是java后端开发(申明一下由于我主要学的还是大数据,ssm等只是会用,所以没怎么问),所以没有涉及到大数据方面的东西,考查的更多的是基础,不管面大数据开发还是后端开发这些都是必问。

个人介绍
时间不能太长也不能太短一分钟左右,不过好多人都建议讲三分钟左右,唉,归结到底还是实力不够强啊,没有那么多辉煌的事迹要讲。不过主线是不会错滴,尽可能的表现自己,让面试官对你更有兴趣,迫不及待想进一步了解你。

Java基础
这个主要是考察你的基本功,不能错,可以结合面试题来复习,(坚持到最后,提供有答案的面试题)。接下来的很重要了。java.util包下的集合,必需很熟,源码得撸起来,不然顶住面试官的轰炸。

多线程
看了上面的面经就知道,问得很多,在最后还手撕多线程代码。重要程度不言而喻。JUC包下的东西必须的会啊。这里提供两个多线程的题目,面前必刷多线程代码实践-大厂面试题记得csdn点波关注。同时推荐一本书《Java并发编程实战》,java程序员必看。

Java虚拟机
属于程序员的内功,框架是会不断的更新迭代的,但是最底层的东西是永远不会变的。重要的事情说三遍,很重要很重要很重要,同时推荐一本书《深入理解Java虚拟机》java程序员必看。

数据结构与算法
对于这方面,主要还是刷题,《剑指Offer》里面的67道题是一定要刷完的,我碰到的手写算法的题,好多都是这里面的。如果仅想这67道题就能解决算法还是不太可能的,LeetCode里面的题坚持刷起来啊。

设计模式
设计模式问的比较少,我碰到过一个手写一个单例模式(切记写线程安全的版本)。

数据库
索引必问,不要问为什么。问就是必考。还有就是存储引擎和主从复制等。当然手写SQL还是会有得,还是那句话最基础的不能错。

申明一下大厂看重基础原理。小厂看重的是项目,就是想招那种上来就能干活的。

我了解到对于普通学校想进大厂,由于没有名校的光环,那么我们可以从几个方面入手:

  • 第一大学期间获取计算机竞赛的奖项。往简历上填(乱七八糟的奖就不要往上写),这些奖能展现出你的实力。简历筛选更有希望过。
  • 第二项目经历:如果能让面试官看到你的项目,更好。
  • 第三实习经历:实习经历能说明你有实战的经验在实际生产环境干过,所以会加分的。

对于大数据框架方面的东西我就不说了,粘出蘑菇街面经以供参考。
蘑菇街一面
视频面试,上来先做了自我介绍。

使用mysql创建一张表,然后又select查询语句;
问我脚本命令。awk、sed、cut、sort,这些命令的作用。
知道哪些java集合。
Http是有连接的还是无连接的。
TCP和UDP的区别。
接下来开始问项目
介绍一下,是怎么开发的,团队怎么协作的。
了解kafka有多少。
最后写了点java代码,很简单入门级的

又开始写java代码,很简单的java代码

总体上,问的很简单,不深入底层。

蘑菇街二面
难度挺大的,跟一面完全不在一个档次上

大数据框架

Yarn怎么做高可用,NodeManage挂了怎么办,task挂了怎么办。
hive内部表和外部表的区别。
项目中遇到的问题。
hive中有没有自定义过udf函数,用来干嘛。
谈一下spark。
spark SQL和hive SQL的区别。
storm和spark的区别。
用过flink吗,谈一下。
hbase问了一些问题。
接下来java基础

谈一下GC.
新生区怎么进行垃圾回收的。
有哪些垃圾回收器。
他们的使用场景。
遇到了堆内存溢出怎么办。。
遇到了死锁怎么分析与解决。
TCP粘包是怎么解决的? 用的的解码器是什么?
手写代码部分

写3个线程轮流打印1-1000
数据库

mysql主从复制知道吗,原理是什么。
binary log里面是怎么存的。
master和slave中具体是怎么样通信实现主从复制的。
蘑菇街三面
java基础部分

java中能实现数据安全的机制有哪些。
synchronized和ReentryLock的区别。
谈一下volatile。
volatile是怎样实现指令重排的。
谈一下CAS。
知道ABA问题吗,怎么解决的。
知道死锁吗,遇到这种情况那你是怎么解决的。
谈一下ConcurrentHashMap是怎样实现同步的。
知道一致性哈希算法。
大数据框架

你常用的大数据组件。
yarn调优的方案有哪些。
当你遇到了一个MR跑的很慢,你会怎么办。

hr面
自我介绍。
讲一下简历上的比赛经历。
讲项目开发的背景。
在项目中担任什么角色。
在做项目的过程中,你印象最深的事是什么。
如果再给你重新开发这个项目,有什么要改进的地方。
你的性格是怎么样的。
有什么爱好。
9 你身边的人对你的评价是什么。
你印象最深的一次经历是什么。
你对蘑菇街了解多少。
总体感觉还是很不错的

最后希望读过这篇文章的人,我们都能够一起加油,向大厂冲啊!!!


————————————————
版权声明:「海贼工作室」


原文链接:https://blog.csdn.net/qq_43115606/article/details/105183357


已有(1)人评论

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条