春招面试实战记录-大数据开发相关岗位

时间:2024-01-22 19:18:06

岗位均是与大数据研发有关
1.腾讯一面
2.阿里电话一面
3.一点电话一面
4.宜信-征信管理部
5.北京奇虎360-大数据中心
6.华为-勇敢星实习招聘-京津冀-北研所
7.今日头条
8.去哪儿网

腾讯一面

应聘的是技术运营的暑期实习。一轮面试下来,感觉自己还是很多东西不熟练。竞争不过别人。
更:到现在没反应应该是凉了。腾讯考的还是基本技术能力。

  • GC

  • 接触过web应用的部署容器吗?您是指Apache或者是nginx吗?是的。nginx一台主机配置多个域名的时候,在nginx.conf文件中设计到的模块名叫什么?
    一开始我也没听懂问的是什么,重复问了几下之后才知道。我知道有这么一个模块,但是记不清是什么名字了。是server模块。下面是nginx.conf的结构说明。
    user www www
    events{}
    http{
    server{}
    server{}#在此配置访问端口 一个端口对应一个域名
    include vhost/*.conf;#在vhost文件夹下可以写同样的配置文件,只需要包含server模块即可。一般呢,一个文件就是两个server(一个域名两个server)。上面的server配80端口,下面的配443端口安装SSL证书,80到443用rewrite来做。
    }

  • mysql底层存储引擎有哪些?


使用Phpmyadmin来新建表的时候,会有这些引擎提供选择,默认是MyISAM。
常见的四种就是:

  1. MyISAM
    插入、查询较快,不支持事务,不支持外键(其他表的主键)。适合select和insert驱动的数据库使用。
  2. InnoDB
    事务型数据库首选。兼容ACID,支持回滚。对并发处理较好。
  3. Memory
    存在内存中,可以保有尽可能快的响应速度。内存中的数据表有可能会丢失,适合那些即使丢了表也不会产生实质的负面影响的应用服务。适用于数据量较小的情况。
  4. Merge
    是对一组MyISAM表的组合。删除Merge表不会删除内部的MyISAM表数据。常用与服务器日志表的存储管理。
  • 这里顺便插一个问题,关于数据库索引的问题,底层实现的数据结构。
    数据库索引的定义:一种帮助数据库高效获取数据的数据结构。
    底层实现:多数采用B+Tree的实现。也有B-Tree和B树。关于区别B树,B-树和B+树的区别
  • 面向对象的特性。
    继承,多态,封装
  • 接口和抽象类的区别
    终于理解了-系列
    接口是对动作的抽象,表示能做什么。
    抽象类是对根源的抽象,表示是什么。
  1. 接口的方法都是抽象的,抽象类可以由非抽象方法。
  2. 接口可以多继承(因为对象可以由很多种动作行为),抽象类不可以(因为根源只有一个)
  3. 接口定义方法,不实现方法。抽象类可以实现部分方法。
  • php超时怎么设置,是在服务端还是在客户端。
    我回答是在服务端,后来想了想不对,应该是在客户端。php里面对于前端和后端的划分不是说很明显,约定为,会输出到页面的叫前端。那么计算时间的逻辑就是在前端了。设置方式是set_time_limit(8) 8秒。

  • ajax了解吗?使用的时候会创建一个什么对象?
    这个之前是有印象的,但没答上来。我就顺着说了一下我项目中哪个功能点用到了ajax并且是怎么做的。ajax会创建一个XMLHttpRequest对象,用于与后台服务器交互数据,可以在不重载整个页面的情况下,对网页的局部进行更新。

  • 那么ajax是怎么进行异步加载的呢?
    这个我也没答上来,说实话我对ajax仅仅停留在使用阶段。。后来查了一下,不知道我下面的回答对不对,可以参考。js是单线程执行的,遇到ajax的代码,js会分析一下,ajax是异步还是同步的呢。这个属性可以通过async来设置。如果ajax设置为异步,那么js代码就直接跳过ajax部分 执行后面的代码,而不等ajax执行完毕。如果ajax设置为同步的,那么js就会等待ajax部分执行完成,再接着执行后面的代码。可以参考链接

  • 对于Vue、AngularJS 数据绑定的理解
    数据和视图的绑定,意思是说当对象的属性发生改变,其对应的UI也会随之改变。

  • 数据绑定是怎么实现的呢?
    放个链接
    依靠Object.defineProperty()的get和set函数。当视图元素与数据进行了绑定声明之后,会实例化一个依赖对象new Dep(),观察者会从dep那里订阅该数据,当数据发生改变之后,dep会通知观察者,告诉他数据发生了改变。观察者将更新后的数据发送给视图。

  • 快排的思想

  1. 从数列中选一个数作为基准,一般可以选第一个。
  2. 比基准小的放左边,大的放右边。
  3. 对左右区间重复第二步,知道区间内只有一个数。
  • 什么是java的不可变类Immutable和可变类Mutable
    举个例子,String和StringBuilder,两个类功能上很多相似点。String是一个不可变对象,对于String的每一次修改都会产生一个新的String对象(不严谨)。StringBuilder是一个可变类,对象的每一次修改是对其本身的一个修改,不产生新的对象。
  • 那么如何设计一个不可变类?
    对象一旦创建,便不可被修改。
  1. 属性设为private final。类也是final的,不可被继承,被重载,
  2. 只保留类似getter的访问方法,无setter。并且,如果成员变量是一个引用类型,那么getter返回的是该引用对象的一个拷贝(这个才是最关键的地方)。

阿里电话一面

网申投的大数据。内推(还是需要测评,笔试,面试,所谓的内推就是会增加简历筛过的可能)。官网有个编程能力测评,就一道题,答案没来得及提交,交卷了。后来还是给我打电话安排面试了??不过打来电话的是杭州菜鸟的java开发-.-委婉表示了不想做,面完当晚上官网流程就变成了已回绝。后来,五一后,官网又给续了命?重新给内推没过的同学增加了普通招聘流程?

  • 线程安全的理解。如何可以避免线程安全的出现。
    50道Java线程面试题

  • TCP三次握手四次挥手
    第一次:客户端发送syn(syn=x)包到服务器。SYN_SEND
    第二次:服务器收到syn后返回ack(x+1),也发送一个syn(y). SYN_RECV
    第三次:客户端收到后,再向服务器发送ack(y+1).ESTABLISHED
    三次而不是两次?:防止失效的连接请求又突然传到服务端。
    第一次:主动关闭方发送fin 不再发送数据 但是可以接收
    第二次:被动关闭方收到后返回ack(fin+1)
    第三次:被动方发送fin 不再发送数据 可以接收
    第四次:主动方收到 返回一个ack(fin+1)
    ack+1 +1的目的是什么 确认是自己最近一个发送的syn
    TCP UDP区别
    TCP: 面向连接,可靠的数据传输。传输安全。可靠,在于无差错,无重复,不丢失。
    通常所说的网络编程基本上都是TCP网络编程。FTP 21,TelNet 23,SMTP 25,POP3 110,HTTP
    UDP:非面向连接,不可靠传输。传输快,安全性一般。

那面向连接和非面向连接的区别:
前者需要通过三次握手,建立一条数据传输通道,在断开连接之前,通道一直存在。并且整个通道的数据传输可以被监控。
后者不需要建立连接,可以直接发起通信。数据进行不加以监控的传输。

  • 汇编?不知道问的啥TOT。

  • 前端后端的理解

  • 贝叶斯网络?最好要掌握几个神经网络算法原理

  • 喜欢哪个数据结构,还没等我说就问我神经网络算法?

  • 计算机网络7层模型 即OSI模型
    (物理层,数据链路层),网络层,传输层,(会话层,表示层,应用层)
    TCP,UDP是传输层的协议。
    交换机,比较广泛用于数据链路层。也叫二层交换机。也有其他层的交换机。
    路由器,路由和转发。路由是找到一条路径,从一个路由器到另一个路由器。转发是将数据完成从一个路由器的输出端到另一个路由器的输入端。作用在OSI的网络层。

一点资讯电话一面]

。。。一点是一家做内容资讯类的网站,定位准,方向明确,同行有《今日头条》APP,APP做的要比《今日头条》干净。APP近1000万下载量,比不上头条。

  • HIVE表被锁住,怎么读?

  • HBase读取数据有几种方式?

  • HIVE内部表外部表区别。

  • Nginx基本知识

  • java 加载一个类的流程 类加载器
    隐式装载
    显式装载
    bootstrploader
    etclassloader
    appclassloader 默认的

  • 在线编程
    1.有一个长为n的数组A,求满足0≤a≤b<n的A[b]-A[a]的最大值, 给定数组A及它的大小n,请返回最大差值
    使用(贪心算法)来解。

  • 其他没记下来。

宜信-征信管理部

宜信。做互联网金融,榜单前十。有时能与蚂蚁金服位列前五。互联网金融的公司特征都是钱多。
没涉及到基本的技术问题,全程怼项目。
宣讲之前网申简历。宣讲当天也带了一份简历。宣讲结束,傍晚收到HR电话约面试时间,电话或者视频面试。
当天是周五晚上,约在了下周二下午。2:30了,没人理我,我打过去给HR然后时间改在了3点3点07电话来了。聊到了3:48。过程就是顺着我的项目一个一个说。面试官也会根据我的项目往应聘岗位上扯。过程没问到我基础知识。都是小项目的介绍。都是自己做的,说出来非常容易。
当天傍晚收到HR电话,问问就职意愿啥的,肯定愿意了。按理说第二天应该有反应的,没有。然后周三傍晚我加了宣讲时候认识的漂亮的HR姐姐,问她一些情况,本来是想问公司的待遇的,结果她非常热心地帮我查了一下面试结果,告诉我通过了。
没多久,之前的HR来电话了,问实习开始时间一些问题。实习期挺长的6个月。薪资240/天。一个月300餐补。自己租房子。
更新
5月3日收到邮件offer

北京奇虎360-大数据中心

没涉及到基本的技术问题,全程怼项目。
笔试完成不久就邮件通知结果了,安排了视频面试。面试是一天完成的,感觉上360还是比较效率的一个公司,当天HR小姐姐打了很多电话,非常负责任的在上午9点开始提醒记得上午11点20的面试。在11点左右又来电话确认一下。面试结束之后还会打电话告知面试已经结束,避免我不必要的等待。
形式
视频面试

岗位
数据开发(大数据)

一面-技术
在牛客的视频面试平台。上午11:20,一面面试官(男)迟到了一会吧,不过没事,人挺好的,让我介绍一下我做的项目。我有三个项目,两个跟大数据无关的,一个跟大数据有关的。让我大致说一下三个项目,然后让我重点介绍一下我最深刻的一个项目,我说了我自己做的非大数据相关的项目。blabla。然后一边说,他也问了自己想了解的地方。重点在隐私和NLP方面探讨了一下。然后侧面了解了一下我的学习能力。他的反馈是我比之前面的两位应聘者要好一点(不知道是不是都这么说),然后直接告诉我面试通过了。

二面-技术
14:00。面试官(女,应该是主管级别的)重点了解了一下我的大数据相关的项目,深入探讨了一下。然后整体感觉难度中等偏上。面完没有表示出满意或者不满意的态度。

三面-HR
没多久打电话,让我进聊天室。小姐姐真好看。问的问题挺多的,基本上都是关于个人的发展类的问题,考不考研,实习时间,学习能力等。

电话
最后来电话告诉我面试结束,等通知结果。当前时间是4月25日,大概5月中旬出结果。应该是进行内部评分排序吧,择优录取。
更新
5月7日收到意向offer
5月11日收到offer

华为-勇敢星实习招聘-京津冀-北研所

没涉及到基本的技术问题,全程怼项目。
一面-技术
现场面试,6号面试官,一个大屋子有很多桌子,应聘者和面试官,一对一面对面,一张桌子。见我简历上有项目,让我介绍一下。blabla。。挺长时间
看我成绩单,成绩不怎么好啊。。(如果绩点不高就不要把成绩显出来)
面试官的意思:觉得我动手能力比较强,自己做的两个项目虽然比较小,但是都是自己主动想做并且实际实现了,而且还部署上线了,对这点评价很高,虽然成绩不好,但不至于影响面试结果,当时直接告诉我通过了一面,等综合面试通知。
性格测评
会刷一些人,如果照自己实际情况很容易不通过。毕竟华为公认工作强度较大,如果想通过性格测试就要好好做。
二面-综合面试
一大半时间在问项目,跟一面差不多,甚至比一面技术面还技术面。
最后时间问了个人意愿,实习时间这些东西。
更新
华为池子很深。我去一面的时候一个学姐参加二面,五一之前她已经收到实习offer。

今日头条

已经是4月末,去官网看了看,还有在招的实习,于是投了三个职位。。隔两天,HR打电话约面试时间。她意思是需要现场面试,不过可以先安排个视频面试。
一面-技术面
很准时。问的东西很多,面完之后有点累,内容没有很快的记录下来,后来就多数都想不起来了。
投的岗位是数据研发,上来就问我愿不愿意用 python做后端?

  • 数据结构
  1. 使用两个栈,完成如下需求:增加可以获取栈的最小值的方法。
    要用AVL,结合堆的知识来做。回答的不是很好。
  2. 变形的二叉搜索。是一个循环队列。比如67812345 。思想回答对了,让我编程实现。编码能力差,没写出来。
  • 操作系统进程线程,内存模型,堆栈(这个堆栈与数据结构的堆栈概念不一样),进程通信,线程安全。
  • JVM内存模型
  • nginx如何进行资源定位。
    浏览器键入url(统一资源定位),到浏览器加载完整个页面,期间整个流程啥样的。网络中发生了什么,服务端发生了什么,nginx是如何根据url找到对应的资源文件的。
  • 程序是如何跑起来的
    大致就是在问:一个程序,由代码组成,代码一般都是高级语言编写,计算机并不能直接运行,需要翻译成机器能够识别的比方说汇编指令,通过一连串汇编的指令完成程序需要完成的功能。

去哪儿网

补写的面经。印象比较深的几个问题。投的是大数据研发。面完的感觉是比较基础,如果能在事先把大数据框架重新搭建一遍,能更加熟悉Yarn,Spark框架流程,回答问题会更好一下。

  • php的empty(0)和empty(\'0\')问题

  • Hive
    元数据存在mysql表中。从本地加载数据,Hive存数据的几种格式和区别。

  • Spark的DAG,宽依赖窄依赖

=====================
我的其他相关文章:

  1. Hive知识汇总
  2. 大数据研发相关-面试拾遗(备战积累的知识点)
  3. 2018年春招面试实战记录-大数据开发相关岗位
  4. HadoopMR-Spark-HBase-Hive

欢迎关注微信公众号“IT客“