【面小易-面经10】阿里巴巴Android客户端开发实习生面试经验

简介: 又到了“金九银十”的招聘季,各位小伙伴们是不是也在忙着准备面试呢找工作呢?在接下来的一段时间里,面小易会为大家分享各种面试经验哦!请持续关注我。今天要和大家分享的是一位投递阿里巴巴Android开发实习生同学的面试经验,虽然他最终止步于二面,但是他的面试经验还是值得我们学习的,就让我们一起来看看吧。

“我是面小易,机智又聪明。面试不眨眼,Offer不手软。”

我面小易又来啦,今天要和大家一起分享的是一位投递阿里巴巴Android开发实习生同学的面试经验,这位同学的第一次面试就给了阿里巴巴,虽然最终的结果不尽如人意,但是我们要知道“打铁还需自身硬”,这位同学自己也总结了失败的原因,那就是基础不牢固。

以下为正文

一面

今天上午十点过了五六分钟接到了阿里巴巴的一面的面试电话。我简历投的是Android客户端开发实习生(内推),并且在前一天和HR电话约定了十点面试。

一面的时间是五十六分钟多一点。周围的人一面大部分都过了,按照他们的说法,大都是说的一些项目相关的东西。到了我这里,大概十分钟的项目介绍,三个关于Android的(其中两个是用Cocos2dx开发的),一个用Java写的局域网通信的小项目。剩下的时间都是问的基本知识,总结十分,六分是操作系统(尤其是内存、进程相关的),三分数据结构,一分Android的。

首先在操作系统方面,问了内存、进程间通信方式(IPC)、进程和线程的关系和区别。还问了什么是协程,但是这一点我在面试前并不知道。此外,面试官还问了什么是堆,内存泄露是怎么回事(我扯到野指针了),线程切换(我讲的是进程切换)。还问了下程序计数器,引到了逻辑地址(虚地址)和物理地址及其映射关系。然后还问了编译原理,问了编译的过程(预处理、编译、汇编、链接)。

其次在数据结构方面,先问了数组和链表的区别,又问了二叉树的深度优先遍历和广度优先遍历的具体实现以及堆的结构。

再次问了一些网络相关的问题,比如TCP和UDP的区别、用途,两者比较以及实现上的不同,并且对于这块问的比较细。之后就是Andorid内的进程通讯了,我答的是Handler,然后介绍了它的实现原理和相关的一些类。

我最后问面试官的问题是,为了能胜任这个岗位,需要着重加强哪方面的知识?面试官的回答大概是这样:首先肯定是计算机基础了,包括操作系统,数据结构,计算机网络等,然后客户端方面的话,网络编程方面、多线程方面和架构能力。整个过程感觉比较流畅,十分钟后,阿里的招聘网站上面的状态就成了一面通过,二面中。

面小易说:从整体的面试感觉来看,这位同学的一面还是比较流畅的,也能够说明他在这些方面还是做了大量的准备的,但是还是存在一些像协程这样问题的盲区,这是大家在面试之前需要弥补的。此外,一定要听清楚面试官问的问题是什么再回答,问线程切换就不要回答进程切换了。

二面

但是接下来二面就直接跪了。当天晚上七点多给我打的电话,整个过程半个小时,一点准备都没有,感觉语速有点快,上气不接下气的感觉,还是紧张。

开始是个人介绍,这块之前没怎么太准备,手忙脚乱的打开网站上的个人信息就开始说,连个人简历都没打开,云里雾里的就扯完了。面试官一开始是问我Android是怎么自学的,我说一般是购买书籍,然后遇到问题了除了看书,就是上Android开发者网站上面找官方文档的说明,或者上CSDN上搜索,之后问遇到问题怎么解决的,回答也是差不多,感觉说了一通像是没有说一样。接着是问对于Android哪块最熟悉,我说现在接触不是很深入,还是简单的用控件,学下自定义控件啥的...感觉就是从这里开始跪了。

说完Android开始说Java,又问我对Java的哪块最熟,我想起集合就张嘴说了集合,面试官于是说那我就问你你最熟悉的吧。问题1.ArrayList和LinkedList有什么区别,实现方式上有什么区别优劣(现百度,结结巴巴答上来了)问题2.对HashMap的了解,我说就是在用适配器的时候和ArrayList搭配着用过,对原理还是不太熟悉。问题3.Activity的生命周期(正好旁边就是一本书,看着说下来了)。最后一个问题就是Android的四大组件。

结束的的时候我的问题还是和一面的一样,他说根据这个面试来看,基础知识还是有点欠缺。果然十分钟后打开网站,状态变成了“待回绝”...

面小易说:能够从这位同学的二面经历看出,他的知识基础还很欠缺,甚至可以说目前的能力并不能胜任所面试的岗位的需求。因为面试官问到的问题要么就是接触不深入,要么就是了解并不多,要么就是通过搜索或者查资料回答,这样肯定的是不合格的。对于实习生而言,基础还是最重要的,“基础不牢,地动山摇”。

总结

总结,还是基础知识没有打牢,阿里的面试还是考基础居多,毕竟只是实习生面试,项目经历相差不大的情况下,肯定就是看基础了。第一次面试给了阿里,像投简历的时候的心态一样重在参与。

面小易说:希望大家能够吸取这位同学的经验和教训,在平时的学习中一定要将基础打扎实,这样才能遇到问题不慌不忙,侃侃而谈。基础真的很重要。

相关文章
|
1天前
|
安全 Android开发 Kotlin
Android经典面试题之Kotlin中常见作用域函数
**Kotlin作用域函数概览**: `let`, `run`, `with`, `apply`, `also`. `let`安全调用并返回结果; `run`在上下文中执行代码并返回结果; `with`执行代码块,返回结果; `apply`配置对象后返回自身; `also`附加操作后返回自身
16 8
|
16小时前
|
前端开发 Android开发 iOS开发
探索安卓与iOS开发的差异性与互补性
在移动应用开发的广阔舞台上,安卓和iOS这两大操作系统各据一方,引领着市场潮流。它们在技术架构、开发环境及用户群体等方面展现出独特的差异性,同时也存在着潜在的互补性。本文将深入剖析这两种平台的开发细节,从不同角度揭示其各自优势及相互之间的协同潜力,为开发者提供全面而深刻的视角。
6 2
|
2天前
|
SQL Java Unix
Android经典面试题之Java中获取时间戳的方式有哪些?有什么区别?
在Java中获取时间戳有多种方式,包括`System.currentTimeMillis()`(毫秒级,适用于日志和计时)、`System.nanoTime()`(纳秒级,高精度计时)、`Instant.now().toEpochMilli()`(毫秒级,ISO-8601标准)和`Instant.now().getEpochSecond()`(秒级)。`Timestamp.valueOf(LocalDateTime.now()).getTime()`适用于数据库操作。选择方法取决于精度、用途和时间起点的需求。
15 3
|
6天前
|
SQL 安全 Java
Android经典面试题之Kotlin中object关键字实现的是什么类型的单例模式?原理是什么?怎么实现双重检验锁单例模式?
Kotlin 单例模式概览 在 Kotlin 中,`object` 关键字轻松实现单例,提供线程安全的“饿汉式”单例。例如: 要延迟初始化,可使用 `companion object` 和 `lazy` 委托: 对于参数化的线程安全单例,结合 `@Volatile` 和 `synchronized`
17 6
|
7天前
|
Java Android开发 iOS开发
探索安卓与iOS开发的差异性与互操作性
【7月更文挑战第17天】在移动应用开发的广阔天地中,安卓和iOS这两大操作系统如同双子星座般璀璨夺目。它们各自拥有独特的开发环境、编程语言和用户群体,为开发者提供了不同的挑战和机遇。本文将从多个维度深入剖析安卓与iOS开发的差异性,并探讨它们之间的互操作性如何实现,以期为开发者们提供一份实用的指南。
20 7
|
5天前
|
Java Android开发 Swift
探索iOS与安卓开发的差异与挑战
本文深入探讨了iOS和安卓两大移动操作系统在应用开发领域的不同点及其所面临的挑战。通过对开发环境、编程语言、用户界面设计、性能优化及市场策略的比较分析,揭示了各自平台的独特性以及开发者需要克服的技术与市场障碍。 【7月更文挑战第19天】
|
4天前
|
Java Android开发 iOS开发
探索安卓与iOS开发的差异:平台特性与用户体验的对比分析
【7月更文挑战第19天】在移动开发的广阔天地中,安卓与iOS两大阵营各据一方,它们在开发环境、用户界面设计、性能优化等方面展现出独特的魅力与挑战。本文旨在深入探讨这两个平台在技术开发和用户体验上的根本差异,并分析这些差异如何影响开发者的策略和最终用户的选择。通过比较两者的编程语言、工具、框架以及设计理念,我们将揭示各自平台的优势与局限,为开发者提供实用的参考,并为消费者呈现一个更加清晰的平台选择视角。
|
6天前
|
安全 Java Android开发
探索安卓与iOS开发的差异:构建未来应用的关键考量
【7月更文挑战第18天】在移动应用开发的广阔天地中,安卓和iOS两大平台各领风骚。本文将深入探讨这两个平台在开发过程中的主要差异,包括编程语言、用户界面设计、性能优化、安全性以及市场策略等方面。通过比较分析,旨在为开发者提供决策支持,帮助他们选择最适合自己项目需求的平台,同时考虑到用户体验和市场需求的变化,为未来的应用开发指明方向。
|
6天前
|
监控 开发工具 Android开发
探索安卓与iOS开发的差异:平台特性、工具和市场趋势
在移动应用开发的广阔舞台上,安卓与iOS两大操作系统扮演着主角。它们各自拥有独特的平台特性、开发工具和市场定位,这些差异深刻影响着开发者的决策和产品的最终形态。本文将深入分析这两大平台的关键技术差异,探讨各自的开发环境和工具集,以及它们在市场上的表现和未来的趋势,为开发者提供一个全面的视角,帮助他们在这两个平台上做出更明智的开发选择。
|
4天前
|
开发工具 Android开发 Swift
探索Android与iOS开发的差异与挑战
【7月更文挑战第20天】在移动应用开发的广阔天地中,Android和iOS两大平台如同双子星座,各自闪耀着独特的光芒。本文将深入探讨这两个平台在开发过程中的主要差异,以及开发者面临的技术挑战。我们将从开发环境、编程语言、用户界面设计、性能优化、安全性考量等多个维度展开讨论,旨在为那些即将踏入或已在这片星空下航行的开发者提供一盏明灯。