牛客面经

作者:给个offer养家糊口
https://www.nowcoder.com/discuss/79602?type=0&order=3&pos=13&page=1
来源:牛客网

一共投了20家简历
网易云音乐,笔试挂
阿里,一面挂
百度,三面结束至今没消息(凉没凉透也给个消息啊,咋状态还是面试安排中啊)
腾讯,二面挂两次(再次感谢第二次面试的时候一面小哥请我吃了晚饭哈哈哈)
Paypal,笔试挂(这是唯一一家笔试挂了还发邮件的。。好评)
携程,笔试过了没面试
爱奇艺,过了两面,三面至今没消息
七牛云,笔试过了没面试
京东,offer
美团,offer
最后应该就是去美团了,也不想考虑其他地方了。
其他的要么没笔试,要么笔完了没消息。。

楼主去年生病休学了一年,大概在家吃药修养了6个月才好,剩下的时间就开始琢磨找工作的事情,从去年7月份开始刷牛客,印象比较深第一次看的面经是这篇

https://www.nowcoder.com/discuss/26012

对于刚开始决定用Java找工作的我来说其实大部分面试题都是看不懂的,不过大家都是从菜鸟变成老鸟的,确实急不来。
(我不会说今年三月前我沉迷了3个月阴阳师啥也没干。。咳咳)
(中间还去面过一次唯品会,面了三面说我实习时间太短不要???)

以下内容,要是说的不对请老铁们指出。

算法准备

刷算法前,数据结构必须很熟悉,老生常谈了不多说了。
算法其实没什么好说的,都是硬刷刷出来的,剑指offer,leetcode,还有往年真题,楼主刷的不多,加起来不到300道。
个人刷题顺序是先剑指offer刷了一遍,leetcode挑自己不会的对应的tag刷(比如树,DP,回溯),觉得刷的差不多了再去刷往年的真题。
左神的算法课强力推荐,讲的非常细致(牛客给广告费吗?不给也推荐一下)

关于做题的小技巧,C++一秒可以跑得数据量是1e8,给的数据规模是1e4就可以写O(n^2)的算法,1e6考虑O(nlgn)的算法,1e8就只能O(n)了。以及刷题30分钟想不出来就直接看题解好了没必要花太多时间,毕竟不是搞ACM,笔试题目变来变去不会差太多,刷多了会有感觉的。

一般三道编程题做得出一道半就能有面试机会,左神说笔过的企业要有一半收到面试邀请才算及格。。

项目准备

楼主做了两个项目,一个慕课网上的电商项目,一个是牛客的高级项目课(没做完)。一个项目从头到尾跟下来差不多需要一个月的时间,如果是第一次上手相关的技术,可能会需要比较长的时间反复理解。为了自己好,建议跟着写代码并且多理解技术本身。
(emmmm,慕课网和牛客给广告费吗??)

叶神的项目课最后会有面试指导,可以按照叶神的思路来准备自己的项目。面试过程中突出技术上的亮点,屏蔽掉业务相关的东西,面试官对于业务相关的基本不看,技术讲得好会很亮眼。

需要对自己项目采用的相关技术有足够的了解。比如楼主的项目里面用到了Redis,就要对于Redis的各种底层实现,相关性能,并发,事务,主从同步等等有了解,就算项目里面没用到相关功能也要熟悉,要做到面试官问起来相关的内容,可以很自信的讲出来。
Redis推荐一本《Redis的设计与实现》

基础准备

楼主是打算以后做Java后台开发的,所以对于Java相关的东西必须得熟悉,语法,并发,集合类,JVM等等。
JVM推荐《深入理解Java虚拟机》,并发推荐《Java并发编程的艺术》。
从0开始啃书会比较的慢,楼主差不多第一次看一个月才可以看完一本,囫囵吞枣的看,暂时不理解的就先死记下来。看完第一遍结合面经看,遇到不会的就翻书搜资料看博客,会有很多新的收获,看的面经多了就慢慢的对于基础理解的就更多了。

另外个人感觉不是很推荐直接看源码,直接读源码非常麻烦,层层封装下来很容易看不懂被绕晕,多看看别人写的解析再看看源码比较好。

数据库的内容,写SQL语句推荐直接牛客或者leetcode上练习,一般面试过程中不会出现太难的写SQL语句。其他部分,楼主路子比较野,除了上课学过一本《数据库系统概念》,没看什么书,基本上都是看着面经复习的,看到不会的就去搜一下相关内容。。

计算机网络部分,推荐教材《计算机网络:自顶向下的方法》,做后台开发对于TCP/UDP,Http协议要很熟悉,网络层个人感觉不会问的很细(当然也要看),链路层和物理层了解即可。

编译原理,这个面试被问到到是命不好,楼主根本没准备过这部分的,虽然之前手撸过一个很小的编译器,但是都忘了,面试也基本不问。
(然而腾讯二面还是被问到了一下,不会,敲里马)

操作系统,楼主上课的课本是《现代操作系统》,感觉面试问的比较多的是进程,内存管理,死锁。

另外推荐一本《深入理解计算机系统》,对于理解计算机底层很有帮助(虽然这本书现在被我用来垫笔记本了)

不是很推荐这些书直接从头到尾的读,很花时间,时间多可以这么做,很考验人的耐心,比较推荐的是粗略了解一下内容,看面经,看到不会的去翻书和查资料加深理解。

心态准备

找工作非常累,我想这是每个经历过春招秋招人都有的体会,无论是基础的学习,复习,笔试,面试或者是等offer。
楼主网易三道笔试题一道没A,第一次面阿里没准备好直接一面被挂,心态确实很崩溃,但楼主还是相信金子总会发光的,互联网这个行业提供了很好的机会,学历的要求相对其他行业低了很多,只要愿意下功夫,一定会有所回报的。
送大家一首冰心的诗《成功的花》
成功的花 \ 人们只惊羡她现时的明艳 \ 然而当初她的芽儿 \ 浸透了奋斗的泪泉 \ 洒遍了牺牲的血雨
有些矫情嘿嘿

面经相关

楼主贴一下自己的面经,需要的同学自取,岗位都是Java后台开发

阿里菜鸟Java一面面经。。(凉凉)
https://www.nowcoder.com/discuss/71325
京东实习一面面筋,Java开发
https://www.nowcoder.com/discuss/74005
百度实习一面面经,Java开发
https://www.nowcoder.com/discuss/74334
百度实习二面三面面经,Java开发
https://www.nowcoder.com/discuss/74391
热乎乎的京东实习二面面经,Java开发
https://www.nowcoder.com/discuss/74601
热乎的京东HR面面经,Java开发
https://www.nowcoder.com/discuss/75009
腾讯后台开发,一面面经
https://www.nowcoder.com/discuss/75986
腾讯二面面经,后台开发。。凉凉。。
https://www.nowcoder.com/discuss/76678
爱奇艺面经,Java后台开发
https://www.nowcoder.com/discuss/76845
腾讯一面挂经
https://www.nowcoder.com/discuss/78270
美团一面面经,Java后台开发
https://www.nowcoder.com/discuss/78977
美团二面面经,Java后台开发
https://www.nowcoder.com/discuss/79176

楼主还在整理一份后台开发的资料,不过整理资料比较慢,整理完了会另外发个帖子发给大家的。(挖坑中,不填别打我。。)

最后谢谢牛客网,从头到尾帮助了我非常非常多,也谢谢各位有耐心看完我的长贴哈哈,祝大家都有心仪的offer!

作者:jkgeekjack
链接:https://www.nowcoder.com/discuss/80156
来源:牛客网

个人简介

本人是双非末流一本,大三,CS专业,有百度实习经历

过程

先解释一下十面阿里,总共分为阿里云四面,蚂蚁两面,菜鸟四面;七面头条分为金融三面,抖音一面,效率工程三面;六个Offer分别是阿里、腾讯、头条、华为、蘑菇街、三七互娱。
从二月份在牛客网看到阿里云的招聘贴就投了,那是我最早投递的公司,当时也没什么经验,导致表现得很糟糕,最后四面跪,当时伤心到谷底,幸好跪得比较早,跪了之后简历被释放掉,还可以继续内推。整个春招持续了4个月,对自己意志也是一个很大的挑战。我也有幸能与那么多优秀的人一起并肩作战,让我坚持到最后一刻,感谢有你们。
这个春招也遇到了很多奇怪的公司,比如说美团不知为何不给内推,CVTE笔试刷掉有实习经历的,吉比特挂得莫名其妙,网易玄学招人,京东20分钟面试,华为聊天招人

结果

公司

状态

阿里

四面挂,芝麻信用复活二面,菜鸟offer

微众银行

已投递

美团

笔试挂

今日头条

金融三面挂,抖音一面挂,offer

百度

已投递

腾讯

offer

京东

三面挂

滴滴

已投递

网易

二面挂

网易游戏

转至运维已拒

海康威视

已投递

CVTE

笔试挂

小米

笔试挂

华为

offer

搜狐

已投递

携程

笔试挂

深信服

已投递

吉比特

一面挂

商汤

已面一轮,已拒

37互娱

offer

酷家乐

二面跪

蘑菇街

offer

面经

阿里巴巴

一面(36分钟)芝麻信用
1.hashmap和hashtable区别
2.为什么产生死锁
3.jvm类加载
4.java反射获取私有属性,改变值
5.反射用途
6.所用数据库
7.项目难点,问题
8.如何解决项目中遇到的问题
9.项目中遇到最自豪的地方
10.会什么算法

二面(44分钟)支付宝创新
1.讲项目
2.数据库乐观锁使用
3.状态机
4.如何解决状态机不对问题
5.如何分库分表
6.MySQL极限
7.HashMap源码
8.设计一个线程安全的HashMap
9.快排的实现,时间复杂度和空间复杂度
10.会什么算法
11.如何把项目变成SOA架构
12.Spring源码,最深刻的模块,aop用途
13.JVM内存模型
14.垃圾回收机制
15.项目中查看垃圾回收

三面(33分钟)菜鸟国际
1.项目中的权限管理
2.登录状态如何储存
3.session和cookie的区别,session如何管理
4.HashMap底层结构
5.synchronized关键字的用法
6.synchronized修饰类方法和普通方法的锁区别,获取类锁之后还能获取对象锁吗
7.类加载器的双亲委派模型的作用,能重复加载某个类吗
8.类加载器的类的缓存,key是什么
9.介绍Redis
10.如何将数据分布在不同的Redis
11.有了解过取余算法?
12.spring的apo实现
13.字节码结构
14.浏览器输入网址过程,结合springmvc

四面(36分钟)菜鸟国际供应链
1.HashMap在大量哈希冲突该怎么处理
2.红黑树比BST优点
3.MySQL为什么使用B+树
4.多个索引会有多份数据吗
5.数据库的隔离级别和解决的问题
6.数据库默认隔离级别,一定会产生幻读吗,怎么解决
7.输入网址到展示的整个过程,结合springmvc来讲
8.负载均衡的算法
9.哈弗曼编码,如何解决译码问题
10.实习会对工作有影响吗
11.用英文介绍一个项目
12.如何查看系统负载
13.描述一个解决问题的过程
14.如何把文件从服务器复制到本地,用什么命令

五面(27分钟)菜鸟技术部
1.当时怎么找到百度这个机会的
2.项目中用的哪些技术
3.项目如何设计流程流转,如果是你的话该怎么设计
4.MySQL使用的索引结构,查找效率
5.MySQL查询优化
6.MySQL慢查询开启,语句分析
7.HashMap查找效率
8.JVM内存模型
9.设计模式,策略模式的使用场景
10.如何确保单例线程安全
11.Spring的bean的默认范围
12.对Netty的了解
13.未来发展规划
14.如何让代码可读性更加复杂

六面(22分钟)HR面
1.说一下发展方向
2.说一下经验不足导致的问题
3.说一下挑战杯的工作内容
4.说一下你给挑战杯项目的主要贡献
5.实习时间
6.拿到了哪些offer,你是怎么考虑的
7.为什么不选择腾讯
8.腾讯技术栈和阿里技术栈的区别

腾讯

一面(支付)
1.jqc的介绍
2.如何确保多台机器不会重复消费
3.如何确保消费了反馈失效问题(用事务管理,先储存再消费,失败就回滚)
4.如何防止数据库单点问题
8.paxos算法
9.raft算法
10.spring的aop实现
11.三种操作,a:++,b:--,c:/2(只能偶数),求i变1的最少次数
12.人才培养(轮流尝试,提出任务,鼓励实现)
13.没有深度的广度没有意义,由广变宅,由浅入深
14.设计时需要经验但堤防经验主义
15.百度技术氛围比腾讯好
二面
1.手写多线程买票代码
2.手写ServerSocket使用代码
3.java有多少种线程池,固定线程池是怎样的
4.Collection的子接口
5.Map的接口,HashMap应用场景
6.Queue的父接口,使用场景
7.数据库主从复制配置
8.Spring的IOC优点,解决了什么问题(解耦)
9.Bean的生命周期
10.Bean的范围,gobal session的作用
11.手写SpringMVC流程
12.如何平衡生活和工作
13.职业发展规划
14.为何不考研
15.redirect和forward区别
16.大学中最大的挑战
17.加密算法
HR面
1.喜欢做什么
2.喜欢看什么电影,带着什么心态去看
3.会再回百度吗
4.还有什么面试
5.腾讯阿里选什么,为什么选腾讯
6.是否独生
7.家里人希望做什么

今日头条

抖音一面
1.手撕LFU,要求get和put都为O(1)
2.在一个环状的城市,小偷可以选择偷或者不偷任意一家,但被偷的房子不能相连,求最大价值
效率工程一面
1.储水题
2.如何找项目性能瓶颈
3.有多少种类型的缓存,从客户端到服务端
4.如何查看系统性能,性能指标
5.redis数据类型
6.redis的aof太大如何优化
7.mysql的主从复制
8.mysql的引擎,区别
9.https的建立链接过程
10.https的传输数据是否是对称加密
11.tcp拥塞控制
12.epoll和select
13.nginx如何处理连接
14.nginx如何做性能优化
15.apache和nginx区别
16.两支不均匀香,测出15分钟
效率工程二面
1.手写LRU
2.查看系统负载
3.进程通信方法
4.管道如何使用
5.socket建立过程
6.如何高效处理socket
7.NIO的原理和,连接切换方式
8.使用什么命令查看系统负载,第一行是什么
9.一个表user_id,order_date,要查用户订单,某一天订单,某个用户某天订单,如何建索引
10.复合索引的结构
11.redis的常用数据结构
12.zset的底层数据结构,跳跃表如何实现
13.redis如何持久化RDB
效率工程HR面
1.怎么找到百度实习和第一份实习
2.如何处理学业和实习
3.讲一下项目中沟通协作的过程
4.如何你是owner你是怎么设计这个项目
5.拿到了什么offer,如何考虑

蘑菇街

一面
1.凤聆的权限管理如何设计
2.如何将9s提升到0.3s
3.用没有了解过其他搜索框架例如solr
4.有了解过协程吗?轻在哪
5.jvm查看gc命令
6.如何解决jvm的问题
7.mysql in,not in,like走不走索引
8.开发环境,开发IDE
9.使用什么命令查看cpu和内存情况
10.如何查看进程的线程情况top -H -p
11.秒杀场景设计
12.秒杀时如果机器资源有限怎么办
13.可以保证实习时间
14.对自己未来的规划
二面(小程序部门)
1.父母对来杭州有没有意见
2.会考虑转正吗
3.老师或者同学会怎么评价,如何体现技术比较强
4.大学中最自豪的一件事
5.项目中解决的一个问题
6.Nginx超时怎么办
7.mysql索引相关
8.%匹配实现原理
9.获取www.baidu.com最后一个点的内容"com"最优方法,为何,时间复杂度,如何实现
HR面
1.深层介绍自己
2.对你影响比较深的一个人
3.想成为怎样的人
4.最有成就感的事
5.最近的挫折
6.怎么发现瓶颈
7.学校和工作环境有什么不同
8.周围同学比较,有什么优势

京东

一面
1.快排原理
2.HashMap底层结构
3.ConcurrentHashMap线程安全原理
4.类加载机制
5.左连接和右连接区别
6.tcp建立连接的方式
7.close wait和time wait在什么情况下出现
8.http组成
9.http头部,keepalive的意义
10.https流程
11.如何确保密钥安全,是否非对称加密
12.线程池的实现原理
二面
1.在百度学习到什么
2.对java的了解哪些方面
3.还了解过其他语言吗,不同语言只是不同偏好
4.aqs的具体实现
5.并发包用到那些
HR面
1.在百度学习到什么
2.为什么从百度离职
3.有什么优点和缺点
4.遇到问题是偏向解决问题,还是抱怨问题
5.能实习多久

网易邮箱

一面
1.java公司
2.dfs和bfs实现原理和应用场景
3.ArrayList的底层实现
4.Elastisearch的索引如何储存
5.JVM内存模型
6.java堆分代,对象分配
7.在项目中遇到什么问题,如和解决
8.对自己这个项目打几分,为何转项目
9.HashMao底层实现,介绍红黑树
10.String a="abc" String b="a"+"bc" a==b?
11.遇到紧急的需求该如何完成
12.手写ArrayList添加11个元素
13.n个0~9的数,找和为7的数对
14.MySQL的引擎,所使用索引的结构
15.B树和B+树的区别
16.代码优化地方
17.平时看什么论坛
18.自研JQC的实现原理,和kafka的区别
19.抢红包实现
20.如何传输密码(非对称加密,https)
21.https的证书在哪颁发
终面(HR+主管)
1.如何找到两个实习
2.学校允许实习吗
3.项目中的挑战
4.通过学习解决的最大一个困难
5.如何处理项目,学习,实习的时间
6.为什么离职百度
7.为什么得不到上司的信任,当时有更好的选择吗

网易游戏

1.如何保证项目扩展性,依赖问题
2.消息队列同时消费问题
3.进程的通讯方式?哪种最高效
4.本机socket需要经过协议栈解包吗
5.linux文件管理,文件类型
6.一致性哈希实现
7.统计海量词频最高10个单词,所用的数据结构
8.强类型/弱类型和静态类型/动态类型
9.JVM类加载器
10.查看机器性能
11.查看cpu负载,一般为多少,过高怎么解决
12.机器性能是如何读取的

三七互娱

一面
1.Bean的生命周期
2.Atom类实现原理
3.多线程实现
4.Thread和Runnable区别
5.volatile特性
6.happens-bofore原则
7.消息队列,kafka
8.如何确保形成安全
9.HashMap初始大小,红黑树何时退化为链表
10.Actor,Akka和RingBuffer
11.冒泡排序
12.JVM内存模型
13.垃圾回收机制
HR面
1.有没有面其他公司
2.薪资待遇期待
3.上一份工作为何离职

商汤

一面
1.看过JDK源码吗
2.HashMap增删查和数据结构
3.MySQL慢SQL查询和优化,如何排查问题
4.MySQL引擎和区别,引用场景
5.redis集群,如何拓展
6.mongodb和redis区别
7.单例模式的实现,是否只拥有一个实例
8.SpringCloud生态
9.介绍一下Elastisearch,原理和用途,分布式实时日志才需使用ELK
10.有用过线程池吗
11.介绍JVM垃圾回收机制

吉比特

一面(游戏运营开发,账号安全)
1.有参加acm吗
2.怎么去百度的
3.mysql用什么锁,行级锁有什么缺点
4.mysql优化
5.比较两个数相同位数
6.如何体现对技术的热爱
7.ArrayList和数组区别,调用add方法会调用哪些其他方法

个人感受

春招是一个很刺激且很折磨人的过程,你可能会遇到各种奇奇怪怪的公司,但只有不断提升自己的实力,才有更大可能拿到Offer,拿不到Offer的小伙伴也不要气馁,毕竟秋招才是重头戏,还有那么长的时间可以准备,我相信你春招过后也知道自己哪方面比较薄弱。我自己也是很幸运,在春招的过程中不仅收获到了Offer,而且在我最紧张,最低落的时候遇到了我的现女友,一个可爱的妹子,感觉是她带给我幸运。最后祝大家收获更多的Offer,也能遇到对的人。