zoukankan      html  css  js  c++  java
  • 2018年春招面试实战记录-大数据开发相关岗位

    岗位均是与大数据研发有关
    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客“

  • 相关阅读:
    建立Azure Dev Ops持续集成和持续交付(CICD)(四、使用 Azure Pipelines 建立CICD)
    建立Azure Dev Ops持续集成和持续交付(CICD)(三、准备好Azure DevOps的帐号并上传代码)
    建立Azure Dev Ops持续集成和持续交付(CICD)(二、准备好ServicePrincipal并配置相应的权限)
    建立Azure Dev Ops持续集成和持续交付(CICD)(一、准备好Azure Web App资源)
    Jquery.Datatable 控件后端分页实例 (后台使用ashx、aspx-webmethod)
    c# 将object尝试转为指定对象
    c# 生成随机数
    http跳转https
    解决sqlserver数据库表空间不自动释放问题
    windowsSevice程序和topshelf程序创建服务对比
  • 原文地址:https://www.cnblogs.com/simuhunluo/p/9007963.html
Copyright © 2011-2022 走看看