zoukankan      html  css  js  c++  java
  • 印象比较深刻的几次面试

    华为的hr面

    询问我的个人职业规划,之前完全没准备,发了几秒钟的呆后回答说找家公司先干着

    百度的二面

    很厉害的面试官,尝试了5,6个方向来考察我,但是没有一个方向的回答令他满意

    1.Java的类加载过程

    2.TCP/IP协议有几层,路由器工作在那一层

    蘑菇街

    很nice的面试官,面完我之后跟我说:如果你是本科生我就让你过了,但是你是研究生,对你有更高的期望,希望你这几个月好好看书,明年春招的时候,欢迎你再次应聘

    1.100W个三维向量,如何从中找出和指定向量距离最近的向量?

    我想了几分钟没有结果,面试官最后告诉我说用kd-tree,我立刻反应过来了,因为我以前帮同学写过这个代码

    其实如果能把这个问题转换一下,变成:三维空间中100W个点,找到与给定点距离最近的点。那我应该就能反应过来,使用3D图像处理里的八叉树

    2. 使用Java的时候,如果会大量产生快速死亡的小对象,那么会频繁触发GC降低性能,问如何改进?

    我第一反应是使用对象池,但是面试官表示这个思路不好,具体实现的时候会有很多dirty work

    考虑再三没有更好的办法,面试官给的关键词是DirectByteBuffer,回头看了一下大概是在C Heap而不是Java Heap里分配内存,节省了开销

    3. 最后还给我列了几个关键词希望我能认真研究一下

    hadoop/kafka/spark/hbase/spring

    实话说很感谢这个面试官,但是我当时感到失望心情非常低落(手上一个offer也没有),没有谢谢他,现在想起来有些歉意

    大众点评

    二面的面试官喜欢问项目,但是我实在是没做过什么比较好看的项目,

    然后又问我读了这么多技术书籍,在读书的过程中有什么收获吗?我随便回答了几句,他并不满意

    问了十分钟,就让我走了

    中国电信IT研发中心

    很少见的二对一的面试

    我原以为中国电信是只用IOE的,没想到一面面试官居然抓着我简历上写的“通读Redis源码”这一条使劲问,失敬了

    二面还要调查家庭背景,父母姊妹是干嘛的一阵猛问

    美团

    连续三面,从下午三点到六点,最后一面的时候我已经快要饿晕了,但是最后拿到了offer,一切都是值得的

    一面

    1.自我介绍的时候我说我熟悉数据结构,然后面试官立刻让我介绍一下红黑树的特点,当时我就尿了

    2.在纸上写代码,找出给定的字符串中连续重复子串的最大长度与重复的字符,很简单的代码

    3. 写个联合查询的SQL语句,我不会

    4. 进程间通信有哪些方式,如果要传递较大量的数据,用哪种方式最好?

    二面

    1.在纸上写代码,找出一个长度为M的无序数组的头N大的元素,第一反应是用堆排序,面试官笑着让我想想有没有更好的思路,我突然想起以前在算法导论上看到的一种类似于快排的算法,平均时间复杂度是O(M),跟面试官描述了一下思路后他表示满意,要我在纸上把代码写出来,我尝试着写了一半然后放弃了

    2. 看到我简历上写着“通读过Redis源码”,先让我介绍一下Redis的特点,然后开始问I/O多路复用,阻塞非阻塞,异步非异步的区别,然而我什么都不知道,他建议我了解一下NIO/AIO/BIO

    三面

    1. 在纸上写代码,有一个已经排序的数组,其中可能有重复的元素,给定一个输入,要求找出这个输入在数组中的区间

    改进的二分,但是我手写代码的功力太差了,写了半天才勉强写出来

    2. 实现一个LRU Cache

    3. 职业规划

    前几天手上一个offer都没有,被面试官各种鄙视的时候,心情非常沮丧,想到自己为了找工作提前几个月花力气看的书写的代码,似乎都白费了

    然后面试回来的路上听到一段歌词,眼泪都掉下来了

    一天宛如一年
    一年宛如一天
    任时光流转
    我还是我
    一遍用了千遍
    千遍只为一遍
    当回忆久远
    初心始现
    我做了那么多改变
    只是为了我心中不变
    默默地深爱着你无论相见不相见
    我做了那么多改变
    只是为了我心中不变
    我多想你看见

    滴滴出行

    一面

    要求在纸上写出大整数相乘,思路非常明确,用数组模拟每一步的乘法运算,中间注意进位处理即可

    之前写过好几次,但是这次居然写得非常乱七八糟

    二面

    要求在纸上写出N进制数的减法

    跟一面的题目类似,也是用数组模拟减法操作,由于这是N进制的数,所以具体操作需要格外注意

    而且减数/被减数/计算结果可能是负数,这是需要特别注意的

    我只写了个大概,细节绝对是错的,实话说,我自己都不满意于我自己的表现

    但是,面试官居然放我过了

    三面

    面试官是个中年人,感觉像是高层

    1.单链表逆序,经典的面试题目,但是他妈的我又没写清楚,我真是服了我自己了

    2.数百万的key-value pair,用c语言实现一个数据结构存放这些数据,并且支持并发的增删改查

      我一开始说这基本就是一个数据库了,如果内存有限的话,可以用b+数在硬盘上持久化这些数据,这样可以实现高效率的增删改查

      面试官补充说内存足够大,我就说这个可以直接用stl中的map容器来存放这些数据,但是不知道map是不是线程安全的,接着直言我对c语言不是很熟悉,如果是用Java的话我会采用ConcurrentHashMap来解决这个问题,在c语言中应该也能采用类似的思路,锁分段什么的

      面试官又补充说要保持读取的高可用性,即使读取到脏数据也无所谓,我只好再度补充说可以在锁分段的基础上加入Copy-on-Write的思路,这样就可以在低的写入并发的情况下做到读取无等待

      实话说我不是很明白面试官具体想问我什么,现在感觉也许是看到我在简历上写“通读过Redis源码”,他想知道我是否真的读过,也许我把Redis中的字典的实现,和Redis用单线程配合I/O多路复用实现高并发的大致原理跟他讲解一下,他会感觉满意吧

    3.设计一个高并发的web服务器,需要注意什么

      我真是把我知道的东西全都说上了,什么I/O多路复用,磁盘缓存,多进程/多线程/单线程轮询,鬼扯了起码五分钟,不知道他感觉如何,反正我是有种黔驴技穷的赶脚

    我自己感觉面试的过程简直是展示了自己是有多么的愚蠢,但是,竟然过了!!!

    鹅妹子嘤!

  • 相关阅读:
    网页中的图片查看器viewjs使用
    检测和删除多余无用的css
    网页中插入视频的方案
    WebSocket使用教程
    JS+CSS简单实现DIV遮罩层显示隐藏【转藏】
    使用GPS经纬度定位附近地点(某一点范围内查询)
    使用SQL Server Management Studio 创建数据库备份作业
    SVN trunk(主线) branch(分支) tag(标记) 用法详解和详细操作步骤
    关于LINQ方方面面的入门、进阶、深入的文章。
    LINQ体验(7)——LINQ to SQL语句之Group By/Having和Exists/In/Any/All/Contains
  • 原文地址:https://www.cnblogs.com/stevenczp/p/4840395.html
Copyright © 2011-2022 走看看