牛批!Alibaba内部学习指南+最新面试题+学习大纲+内部学习书籍,理论与实战双管齐下!

赵嬷嬷
• 阅读 735

阿里

Android进阶小刘】是我的头条号,里面会不定期更新一些Android进阶学习视频,感兴趣可以关注一下!

面试前

阿里的实习生招聘我参加了内推批次正式批次一共两场。

阿里的内推批次和正式批次的时间是完全错开的,即在内推全部结束后才开始正式批次。需要注意的是,阿里主要部门(集团、菜鸟、蚂蚁等)的招聘几乎全部放在内推批次中,而正式批次绝大多数是非主要部门(高德、优酷土豆、虾米、钉钉等)的招聘。

阿里的内推没有统一的笔试,在内推成功后,马上就会收到素质测评和编程测验的通知。然而这两个测评其实并没有太大意义,做不做都会很快(一两天)就开始面试的。阿里内推批次的面试全都是电话面试。我在内推后的第二天就接到了一面的电话,部门是菜鸟/无线(记不清了)。

内推批次面试

  • 一面

内推一面大概40分钟,主要问的计算机基础,如HTTP、TCP、并发、二叉树遍历、字符串匹配算法等,还让我简单介绍了我做的两个项目。因为我的其中一个项目做的APP中有调查问卷的发放和收集,所以问了我如何防止有人刷问卷;我回答说可以限制IP、记录设备唯一编号、监测做问卷模式等,但都存在一些漏洞。最后我问他Android开发过程中是不是会遇到很多兼容性问题,面试官回答说会遇到,还详细说了他们有专门的大规模真机测试来检查兼容性。一面总体上答的还行,几乎没有涉及到Android相关的问题;因为是电话面试,也就没问什么算法题。

  • 二面

内推一面两天后就接到内推二面电话了。二面大概50分钟,主要问了Java GC机制、Android APP启动过程、Android事件分发、Android View绘制流程。GC机制因为刚看过所以答的比较好,然而因为阿里面试开始太早,我还没来得及复习Android,所以Android相关的问题答的一塌糊涂,比如APP启动过程就支支吾吾乱说一气,View绘制流程干脆说不知道,跟面试官说我知道Android事件分发流程,于是事无巨细说了好长一串,最后被面试官吐槽根本不熟悉Android。最后问了面试官对国内手机厂商乱改Android Framework层有什么看法,面试官回答说他也很无奈,但阿里一般都和手机厂商有合作,直接进白名单,所以没有碰到太大问题。

  • 三面

内推二面后过了一周多才接到内推三面的电话,而且是在周末的晚上11点的时候。三面大概20多分钟,主要问了做过的项目、Java基础、最近看的书、到阿里想学到什么。我不太确定这轮面试是技术面还是HR面,因为是晚上11点和女票刚回到酒店完全不在状态,而且面试官也似乎很不耐烦,加上那段时间一直在准备技术方面的问题对这些HR面相关的问题完全没有准备,所以答的很啰嗦也很糟糕,好多都没有答到点子上。最后我问面试官我答的怎么样,面试官也没有说什么就急忙不耐烦挂电话了。

内推三面结束后就觉得应该是挂了,然后又等了一星期,官网上就从“面试中”变成“已回绝了”。

正式批次

等到阿里正式批次开始的时候又投了正式批次,正式批次有统一的笔试,笔试用的阿里自己的系统;笔试内容记不清了,但一二十个选择题记忆深刻,好多超出Android相关知识的题目,好多做不出来的智力题。

正式批次的笔试似乎只有很少数的人通过了(主要是因为正式批次的岗位很少),幸运的是我也通过了,在官网预约面试时间后就开始准备视频一面了,面试的部门是钉钉(像之前说的,正式批次的部门都比较边缘)。

正式一面是视频面试,大概不到20分钟,是我实习秋招体验并列第二差的面试。主要问了Activity中能不能执行耗时操作(就是UI线程相关)、Android中有哪些内存泄漏的情况,然后就是共享屏幕写代码:实现单链表的插入删除和查找。为什么说体验非常差呢?首先整个面试就问了两个问题,而且这两个问题几乎任何有Android开发经验的都能对答如流,并且我回答完后就没有然后了,没有继续深入问;其次那个代码在数据结构教材上讲链表的时候一定会讲,而且也没有什么技术含量。最后面试官说还行,也没让我问他问题就结束了。

一天后官网状态就变成“已回绝”了,累觉不爱。

一些建议

阿里实习生招聘/秋招开始的早

学校下学期开学时间是2020年2月20日,而阿里的实习生招聘内推开始时间是3月1日,也就是说开学一周后阿里就开始内推了,相信很多同学还没从寒假里缓过来吧。阿里的秋招内推开始时间是7月4日,也就是很多学校才放暑假或还没开始放暑假就开始内推了,相信还有很多同学是打算暑假复习两个月再战秋招的吧。而且阿里内推成功即开始面试,同样也没有缓冲的时间哟~

阿里实习生招聘/秋招并不在意素质测评和编程测验

按照阿里校招官网的流程图,内推成功后会收到素质测评和编程测验的邮件通知,要求三天内完成。但是可千万别理解为没完成就不会走到面试流程了,好多小伙伴拖着编程测验不做,准备腾出三天时间抱佛脚的,结果当天或者第二天就接到电话面试了。

阿里实习生招聘/秋招主要在内推,正式批次相当于补招

阿里的绝大多数部门的招聘都放在了内推,等到内推时间截止的时候绝大多数部门都已经招满人了。正式批次笔试后,能够收到面试通知的同学很少,而且面试的部门也主要集中在高德、虾米、钉钉、优酷等部门,而非集团、菜鸟和蚂蚁。

阿里实习生招聘/秋招名额先到先得

一般来说,越早内推,越早面试,面试通过的概率相对来说更大。在内推要截止的时候再内推多半因为部门招满人了没人鸟了。

下面是阿里面试题的整理

记得清楚的只有这些了,还有一部分题目和详细答案我整理成了PDF,

需要的可以私信我【学习指南】我分享给大家,还有一些面试防雷小套路我也记录下来了。希望对你们有帮助!

  • 什么是ANR,如何避免
  • 主线程中的Looper.loop()一直无限循环为什么不会造成ANR?
  • ListView原理与优化
  • ContentProvider实现原理
  • 如何使用ContentProvider进行批量操作?
  • 为什么要使用通过ContentResolver类从而与ContentProvider类进行交互,而不直接访问ContentProvider类?
  • 介绍Binder机制
  • 如何自定义View,如果要实现一个转盘圆形的View,需要重写View中的哪些方法?
  • Android事件分发机制
  • 如何加载大图片
  • 布局文件中,layout_gravity 和 gravity 以及 weight的作用。
  • ListView里的ViewType机制
  • TextView怎么改变局部颜色
  • Activity A 跳转到 Activity B,生命周期的执行过程是啥?
  • Android中Handler声明非静态对象会发出警告,为什么非得是静态的?
  • ListView使用过程中是否可以调用addView
  • 属性动画(Property Animation)和补间动画(Tween Animation)的区别,为什么在3.0之后引入属性动画
  • 有没有使用过EventBus或者Otto框架,主要用来解决什么问题,内部原理
  • Android里的LRU(Least Recently Used 最近最少使用)算法原理
  • Service onBindService 和startService 启动的区别
  • invalidate()和postInvalidate() 的区别
  • 导入外部数据库
  • Parcelable和Serializable区别
  • 在两个 Activity 之间传递对象还需要注意什么呢?
  • Android里跨进程传递数据的几种方案
  • 匿名共享内存,使用场景
  • Application类的作用
  • 广播注册后不解除注册会有什么问题?(内存泄露)
  • 属性动画(Property Animation)和补间动画(Tween Animation)的区别
  • BrocastReceive里面可不可以执行耗时操作?
  • Android优化工具
  • TraceView
  • Systrace
  • Android动态权限?
  • ViewPager如何判断左右滑动?
  • ListView与RecyclerView
  • SpannableString
  • APK安装过程
  • 描述一下Android手机启动过程和App启动过程?
  • Android手机启动过程
  • App启动过程
  • Include、Merge、ViewStub的作用
  • Asset目录与res目录的区别
  • System.gc && Runtime.gc
  • Application 在多进程下会多次调用 onCreate() 么?
  • Theme && Style
  • SQLiteOpenHelper.onCreate() 调用时机?
  • Removecallback 失效?
  • Toast 如果会短时间内频繁显示怎么优化?
  • Notification 如何优化?
  • 应用怎么判断自己是处于前台还是后台?
  • FragmentPagerAdapter 和 FragmentStateAdapter 的区别?
  • Bitmap的本质?
  • SurfaceView && View && GLSurfaceView
  • 请简述一下你对fragment的理解?
  • 请简述一下Fragment的生命周期?
  • LayoutInflater,LayoutInflater.inflate()这两个是什么意思?
  • Android的多渠道打包你了解吗
  • 如何对APK瘦身?
  • Android当前应用跳转到三方应用
  • JVM、ART、Dalvik的区别和联系
  • Android中的classLoader相比java中的classLoader有什么区别?
  • Socket和LocalSocket
  • HttpClient和URLConnection的区别,怎么使用https
  • 设计一个网络请求框架(可以参考Volley框架)
  • 网络图片加载框架(可以参考BitmapFun)
  • 字节跳动Android岗面试题
  • java的classloader工作原理
  • 开发过程中常见的内存泄漏都有哪些
  • 关于JVM内存管理的一些建议
  • LeakCanary的工作原理,java gc是如何回收对象的,可以作为gc根节点的对象有哪些?
  • LeakCanary原理
  • java gc是如何回收对象的
  • 可以作为gc根节点的对象有哪些
  • 既然有GC机制,为什么还会有内存泄露的情

牛批!Alibaba内部学习指南+最新面试题+学习大纲+内部学习书籍,理论与实战双管齐下!

牛批!Alibaba内部学习指南+最新面试题+学习大纲+内部学习书籍,理论与实战双管齐下!

还有其他一些按照知识点系统分类的面试真题:

牛批!Alibaba内部学习指南+最新面试题+学习大纲+内部学习书籍,理论与实战双管齐下!

进阶书籍

权威指南-第一行代码——Android

《第一行代码——Android》是Android初学者的最佳入门书。全书由浅入深、系统全面地讲解了Android软件开发的方方面面。第1章带领你搭建Android开发环境,完成你的第一个Android程序。第2章至第13章完整地讲解了Android开发中的各种基本知识和关键技术,包括四大组件、UI、碎片、广播机制、数据存储、服务、多媒体、网络、定位服务、传感器,以及分布式版本控制系统Git的使用等等。在部分章节会穿插相关技术的高级使用技巧。第14章和第15章则将带领你编写一个完整的项目,教会你如何打包、上架、嵌入广告并获得盈利。《第一行代码——Android》内容通俗易懂,既适合初学者循序渐进地阅读,也可作为一本参考手册,随时查阅。

牛批!Alibaba内部学习指南+最新面试题+学习大纲+内部学习书籍,理论与实战双管齐下!

权威指南-大话设计模式

本书为超级畅销书《大话设计模式》作者程杰潜心三年推出的扛鼎之作!以一个计算机教师教学为场景,讲解数据结构和相关算法的知识。通篇以一种趣味方式来叙述,大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较。与市场上的同类数据结构图书相比,本书内容趣味易读,算法讲解细致深刻,是一本非常适合自学的读物。

本书以一个计算机教师教学为场景,讲解数据结构和相关算法的知识。通篇?一种趣味方式来叙述,大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较。与市场上的同类数据结构图书相比,本书内容趣味易读,算法讲解细致深刻,是一本非常适合自学的读物。

牛批!Alibaba内部学习指南+最新面试题+学习大纲+内部学习书籍,理论与实战双管齐下!

关于阿里内部都在强烈推荐使用的,看完之后两个字形容,牛批!

如果对你有用的话,那就点赞+评论一下下,然后直接来找小编免费分享给你吧!

点赞+点击我关键词【学习指南】即可!
Android进阶小刘是我的头条号,里面会不定期更新一些Android进阶学习视频,感兴趣可以关注一下!
Android进阶小刘

  • 首创年薪阿里 60W+ 对标P7岗移动架构师成长路线V3.0

![首创年薪阿里 60W+ 对标P7岗移动架构师成长路线V3.0]
牛批!Alibaba内部学习指南+最新面试题+学习大纲+内部学习书籍,理论与实战双管齐下!

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
3年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(