一份来自一月寒冬互联网一线的面经(附面试题)

1.背景:

因为公司变动,lz不得不出来看看机会, 面试的岗位主要是后端,历经三周,面了北京大大小小的几家公司,最后收获了满意的offer。

自己也成长收获了不少, 谨以笔记,自己可以日后回忆,也希望能帮助到最近寒冬下需要找工作的同学,在文章的后面会附上一点小心得和建议。

2.level

我是16年本科毕业, 算上实习接近2年半-3年的工作经历吧,一直做java后端。  自己定位大概能到p6+的水平。有大厂经验,本科211, 所以面试机会总体来说还是挺多的。

3.过程

大概是从元旦过后开始写简历,投简历,从7号开始陆陆续续面了若干公司, 有好有坏,以表格形式记录如下,以我面试的时间排序。

声明:虽然博客没有什么人看,但是如果您认为记录有不实或者伤害到下述公司名誉啥的, 直接联系我删除即可。

公司 部门  渠道  结果  感受(办公环境,面试难度,感受)
 

百信银行

 

DevOps

Boss

 4+0,拿到offer.

(4技术面 0hr面,下同)

 百信的位置和办公环境都很不错,位于安贞门。

面试官人很nice,没有多余的操作, 并且友好地帮我倒了一杯水。

主要针对简历中的项目,以及java基础进行面试。

难度也是循序渐进, 说实话因为是第一家面试, 我确实很多地方没有准备好,但是还是感谢面试官给我机会。

感受:之前感觉银行可能比较水, 但是感觉各方面都挺与时俱进的, 待遇和人文也很有竞争力。 百信应该有大几百人的研发团队,各方面应该都不输于D轮的互联网公司。 总体是比较赞的。

 动动    Boss  线上笔试

 3道Codility,英文,大概3h限时, 我应该1h就写完了,用例跑通我就提交了,但是只有一道题ac。(很奇怪,也没有错误用例的提示,和LeetCode有些不一样)

 然后hr还是让我去面试, 我拒绝了,可能是我当时已经对这家公司没有太大兴趣了。

悉见科技     笔试+面试

一家AI创业公司, 看jd介绍不错就去了。 最后发现是在一个很偏,有点破的创业园,里面环境有点像家乡的网吧。

笔试3道很简单的题, 面试也没什么深度,面试官说实话感觉挺菜的。

总体技术和互联网差别很大, 我当时也是抱着练手的态度过去。 所以也没下文了。

 vivo  金融 Boss   视频面试

 1面视频面,难度循序渐进,两位面试官提问。 面试官说第二天hr联系我,结果也没联系。我也没问了。

主要是因为vivo在深圳,我在北京,可能我也不是很想换城市,后面投的都是在北京了。

 美团  --  Boss 3+0 拿到offer 

美团的环境感觉就是标准的互联网风格,

面试官也很务实友好, 难度循序渐进,二面会问一些底层,并发的理解。

美团无论是从技术沉淀还是我面试团队的潜力, 都是我很心仪的。

很幸运也给了我一个不错的定级和待遇。

 小米  有品  Boss 2面撤了

 说实话,我开始是不想投小米的,但是考虑到我是湖北人,可能回武汉。

但是!!!我面试之前应该在脉脉上搜一搜这个部门的。

这个部门位于清河一个挺偏的地方, 周围仿佛回到了18县小乡镇。

面试官也是low爆炸了,一面面试官穿了一个脱鞋,让我在楼下等了20min,前台态度也不好。

然后竟然去了一个茶吧台面试。不过一面面试官总体态度还行。(小米不提供饮水,面试官带我去饮料机买了瓶汽水,当然是我自费,从小米出来我就有了带水的习惯了。)

二面简直是个活宝,上来站着问,你懂hashmap吗, 我简单答了一下数组+链表,然后按理应该往碰撞,或者并发的方向继续问, 结果坐下,抖腿,问什么抓包的原理,然后扯的乱七八糟的。 最后憋了一分钟吧,出了一个很无聊的题(LeetCode第十题)。 我实在不想浪费彼此时间,就直接走了。

小米本身在我心中还是个挺有态度的公司,和雷总也是老乡。  哎,真是刷新了我的三观。

 脉脉  效能  Boss  2+1

 脉脉我觉得公司和产品一样nice, 位于768,环境很安静。

hr笑的很开心,面试官也很有礼节。

他们主后端是用python, java主要做一些离线和效能的工作。

因为第一天3面面试官不在, hr让我第二天过去, 但是由于面试过程中了解到是去做效能平台,财务平台。

秉着发展的考虑,我还是拒绝了。 

但是我还是推荐脉脉, 小而美。

 字节跳动  广告  猎头  3+1,拿到offer

 面完小米之后,我觉得我不能在小公司上面浪费时间,同时也有了美团的offer。

于是我把其余的面试都取消了,只剩下了头条和阿里。

头条办公环境,位置都很好。 每层都有食堂(请我吃了一顿,很好吃)

同学们给我最大的感受是 年轻,有活力,友好。 还有就是真的忙。

我身边已经有陆陆续续不少同事选择了头条了。

面试难度其实没有传说中的那么难, 不至于手写红黑树,但是基本的数据结构和算法要熟悉,每一面都会写算法。

hr感觉也很尽心尽责。

阿里巴巴 文学 Boss 3+1

阿里巴巴的面试总体有点失望,首先hr没预约会议室,导致在休息区面试。 也没有茶水,虽然我自带了。

然后是办公区到处都是屏幕,循环着马云的创业视频。

三面面试中规中矩。

文学本来就不是我投的部门(我投的uc,不知道咋流过去了,然后让我面试,我也想试一试吧,然后hr说我蚂蚁简历没过,可我压根没投过)

阿里最难的是hr面,  一个hr非要充当心里学家,问你人生高潮是啥, 非常没有礼貌,说话直接打断,也没什么信用,感觉这群hr把阿里搞得乌烟瘴气。   特别是hr套路很多, 面完了说没有hc,hc要审批(那你喊我来干嘛) ,然后我有很优秀的同事面过了 ,我说有人拿offer了 ,hr又说人家面的早。让我感觉她就是在刷kpi啥的。

反正这个部门我是不建议去了, 周围拿到文学offer的同事也打算拒了再看看。

亚马逊 物流仓储 Boss 还没面  

4.总结及建议

1.一定要提前准备好,刷一定量的题,特别是现在各大公司都有自己的招聘系统,如果一面就挂了,可能直接就拉黑,后续面试就更难了。

2.关于刷题,大概刷完剑指offer上面的经典题, 或者leetcode前100道应该就够了,我建议有选择的刷,主攻排序,链表,大文件处理这些面试高频的,也有意义的。

3.关于练手,我觉得不要有太大的心里负担, 你去一般公司面试,对于公司可能是一种匹配,但是对个人可是一次很好的自我认知反省的机会,甚至会改变后续的很多结果。

我们结合对行业的了解,如下公司可以说小而美(其实也是大独角兽了),本身就值得加入,面试也有很多收获: 猿辅导,脉脉,探探,瓜子,vivo互联网。

当然拿大厂的边缘部门练手也未尝不可,就是有风险有记录。

当然也有一些黑名单,面试官迷之自信,态度傲慢,技术浅显, 建议大家面试前脉脉一下。。

最后一棒子打死,感觉位于清河的公司,可能都不太利于个人生活和发展。

4.关于基础,我在下面附上一些前辈整理好的url。一定要夯实打捞。

5.我觉得面试礼仪是衡量双方的重要标准, 面试者要注重自己的仪表整洁,谈吐礼貌自然。 可以从公司面试官的行为判断出公司的大体人员素质,我个人比较看重公司行政或者面试官是否能给瓶矿泉水或者倒杯水,我认为这是尊重一个面试者的基本表现,虽然后来我都是自己带水。 我面试中就小米和阿里没有(并且阿里文学是饭点约去面试,也不管饭,饿着肚子从5点面到9点多),然后就是双方是否守时,我一般提前20分钟到,提前10分钟给hr打个电话。 

6.关于面试难度,我觉得正常应该是围绕简历和基础循序渐进,一上来手撕红黑树,给个hard基本要dp的,或许不是真心想招人的。 

当然,即使难点也不要慌, 表达好自己的思考过程, 即使错了也没太大关系。

其他的想到在整理吧。

5.面试题+基础

各家的面试题其实都大同小异, 掌握基础和原理,走到哪都不怕。

电脑没电了 明天去公司再整理格式吧。

reids

 

知道redis吗,redis是如何做持久化的

介绍下redis的特点,redis的基本数据结构,数据持久化方式,主从之间如何同步;

导致redis性能瓶颈的操作

redis有哪些接口

Redis的实现模式;

redis为什么这么快?

 

 

java-core

1、List 和 Set 的区别2、HashSet 是如何保证不重复的3、HashMap 是线程安全的吗,为什么不是线程安全的(最好画图说明多线程环境下不安全)?4、HashMap 的扩容过程5、HashMap 1.7 与 1.8 区别,说明 1.8 做了哪些优化,如何优化的?6、final finally finalize7、强引用 、软引用、 弱引用、虚引用8、Java反射9、Arrays.sort 实现原理和 Collection 实现原理10、LinkedHashMap的应用11、cloneable接口实现原理12、异常分类以及处理机制13、wait和sleep的区别14、数组在内存中如何分配

 

 

java-并发

1、synchronized 的实现原理以及锁优化?2、volatile 的实现原理?3、Java 的信号灯?4、synchronized 在静态方法和普通方法的区别?5、怎么实现所有线程在等待某个事件的发生才会去执行?6、CAS?CAS 有什么缺陷,如何解决?7、synchronized 和 lock 有什么区别?8、Hashtable 是怎么加锁的9、HashMap 的并发问题?10、ConcurrenHashMap 介绍?1.8 中为什么要用红黑树?11、AQS12、如何检测死锁?怎么预防死锁?13、Java 内存模型?14、如何保证多线程下 i++ 结果正确?15、线程池的种类,区别和使用场景?16、分析线程池的实现原理和线程的调度过程?17、线程池如何调优,最大数目如何确认?18、ThreadLocal原理,用的时候需要注意什么?19、CountDownLatch 和 CyclicBarrier 的用法,以及相互之间的差别?20、LockSupport工具21、Condition接口及其实现原理22、Fork/Join框架的理解23、分段锁的原理,锁力度减小的思考24、八种阻塞队列以及各个阻塞队列的特性

  • 单机上一个线程池正在处理服务,如果忽然断电了怎么办(正在处理和阻塞队列里的请求怎么处理)?
  • 为什么要使用线程池?
  • 线程池有什么作用?
  • 说说几种常见的线程池及使用场景。
  • 线程池都有哪几种工作队列?
  • 怎么理解无界队列和有界队列?
  • 线程池中的几种重要的参数及流程说明。

 

JVM

1、详细jvm内存模型2、讲讲什么情况下回出现内存溢出,内存泄漏? 3、说说Java线程栈4、JVM 年轻代到年老代的晋升过程的判断条件是什么呢?5、JVM 出现 fullGC 很频繁,怎么去线上排查问题?6、类加载为什么要使用双亲委派模式,有没有什么场景是打破了这个模式?7、类的实例化顺序8、JVM垃圾回收机制,何时触发MinorGC等操作9、JVM 中一次完整的 GC 流程(从 ygc 到 fgc)是怎样的10、各种回收器,各自优缺点,重点CMS、G111、各种回收算法12、OOM错误,stackoverflow错误,permgen space错误

  • 说一下对jvm的理解,jvm的组成部分,各个部分的存储内容以及常见的jvm的问题排查步骤。
  • JVM熟不熟悉?简单说说类加载过程,里面执行的那些操作?
  • JVM方法区存储内容 是否会动态扩展 是否会出现内存溢出 出现的原因有哪些。
  • 介绍介绍CMS
  • 介绍介绍G1。
  • 为什么jdk8用metaspace数据结构用来替代perm
  • 简单谈谈堆外内存以及你的理解和认识。
  • JVM的内存模型的理解,threadlocal使用场景及注意事项?
  • JVM老年代和新生代的比例?
  • jstack,jmap,jutil分别的意义?如何线上排查JVM的相关问题?
  • Java虚拟机中,数据类型可以分为哪几类?
  • 怎么理解栈、堆?堆中存什么?栈中存什么?
  • 为什么要把堆和栈区分出来呢?栈中不是也可以存储数据吗?
  • Java中,什么是是栈的起始点,同是也是程序的起始点?
  • 为什么不把基本类型放堆中呢?
  • Java中的参数传递时传值呢?还是传引用?
  • Java中有没有指针的概念?
  • Java中,栈的大小通过什么参数来设置?
  • 一个空Object对象的占多大空间?
  • 对象引用类型分为哪几类?
  • 讲一讲垃圾回收算法。
  • 如何解决内存碎片的问题?
  • 如何解决同时存在的对象创建和对象回收问题?
  • 讲一讲内存分代及生命周期。
  • 什么情况下触发垃圾回收?
  • 如何选择合适的垃圾收集算法?
  • JVM中最大堆大小有没有限制?
  • 堆大小通过什么参数设置?
  • JVM有哪三种垃圾回收器?
  • 吞吐量优先选择什么垃圾回收器?响应时间优先呢?
  • 如何进行JVM调优?有哪些方法?
  • 如何理解内存泄漏问题?有哪些情况会导致内存泄露?如何解决?

 

 

Spring

1、BeanFactory 和 FactoryBean?2、Spring IOC 的理解,其初始化过程?3、BeanFactory 和 ApplicationContext?4、Spring Bean 的生命周期,如何被管理的?5、Spring Bean 的加载过程是怎样的?6、如果要你实现Spring AOP,请问怎么实现?7、如果要你实现Spring IOC,你会注意哪些问题?8、Spring 是如何管理事务的,事务管理机制?9、Spring 的不同事务传播行为有哪些,干什么用的?10、Spring 中用到了那些设计模式?11、Spring MVC 的工作原理?12、Spring 循环注入的原理?13、Spring AOP的理解,各个术语,他们是怎么相互工作的?14、Spring 如何保证 Controller 并发的安全?

 

Netty

 

分布式相关

1、Dubbo的底层实现原理和机制2、描述一个服务从发布到被消费的详细过程3、分布式系统怎么做服务治理4、接口的幂等性的概念5、消息中间件如何解决消息丢失问题6、Dubbo的服务请求失败怎么处理7、重连机制会不会造成错误8、对分布式事务的理解9、如何实现负载均衡,有哪些算法可以实现?10、Zookeeper的用途,选举的原理是什么?11、数据的垂直拆分水平拆分。12、zookeeper原理和适用场景13、zookeeper watch机制14、redis/zk节点宕机如何处理15、分布式集群下如何做到唯一序列号16、如何做一个分布式锁17、用过哪些MQ,怎么用的,和其他mq比较有什么优缺点,MQ的连接是线程安全的吗18、MQ系统的数据如何保证不丢失19、列举出你能想到的数据库分库分表策略;分库分表后,如何解决全表查询的问题20、zookeeper的选举策略21、全局ID

 

 

mysql:

http://www.iocoder.cn/Interview/MySQL-01/

mysql索引的实现原理

Innodb中,什么是聚集索引,非聚集索引,他们是什么关系

插入一条记录时,聚集索引和非聚集索引是如何修改的

建立索引的标准是什么

查看 SQL 是不是使用了索引?(有什么工具)

 

SQL 索引的顺序,字段的顺序

MySQL 分页查询语句,mysql分页有什么优化

 

 

猜你喜欢

转载自www.cnblogs.com/novaCN/p/10328380.html