• 【转】2014阿里巴巴面试经历


    阿里巴巴的2014实习生面试刚刚结束。饱食终日无所用心,抱着试试看的态度,去游荡了一圈,把经历分享在这里,难免言不及义看官见谅。我面试C++后台开发、前端开发。在这里总结一下经验教训。

    我报名了研发工程师实习,报名要填的内容好多,填了很久,阿里给了我在线笔试的机会。

    笔试题目大多是数学逻辑基础和数据结构的题目,不太偏重计算机基础概念。成功通过。因为误报了北京面试,通知我去中科院blablabla(报名网站右bug,在选择面试城市之后就不能改了,什么都能改,就是面试城市不能改)。后来经过沟通,让我去广州大学城面试。

    然后就赶到广州的大学城。这里邻近黄埔军校旧址,大学城被河水围绕,也是个好去处。很快就叫我进去了,里面有十几个小桌子,面试官和应聘者成对交谈。

    首先,当然是自我介绍,然后稍微问了一下简历上的项目。面试官很nice,循序渐进。然后问了一些操作系统的问题,诸如线程和进程有什么区别(面试必问!),这部分没有很深入。 然后主要进入C++部分。

    1. 写一个自动锁,当时我不知道什么是自动锁,他便给我写了一个示例,大致就是利用对象的构造析构行为自动管理资源锁。 然后我在构造函数里写了lock(sth),析构函数里写unlock(sth)。后来才知道他希望我回答与操作系统交互的那部分,我说操作系统提供的锁的系统调用无非两种情况,一是直接返回truefalse,我们进行忙等待;二是在该调用处阻塞该进程,直到获得了锁。至此面试官说OK。

    2. 构造函数里调用虚函数会出什么问题。我说编译错,回答错了。不会有任何问题,只是此时的虚函数表指针指向的永远是当前类型。Effective C++中指出 Don't 这样做。

    3. 单链表反向,给定head指针,写出C++函数。我一直以为这件事极其容易没有认真看过,没完全写出来。面试官很nice地让我描述给他怎么做,居然瞬间想出来了。维护两个链表head,一个指向已反向的链表头,一个指向仍未反向的链表头。遍历一次就好了。

    4. 找出链表的中间节点。使用两个指针,一次循环中A走两步,B走一步,A到头时,B即是中间节点。其实让一个指针遍历两次其时间复杂度是一样的,只不过代码冗余。面试官不关心这个~

    5. 快速删除链表中某节点,有指针。用其next节点覆盖该节点内容,然后把后面链表接上。

    6. 5TL相关的知识。Stl容器的参数allocate是用来做什么的?这是一个函数对象,用来指定小于运算过程。Map的Key有什么要求?开始我答不能重复,他继续问,答必须重载<运算符,OK。

    7. 智能指针是怎么实现的,你来实现一个智能指针。在构造函数里进行指针赋值,析构里delete。其实还有很多的,比如实现get方法,拷贝构造函数、赋值运算符行为。

    8. static_castconst_castdynamic_cast区别,没有问reinterpret_cast。第一个是强制隐式转换,是比较安全的;第二个是去常量性的;第三个是安全向下转型(safe downcasting);最后一个是低级转换。当时没这么清楚。。

    9. 你用过哪些C++库?gsl。面试官表示没听过。Boost,貌似他们整天在用。

    然后让我出去等,接着二面。面试官有点忙,经常打电话进来。看了我的项目经历,问了很多。然后告诉我去面前端怎么样,我说好啊(注意,这是一个错误)!于是继续面前端一面。 我做过很多web开发,js开发,但对于前端我没有系统的学习。结果很糟糕。我就把这几个问题罗列一下:

    1. 你认为一个好的前端开发者应具备哪些素质?

    2. 你对HTML5和CSS3了解多少?他会继续问的。

    3. 实现一个三栏布局,两端固定宽度,中间自适应。

    4. javascript优化可以怎么做?

    5. 怎么处理跨域请求限制。

    6. 最后,你有要问我的问题吗?

    我问了我应如何学习前端。面试官很严肃,是个值得尊敬的技术男。告诉我要多读最新的前端博客和文章,多了解新技术。然后,基础的书籍要学习,面试中问的基本都可以回答。

    最后总结一下感受,首先要知道自己想干什么;简历一定要对口;自我介绍是需要准备的;不到最后一刻不要懈怠。

    OK~ 结束了。预祝后来的同行们成功。祝君好运!

  • 相关阅读:
    Spring 4 MVC+Apache Tiles 3 Example
    深入浅出Mybatis系列(四)---配置详解之typeAliases别名(mybatis源码篇)
    spring-boot-starter-parent 1.3.6.RELEASE
    Spring Boot with JSP and Tiles3
    更改linux的最大文件描述符限制
    Android SharedPreference最佳实践
    SQLite可视化管理工具
    android数据库sqlite可视化操作
    android网络通讯数据封装之 json
    PullToRrefresh自定义下拉刷新动画
  • 原文地址:https://www.cnblogs.com/buxizhizhou/p/4602137.html
Copyright © 2020-2023  润新知