美文网首页IT面试android面试录面试
Android实习生春招面经,阿里五面头条四面

Android实习生春招面经,阿里五面头条四面

作者: SoulMateXD | 来源:发表于2018-04-14 10:20 被阅读603次

    刚刚邮箱居然收到了有人喜欢我一年前写的半桶水事件分发机制。都一年多没上简书平台了,这一年由于发生了点不太如意的事情,工作室的房间被撤,我们失去了根据地。所以我的简书之路刚开始就停下了脚步,挺不好意思的。。。
    正好前段时间实习春招拿到了头条和阿里的offer,这里把我的一些心得分享给大家吧~

    阿里面经+个人心得

    一面
    • java虚拟机相关问题
    • 垃圾回收机制
    • 数组和链表的区别,特点
    • CCSP里做过什么题目
    • HTTPS SSL
    • TCP/IP三次握手
    • HandlerThread
    • ThreadLocal
    • View的绘制
    • ListView优化
    • Handler机制
    • 事件分发机制
    • 谈谈你对MVP的理解及其优化
      有些人将Activity作为Presenter。还有对Presenter的优化,在V与P之间 P与M之间 增加代理类(虽然我没有做过。)
    • Builder设计模式的应用
    • 内存泄漏(详细举例)
      比如单例模式下,如果实例持有Activity的引用,那么Activity退出时它的内存将不会被回收,因而导致内存泄漏,这种情况应该传Application的Context
      匿名内部类将持有Activity的实例。避免在Activity中使用非晶态内部类,在传递Activity的时候使用软引用(使用前记得判空)
      使用LeakCanary 进行Android内存检测
    • java的类加载机制
    • Android的类加载方式,区别
    • Glide
    • 进程管理
    • 内存管理
    • 设备管理
    • 文件管理
    • 中间还有一些问题暂时想不起来了
    二面
    • 介绍下自己
    • 介绍下自己的项目
    • 请说下你对相册的优化
    • RecyclerView复用机制
    • RecyclerView的优化
    • Glide加载图片原理(如何压缩,如何缓存,三级缓存各是什么作用)
    • 如果增加了缓存是否会使你的App性能下降?
      这里他是想问你你为啥实现缓存,图片复用的命中率有多少?缓存真的能给你的app带来效率上的提升吗?主要结合项目来谈
    • 一个jpg或者png图片,它的大小如何计算
    • 如何处理recyclerView图片闪烁问题
    • 在开发过程中,遇到最大的困难是什么
    • 你的技术栈,平时怎么学习的看过哪些书
    • 数据库,索引,事务(详细介绍的那种,比如索引底层用的BTree,优点缺点,事务的四大特性,权限等)
    • MVP,MVC
    • 循环链表的检测
    • 好像还有一些问题。想不起来了,我尽力了。。真的。
    总监面
    • 你是怎么学习java和Android的
    • 问项目
    • 主要还是围绕项目聊。。项目功能的实现,项目维护啥的,深入项目细节
    • 自定义View,在网上看过哪些自定义控件,自己实现过哪些?
    • 看过哪些源码?
    • OOM怎么出现的?解决方法?
    • Glide源码
    • java内存模型
    • javaGC过程
    • 屏幕适配
    • 考不考研。。。
    • 参加过B或T的面试了吗?为什么选择阿里?
    • 清明后HR会尽量快点给你打电话
    交叉面

    某天晚上十点钟,打游戏打得正嗨呢,突然杭州一个电话打过来,心里一哆嗦。只能坑队友了。。

    这次是另一个部门的主管面试的我,由于当天晚上面完了我就洗洗睡了,加上第二天又浪了一下(某个学长回来了,和社团的同学去吃火锅唱KTV,杰伦专场唱到嗓子哑 + 感冒头疼。。)具体的问题记得不太清楚了,不过总的来说主要还是围绕着项目的细节问的,还有对项目的优化和进一步改进的方法,和一些其它小问题。。
    (老夫记性一向不太好。。这里给大家说声不好意思了。。)
    不过最后面试官对我还是挺满意的,让我等待HR面试。

    技术面总结

    总体来说不是很难,阿里的面试官比较注重基础和项目。应该是对自己工作定位原因吧,我给自己目前的定位是实现应用层的功能上,还没机会,暂时也没实力进军SDK开发,先把应用层做好吧。所以和面试官聊的最多的是对项目的看法。一般来说他们不会太为难你的,可能是我运气好吧,我遇到的面试官都很Nice。复习好就行,遇到不熟悉的领域的先说自己在该方面的认识再说不会,如果他继续问你,说明在考察你思考问题的思路,顺着思路答就好了。

    HR面

    这里由于涉及到一些个人问题,我就不怎么贴出来给大家看了,这里给大家推荐一下我准备HR面试时看的面经吧

    http://www.zheyibu.com/article/5698.html

    http://baijiahao.baidu.com/s?id=1566148416765923&wfr=spider&for=pc

    http://ifeve.com/ali-think-21/

    都是百度上很好找到的面经

    HR面总结

    其实在HR面这块,很多地方我答得并不是很完备,全程小心谨慎,生怕说错半个字
    在HR面里,个人觉得更多的是考验的是你的综合能力,作为一名程序员,有努力勤奋的精神是不够的,还有注重和团队成员的沟通和情绪管理(千万不要拿刀砍产品经理 o( ̄ ̄)d )
    后来HR还告诉我,专注于技术也是不够的,对业务也要做到胸有成竹。最后真诚+反套路是关键!最主要的还是真诚,毕竟她吃的盐比你吃的饭还多,要比套路你是套路不过她的,扬长避短,引导她向你的长处发问,最好结合自身经历多准备几个实际场景

    持续一个多月的春招内推经历圆满结束!长舒一口气啊,赶紧下山把头号玩家看了

    最后。。。

    头号玩家真好看! (`・ω・´)

    一些拙见吧

    如果确定了自己要找工作,大概从大二开始要有危机感了,可以开始接触项目维护项目并看相关书籍和框架源码了
    主要还是通过项目学习,再一个就是看书看博客了。这里给大家推荐一些学习的书籍:

    • 深入理解java虚拟机
      java 的一些容器类的实现过程也很重要哦! 比如 HashMap,ConcurrentHashMap, LinkedHashMap等等的实现原理,要熟知,上面虽然没问到,但其他公司问的挺多的

    • java多线程编程核心技术

    • java并发编程的艺术
      关于并发,新手不建议直接看并发编程实战,最好从上两本入门

    • Android第一行代码

    • Android群英传

    • Android从小工到专家

    • Android开发艺术探索

    • Android源码设计模式
      关于Android方面的书籍,当然还有一些其它的优秀书籍,这里我暂时推荐我读过的吧。

    • 图解HTTP

    • 图解TCPIP

    • HTTP权威指南
      由于我是属于那种万年不听课的人。对学校的教育也不太重视,期末的时候只是敷衍了下。还是有点后悔的,对于专业课如果碰到了好老师大家还是要好好学啊!
      关于计算机网络,找工作的时候最重要的两个点是 TCP/IP三次握手四次挥手和SSL过程, 其次要知道HTTP的组成,最好看一遍HTTP请求头响应头中的关键字。
      其实我觉得图解系列看的挺舒服的,很快就看完了思路也清晰,就是不够深入,可以根据自己感兴趣的点展开,百度谷歌

    • 数据结构方面,这个不太好建议。代码写多了就会了,学校的数据结构课认真上,Mooc上的网课认真听,题目认真做,实在不行面试前去牛客网去学校的OJ上刷题

    • 数据库方面,自己操作一遍,把一些比较复杂的操作自己动手实现一遍,熟知视图,索引,事务等等的原理过程,一般不会问的太难

    • 操作系统方面问的比较少,但这也是我现阶段比较薄弱的点,在此不太好向大家推荐我的拙见,我目前的想法是看鸟哥私房菜,后面会慢慢恶补这方面的知识

    • 关于博客公众号
      CSDN上几位大神的博文(郭霖、鸿洋等)和 原来的StormZhang,这里不是想抹黑张哥,主要是张哥现在转管理岗了,关于技术方面的博文更新较少,对实习生找工作来说收益不太大,但现阶段他公众号的作用更多的是扩宽视野和人生规划方面,还是值得关注的

    最后祝大家 找工作的 能顺利拿到心怡的offer,考研的 能考上理想的学校,找到优秀的导师

    (*´・v・)

    头条面经

    一面
    • Activity生命周期,启动模式

    • onNewIntent调用时机

    • 垃圾回收机制

    • volatile

    • 事件分发

    • Bitmap压缩策略

    • 自定义View(requestLayout,invalidate)

    • invalidate 导致该View 重绘

    • requestLayout 导致该View该View的父View重新执行onMeasure、onLayout

    • 获取View宽高的方式

    • View层级的优化

    • MVP,Presenter的优化

    • HandlerThread

    • SharePreference

    • 数据库

    • git

    • 进程间通信的方式

    • Parcelable与Serializable 的区别

    • Glide

    • Rxjava

    二面
    • 介绍下自己

    • 介绍下项目

    • 项目中视频是怎么实现的

    • 项目中实现相册的过程中遇到哪些困难

    • RecyclerView 优化,它的优势有哪些

    • recyclerView 和listView 复用机制的区别

    • Glide源码

    • BitMap图片大小如何判断

    • BitMap具体的压缩过程

    • BitMap在缓存时候的转码过程

    • Activity四大启动模式,以及联系实际情况的询问

    • activity与window在什么时候关联起来的

    • activity.startActivity 过程

    • activityStack,activitySupervisor 相关知识

    • ThreadLocal 是怎么做到线程私有的

    • 一个具体的Android场景,问我怎么设计(关于分割线,我想对不同Item进行不同处理,怎么做)

    • 另一个具体的Android场景。。(自定义一个Button,要对它进行单次点击监听,两次点击监听,多次 点-击监听,怎么实现)

    • Handler内存泄漏原因

    • ViewStub,merge,include相关问题,以及merge中再加一个merge

    • 一个普通二叉树,给你定点和指定节点,输出他们的路径(现场写)

    • 中间还有一些小问题不记得了

    三面
    • 自我介绍

    • 写个题目,在数组中插入一个数据,并实现扩容

    • 计算机操作系统,在计算机中物理内存的地址结构是怎样的

    • 计算机网络,如果要实现一个即时通讯的技术,你时选择TCP还是UDP,为什么

    • 算法,在手机通讯录的查找功能中,输入前几个字符,输出匹配字符,你如何实现,使用什么样的数据结构,为什么

    • java虚拟机的内存结构

    • javaGC过程

    • 你有什么想问我的

    其实头条三面我挺懵逼的,我同学都是二面+HR,为咩我多了一个技术面。?!而且全程不到二十分钟,很短

    HR面

    头条的hr面还是挺轻松的,HR小姐姐非常温柔,而且对我们学校的科技组织非常了解,聊的很开心。

    相关文章

      网友评论

      • 3f9c269569b5:想问下楼主,面试的时候问框架和底层原理的时候是问大致过程还是掐源码细节?
        SoulMateXD:@轻风起自远东QAQ 会结合你的项目问,也会问你框架的具体实现,细节也有一点。这个得看是什么框架。
        比如glide,会问你缓存策略是如何实现的,那一整套逻辑是怎样的,在你项目中,如何正确的使用它(进行缓存真的能给你的app带来性能上的提升么?),细节的话肯定有,太多了。。不好举例。但都是常规的,面试官不会为难你。我的面试官更注重的是思路。

      本文标题:Android实习生春招面经,阿里五面头条四面

      本文链接:https://www.haomeiwen.com/subject/juwkkftx.html