结束秋招,发一波面经,回馈牛客~

(仅适用于学渣的经验和心得,大佬就别看啦~)
从八月底开始着手复习面试到现在,一个月的时间,酸甜苦辣咸五味俱全,压力一点不比考研的时候小,感觉除了高考以外,自己从来没有这么拼过!每天除了笔试就是面试,电话24H待机,生怕错过任何一个电话(然而却有一堆的骚扰电话!!!)。有时候早上八点就要起来去面试,晚上十点才能回到寝室,甚至有时候一天一顿正餐都吃不上。回到寝室累的只想躺尸,每天都对自己说再也不想面试了!然而第二天却又拖着疲惫的身体,灌下一罐咖啡,奔赴新的战场。现在终于可以结束秋招了~~~(目前已经拿了一些offer,还有一些还在等,攒一波RP!)
先说一下自己的心得
第一:海投!!!投的公司你不一定想去,但是大量的面试经验却可以给你提供很大的帮助。
1.大量的面试可以让你总结出常见的面试问题,比如java的GC/JVM/并发包/集合类等。因为我复习的时间很短,因此先补最常问的问题绝对是最高效的办法,但如果你有大量的时间,系统的复习一遍各种知识肯定能让你基础更牢固。除此之外大量的面试还可以帮你查漏补缺。
2.大量的面试可以让你对自己的项目了解更深入,每次面试中面试官或多或少都会对你的项目提问,有的会刨根问底,有的会指出不合理的地方,有的会让你优化等等,经过大量的问答和总结,相信之后的面试中你会对你的项目游刃有余。
3.大量的面试可以让你了解常见套路,比如:你为什么不留实习公司?(即要表达你想来当前公司,又不能猛踩实习公司,还要说清为什么不想留...ORZ) 你手上还有什么offer?(我觉得这个和“你有几个前女友”一样是一道送命题,我个人觉得比较好的回答是,说一个跟这个公司差不多的offer,其他就别说了)
第二:引导!!!每个人有自己的优势,面试中你要尽可能的把面试官往你的强项上引,把你的强项充分的展现出来,并把你的劣势藏起来。比如你项目丰富,理解的也深,那么自我介绍的时候就要多说项目,把面试官的目光引导你的项目上。一次面试大概就30 min - 60 min,对于基础薄弱的朋友们,你的项目被问的时间越长,那么基础被问的时间就越短,你就越少可能会挂在基础上!比如你就是算法***,那你就要强调你的算法,懂什么算法,拿过什么奖,不惧手撕代码之类的。但如果你说你什么都强,看看第一行啊!“仅适用学渣的经验和心得,大佬就别看啦!!!”。最后不得不强调,这是一种取巧的办法,基础还是很重要的!!!
一点小小的建议
1.好好准备一下自我介绍,大致写一个模板出来,并在面试中不断地完善。
2.自己写个博客之类的,把复习的知识点都总结起来~比如我用的gitbook,有想看的可以私信我~
3.写一个项目介绍的模板,比如我从:项目背景/做了什么/遇到什么问题and如何解决/如何优化 几个点来考虑。介绍的时候可以只说背景和做了什么,其他几个预先准备好,总会被问到的。其实这套项目介绍流程是我在华为实习答辩的最大收获~

下面是面经部分:
阿里 (已出结果)
一面
不记得了
二面 1h
1.CPU架构
2.人生规划
3.一个A语言编写的代码 如何通过程序 转成B语言编写的代码 (死在这个问题上了,当时在纠结STL和JAVA的库完全不一致怎么转换...)
4.项目

小米 (等待)
一面 40min
1.项目
2.查询某一时刻最近100W条日志(日志有type字段),出现最多的type top10
考察 1.存最近的100W条日志 2.找出出现最多的type top10
二面 45min
1.项目
1.求单向链表倒数第N个结点
2.对单向链表归并排序
三面
1.项目
2.ES的routing 跨index查询如何聚合 日志占磁盘大小 分片复制
3.一个3*3矩阵分别为(0-8),给出初始状态和目标状态,每次只能移动0,0可以和上下左右其中一个进行交换,写算法判断是否可以达到目标状态,以及最少移动次数(BFS)。

拼多多(已出结果)
一面 30min
1.项目
2.左连接 右连接
3.归并排序
4.数列求三个数的积最大
二面 10min
1.项目:分布式存储为什么快,分布式存储如何挂载
2.一分钟写出知道的linux命令
三面
1.HR面

远景能源(已出结果)
一面
1.1到60亿数字,有一个变成了另一个,请找出不存在的
2.Linux内存映射
3.链表倒置递归 非递归
二面
1.Spring IOC 核心技术是什么 为什么可以IOC
2.Spring AOP 核心技术是什么 为什么可以AOP
3.hibernate
4.反射
5.线程interrupt之后是什么状态
6.很多忘记了,那天很懵逼,啥都记不清了
三面
HR面
四面 5min
高管终面

网易(等待)
一面
1.项目
2.ES的工作原理 倒叙索引结构 模糊匹配实现原理
3.贪心匹配 非贪心匹配 *?
4.GC
5.InnoDB MyIsam区别
6.索引(a,b) select * from table where a > 10 and b = 10 执行什么索引(执行a,不执行b)
7.场景题:如果服务器负载高,如何排查
8.场景题:如果ES进程CPU占用率高,如何排查
9.N个线程,如何确保主线程在所有线程都执行完之后再执行
10.场景题:现在有日志:姓名 年龄 性别 自定义字段,如何查询自定字段的数据。
11.职业规划
二面
1.项目
2.redis
3.TCP
4.rustful API优点
5.json和xml
6.restful api和传表单区别
7.json格式缺点 什么时候用json 什么时候用序列化
8.HTTP缺点
9.Xms Xmx Xmn
10.线程状态
三面
HR面

京东(已出结果)
一面
1.项目
2.JAVA了解什么
3.除此之外还学过什么
4.介绍武汉部门,问是否愿意选择武汉 - 不愿意 - 转推荐 - 挂掉 (这个真的很懵逼 ,要技术挂我 我认,但却因为地区....)

腾讯(已出结果)
一面 40min
1.项目
2.fluentd瓶颈在哪 - 大量数据,无法事实,会出现timestamp比日志时间延迟。
3.ES的作用 - 分布式检索 / 分布式存储
4.ES的工作原理 node shard replica routing
5.ES集群部署
6.Logstash为什么性能差 差在哪里 Logstash集群是什么样的
7.日志量 占磁盘大小
8.可视化查询做了什么
9.告警有什么维度 - 这是垃圾邮件 无意义 -
10.如何理解 运营开发
11.什么是k8s doker
12.如何实现500台主机批量停止某个服务 - ansible
13.对python了解多少 如何用python写zabbix的脚本
14.能否来提前实习(一波谈笑风生,回去“岗位不匹配”!!!)

美团(已出结果)
一面 30min
1.项目
2.多态
3.线程安全 volatile原理 应用场景
4.并发包,线程池
5.死锁 如何避免
6.堆排序
7.并发和并行
8.github
9.Spring Hibernate
二面 30min
1.项目/ES遇到什么问题/哪个项目印象最深,遇到什么问题/WinDbg
2.集合类
3.愿意做哪个方向
4.还学过什么
5.还有什么offer
三面 1h (全程被怼,死的很惨。。。)
1.画Linux虚拟内存图  Linux内存里有些什么
2.进程间通信 对哪个熟悉
socket流程,每一步做了什么
共享内存是什么原理
3.多路IO复用
4.设计一个:门 会自动报警 - door父类 报警接口
5.泛型 为什么要有泛型 泛型的原理
6.四层模型 http向下每一层封装了什么
转发 和 路由 分别在哪一层
7.什么样的sql是一个好的sql
8.table A(一亿) table B(200W) 找出交际
给定:select A.c, B.c from A,B where A.c = B.c
时间复杂度是多少 如何优化 如何建索引 索引有哪些类型 用sql写hash
9.如何通过操作web操作日志 判断是爬虫 (ip,cookie,点击)
10.人生中什么事对你影响最大
11.人生规划
12.坚持三年以上的事情
13.作息时间
14.自己的优点和缺点
四面
hr面

滴滴(等待)
一面 1h
1.项目/ElasticSearch
2.KMP算法
3.后根遍历 非递归
4.实现堆栈的push pop
5.打开网页的流程
有很多服务器:广告 图片 等等 服务器如何把这些数据返回给浏览器
二面
1.项目
2.快排
3.一堆数 一个不重复 其他两两相同,找出不重复的
三面
1.项目
2.成绩
3.你和同学比,优点在哪
四面
1.职业规划,想在滴滴得到什么
2.如何评价华为
3.两份实习对比
4.挑战最大项目是哪个,学到了什么

Bilibili(等待)
一面 30min
1.ElasticSearch
2.开箱装箱原理
3.空的构造函数做了什么,如果有个私有成员变量呢
4.父类的方法可否被子类overwrite 为什么 静态方法呢
5.GC 什么时候回收对象
6.JVM内存区域
7.Synchronize 线程同步其他方法
8.集合类 hashmap和hashtable区别
9.值传递 引用传递
10.有没有做过网络开发,有没有做过Rest API开发
11.HTTP用什么实现的 挥手握手
12.还用过什么语言做项目 C++局域网监控
13.socket
14.线程池如何实现
15.问了git里很久以前写的一个Android项目
二面 20min
1.项目
2.还有什么offer
三面
1.项目
2.如何实现磁盘隔离 磁盘读写的过程
3.现在有大量的查询和插入,想要安全高效的IO,磁盘如何设计?
4.职业规划
5.linux内存管理
四面
HR

ThoughtWorks(已出结果)
笔试
羽毛球馆
一面
1.讲思路
2.编码新需求:优惠
3.项目
4.还学什么
二面
HR面
1.英语自我介绍
2.还有什么offer

招银网络(等待)
一面
1.项目
2.Spring
3.Hibernate 优点 缺点
4.JVM内存
5.还对什么有了解
二面
1.项目
2.学过什么课
3.进程调度
4.进程和线程区别
5.进程通讯
6.TCP和UDP
7.打开网页流程
8.TCP三次握手
9.GC
10.手撕代码:计算表达式
11.ES基于什么开源项目的
12.JSON和XML区别
三面
1.项目
2.EFK架构
3.对Iaas的理解
4.实习学到了什么
5.项目遇到了什么困难
6.Openstack的缺点
7.ES工作原理
8.ES的index/type/document 和数据的DB/table/行 的对应关系
四面
1.想做什么方向
2.介绍一下实习项目
3.职业规划
五面
HR面

中国电信IT研发中心(已出结果)
一面 20min
1.项目
2.Spring
3.Servlet
4.GC
二面
1.项目 项目瓶颈
2.如果网络波动 如何优化
三面
HR面

祝大家都能拿到心仪的offer!!!

----------------------------------------分割线 2017/9/28---------------------------------------------------------------------------
武汉地区,刚收到了滴滴的offer,终于有个杭州的offer了~
补一个Hypereal的面经,因为刚突然给我发了offer~
Hypereal
一面
1.项目
2.类加载器,为什么要有类加载器
3.内存泄漏
4.GC 为什么 Survivor分切两份
5.JVM内存
6.线程的创建方式 各有什么区别
7.集合类哪些是线程安全的 ConcurrentHashmap实现
8.序列化,反序列化如何实现
9.事务ACID 状态一致性

全部评论
亲,你的博客是多少的呀 可以分享一下吗`~~
点赞 回复 分享
发布于 2018-04-04 10:38
打捞一下打捞👾👾
点赞 回复 分享
发布于 2017-09-28 18:15
你好,华科大佬🤗
点赞 回复 分享
发布于 2017-09-28 02:28
赞,牛逼
点赞 回复 分享
发布于 2017-09-28 01:47
厉害了,我的大佬,年这么多,大大小小,体验生活了😊
点赞 回复 分享
发布于 2017-09-28 00:35
学长能留个扣扣请教下嘛
点赞 回复 分享
发布于 2017-09-28 00:35
过来膜拜一下大佬
点赞 回复 分享
发布于 2017-09-28 00:08
666
点赞 回复 分享
发布于 2017-09-28 00:08
很不错的建议,赞!
点赞 回复 分享
发布于 2017-09-27 23:57
我去 offer收割机。。。
点赞 回复 分享
发布于 2017-09-27 23:55
强啊。。。。。。大佬
点赞 回复 分享
发布于 2017-09-27 23:53

相关推荐

1)手撕:给定字符串,求不含重复字符的最长子串长度,并打印这个子串//哈希Set配合双指针private static String findLongestSubstring(String s) {        int n = s.length();        int left = 0;        int maxLength = 0;        String longestSubstring = "";        Set<Character> charSet = new HashSet<>();        for(int right = 0 ; right < n ; right ++){            while(charSet.contains(s.charAt(right))){                charSet.remove(s.charAt(left));                left++;            }            charSet.add(s.charAt(right));            if(maxLength < right - left + 1){                maxLength = right - left + 1;                longestSubstring = s.substring(left , right + 1);            }        }        return longestSubstring;    }2)如何设计一个秒杀系统?从以下角度考虑:1.高性能架构;采用分布式架构,消息队列来削峰填谷,服务的降级和熔断 2.高并发的处理能力:商品库存扣减的多线程安全问题,采用redisson分布式锁,缓存预热3.用户体验升级:websocket实现秒杀倒计时同步,消息队列实现秒杀结果实时反馈,针对ip地址,设备指纹和访问频率的限制实现防作弊系统4.数据一致性保障;数据库分库分表,本地消息表5.监控报警:监控系统,报警系统,日志系统,异常日志收集,分布式追踪系统6.安全防护、成本控制3)String StringBuffer StringBuilder区别String是不可变类,线程安全,每次修改字符串都会创建新的字符串,效率比较低StringBuffer是可变类,直接在原字符串上修改,使用了Synchronized实现同步,效率也比较低,适合多线程场景StringBuilder是可变类,线程不安全,效率比较高,适合单线程场景4)数据库字段char和varchar区别char:定长字符串,存储长度为1~255个字符,存储空间固定为255字节,不足用空格补,适合固定长度的字段,便于数据库读取和优化varchar:可变字符串,存储长度为1~65535个字符,存储空间为实际长度+长度字节5)索引失效的情况索引失效是指数据库在查询过程中无法有效利用已建立的索引,导致查询性能下降,甚至退化为全表扫描的情况。查询条件中使用了函数或表达式对索引列进行操作;使用了OR条件且未对所有分支列建立索查询条件中使用了NOT、<>、!=等否定操作符;对索引列进行了模糊查询(如LIKE '%abc%'),且通配符位于开头;查询条件中列的顺序与复合索引的列顺序不匹配;或者查询时数据类型不匹配导致索引无法使用。6)数据库的事务隔离级别读未提交:允许读取尚未提交的数据,可能导致脏读、幻读、不可重复读读已提交:允许读取已提交的数据,不能保证数据一致,可能导致幻读和不可重复读可重复读:允许读取已提交数据,可能导致幻读串行化:保证数据一致性,但是并发度和性能低7)Redis的常用数据类型,分别存储哪些东西?String:存储字符串,比如用户名、密码和验证码等哈希:哈希表,可以存储用户信息,商品信息等List:存储有序的元素,比如消息队列和日志记录Set:集合,可以做去重排序或求交集等Zset:带得分排序的集合,可以做用户或者流量等的排行榜8)Redis的锁机制基于SETNX命令,将锁名称作为键,客户端唯一标识(UUID)作为键值,使用完锁后DEL释放锁    因不可冲入可能存在死锁和不及时释放锁的情况,可以释放锁时检查锁值是否为自己的UUID以及添加过期时间基于Lua脚本,使用原子SET命令和Lua脚本的事务性,但仍存在锁续期困难和业务超时锁释放风险基于Redisson的分布式锁,支持可冲入锁和自动续期,提供公平锁、联锁和红锁9)HTTP1.0 2.0 3.0 区别HTTP1.0:默认为短连接,每次请求都需要建立TCP连接,并通过Connection: keep-alive头来实现持久连接,不支持管道    化,主要使用If-Modified-Since/Expires来做为缓存判断的标准;HTTP2.0:采用二进制格式而非文本格式,解析更加高效,支持多路复用允许单个TCP交错发送多个请求和响应,引入HPA    CK压缩算法,对请求和响应的头部信息进行压缩,消除冗余,允许客户端为请求设置优先级HTTP3.0: 最新的HTTP协议,基于QUIC协议,QUIC使用udp传输数据,不存在队头阻塞问题,首次连接后具备0RTT优        势,减少延迟,允许网络切换时,将连接迁移到新的IP地址,默认采用TLS加密,保证数据传输的安全性10) TCP的三次握手和四次挥手,为什么需要?三次握手:客户端向服务器发送SYN表示请求同步,服务器向客户端发送SYN+ACK表示确认收到同步请求,可以确保客户    端的发送能力正常,客户端向服务器发送ACK表示确认,可以确认服务器的发送和接收能力以及客户端的接收能力正常,   连接建立,通过三次握手能够保证通信双方的接收发送能力正常四次挥手:客户端发送FIN+x序列号表示请求关闭连接,服务器发送ACK+x+1表示确认收到,客户端向服务器的通道关        闭,服务器发送FIN+y序列号表示请求关闭连接,客户端发送ACK+y+1表示收到,等待2MSL没有收到回复后关闭TCP连接,因为TCP是全双工的,双向链路分别需要发送和接收两次,所以是需要四次挥手。11) 从输入网址,到最后访问页面的全过程首先输入URL,进行URL解析,准备发送http请求在请求之前,先本地查看浏览器缓存,如果缓存有该资源,直接返回,否则继续准备请求发送请求之前,进行DNS域名解析,按照本地缓存,本地HOST,路由器缓存,DNS服务器,DNS根服务器顺序,直到查        询到URL对应的IP地址三次握手建立TCP连接构建请求并发送,包括请求行,请求头,请求体,并把和该域名相关的cookie放入请求头,构建HTTP请求,如果是https        还要进行加密服务器处理请求,生成对应的响应并返回相应资源四次握手关闭TCP连接浏览器接收到响应后进行解析处理,如果是字节流可能是下载管理器进行下载,如果是html页面就是进行渲染生成页面。
查看11道真题和解析
点赞 评论 收藏
分享
04-09 17:45
已编辑
电子科技大学 C++
点赞 评论 收藏
分享
评论
26
205
分享

创作者周榜

更多
牛客网
牛客企业服务