金九银十面经分享,1-3年Android开发工程师看过来(已拿offer)

简介: 概述最近我执行了一次我计划了近半年的跳槽,总得而言还不错,说下我的情况。我是总共投了十几家公司,面试了7家,拿到了6个offer,周期差不多是一个月时间。

概述

最近我执行了一次我计划了近半年的跳槽,总得而言还不错,说下我的情况。我是总共投了十几家公司,面试了7家,拿到了6个offer,周期差不多是一个月时间。


这个面经可能不是适合所有人,毕竟这次不是一线大厂的面经。不过内容可能你看了至少会发现自己还缺乏哪方面的知识点。适合人群:


学历一般

技术一般的中级开发:毕业1-3年

安卓应用层开发


技术储备

首先说一下,针对面试我们需要会一些什么。不管是Android基础还是Java基础以及常见的数据结构和算法,这些是无原则地必须要熟练掌握的,尤其是非计算机专业的同学,面试官一上来肯定是问你基础,要是基础表现不好很容易被扣上基础不扎实的帽子,常见的就那些,只要你平时认真思考过基本上面试是没太大问题的。


俗话说的好,面试造火箭,工作拧螺丝。所以,该准备的还是要准备。有些东西长时间不看会忘,但有些东西长时间不看也不会忘。所以学习的方式很重要。好了扯远了,下面进入正题。(面试题的顺序可能不一样,印象中记忆的面试题)


image.png

image.png

面试公司

A公司(offer)


这公司主要是做数据云的,公司规模一般。



面屏的适配


activity中应不应该有static变量


事件分发


Handler


APP瘦身


用户体验


service的两种启动方式和区别


bundle机制


Android 7.0特性


kotlin的看法


listview和recyclerview的区别


数据销毁怎么保存


上述题是同一个面试官分了2次来问我的。说实话这家公司面试顺利的不行。面试官刚上来就问题目了。WTF?自我介绍呢?当时我还有点懵,不过也瞬间反应过来了,变跟着的他的问题去回答了。面试前后不到十分钟,他就说:我对你非常满意,薪资X如何?WTF?我当时还在想,这都发生了啥。不过我说对薪资不是很满意。然后他说要不在考考你?所以我在前面说了,这些题是同一个面试官分了2次来问我的。前前后后面试了差不多1个小时。最后给了个offer。


B公司(over)


这家公司是一个知名的教育平台,D轮融资,规模挺好,环境nice。


hashmap的原理


java 7 8 9 10的区别


lambda原理


为什么java 7中不能用lambda


三级缓存


setcontentview原理


gilde原理


string和stringbuilder哪个存储速度快


事件分发


线程


如何学习的。


这家公司算的上我这几家面试公司中最想去的一个把,也是唯一一个被pass的一个。不过到头来,我是基本被秒杀了。看看上面的面试题可能也知道,难度系数还是有一点的。不过差不多能确定的是,面试官可能是java出生的。比如第一题,hashmap,问完原理之后,问了hashmap存储的是什么?hashmap内部是链表和数组,那么数组和链表是怎么存储和删除数据的。基本上,问的每一题到后面都会慢慢问到JVM的东西。JVM对于目前的我来说,简直就是噩梦啊…所以直接over了。


C公司(offer)


一家做新零售的上市公司。


一面


IO


手写数组实现队列


能不能动态add同一个布局


Handler机制


手写rxjava遍历数组


scheme协议


数组扩容


listview和recyclerview的区别


service


线程如何做到安全


aop思想


自由发挥


hashmap原理


二面


五年的计划


有木有考虑转岗比如ios


三面


是什么让你坚持的写了三年的博客


问了学历,谈了产品


这家公司也是面试的时间最久的一个,前前后后2个多小时,一面的内容我也有些不会的,不过问到java的内容的时候,那个面试官明说了,java我也不知道问啥,随便问问,然后主要的还是问了一些Android的内容。主要还是当场手写的,这种手写的么,知道多少就手写多少了。一面二面聊的东西也不是非常多,前前后后半小时。三面的话。上来就说,我刚才去看了你的github和博客,然后就问了,是如何坚持了三年的。我谈了我的一些看法,包括后面的学历和产品之类的,我分别的都说了我的看法。最后很神奇的听他说,要不你来我们公司做产品把。WTF?我当时都吃惊了。所以虽然技术面的一般,不过三面聊的很nice。最后也就拿到了offer。


D公司(offer)


一家C轮融资的公司,o2o平台。


hashmap原理


classloader原理


线程安全


sparearray原理(拆分包)


gc机制


gilde原理


rxjava


Ui优化


性能


瘦身


有木有看过框架源码,然后问原理


单例模式


listview和recyclerview和Scrollview嵌套问题,以及rv和lv的区别


Android2个虚拟机的区别(一个5.0之前,一个5.0之后)


这家公司问的东西挺多的,遇到不会的面试官也和我说了是什么什么。主要这家公司是我早上面了C公司之后,做了1个多小时地铁去面试,感觉全程困的不行。所以回答还是比较一般。然后一面结束,二面面试官过来就说,刚才一面完了说技术开发没啥问题了,二面具体算是我对公司的一个了解。稍微问了一些东西。面完了最后就说,过会让hr发offer了。


谈谈非技术面试

上面的问题大多数还是技术面。我这边稍微说下非技术面,一般非技术面试考你是沟通能力,表达方式,情商等众多方面。不过一般都会环绕公司的发展方向,产品等问题进行讨论。所以,单单技术好还是差一点的。比如某些公司问道,从用户角度,谈谈我司的产品怎么样?所以在面试之前,最好下一下面试公司的app进行了解。如果没找到app也可以上公司官网进行了解。比如我这次面试的公司A,就没找到公司的APP,不过我去官网看了公司是干什么。

小结

面试完了之后,要学会总结自己到底哪方面不足,导致XX公司没有拿到公司,比如我,因为JVM和数据结构薄弱,导致没拿到B公司的offer。找到了自己的不足之后,我们就需要花时间对这方面进行弥补,不管是单纯的为了面试还是为了以后的技术沉淀。说白了,都是为了自己好。通过这次面试,我也知道自己哪方面的不足,为了以后考虑,所以我也会抽时间对这方面进行弥补。


人生的路还是要自己走,别人最多给你一些方向,平时但行好事,莫问前程,一步步的努力终将得到回报。希望看完文章后,找到自己的问题所在,努力前行,给将来的自己一个感谢的机会。


最后

为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的【Android进阶学习视频】、【全套Android面试秘籍】、【Android知识点PDF】,包括高级架构技术进阶脑图 + 诸多细节。帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。


点击进入我的GitHub免费领取!

image.png


相关文章
|
3天前
|
Linux 编译器 Android开发
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
在Linux环境下,本文指导如何交叉编译x265的so库以适应Android。首先,需安装cmake和下载android-ndk-r21e。接着,下载x265源码,修改crosscompile.cmake的编译器设置。配置x265源码,使用指定的NDK路径,并在配置界面修改相关选项。随后,修改编译规则,编译并安装x265,调整pc描述文件并更新PKG_CONFIG_PATH。最后,修改FFmpeg配置脚本启用x265支持,编译安装FFmpeg,将生成的so文件导入Android工程,调整gradle配置以确保顺利运行。
24 1
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
|
26天前
|
Java Android开发
Android 开发获取通知栏权限时会出现两个应用图标
Android 开发获取通知栏权限时会出现两个应用图标
12 0
|
1月前
|
XML 缓存 Android开发
Android开发,使用kotlin学习多媒体功能(详细)
Android开发,使用kotlin学习多媒体功能(详细)
102 0
|
1月前
|
设计模式 人工智能 开发工具
安卓应用开发:构建未来移动体验
【2月更文挑战第17天】 随着智能手机的普及和移动互联网技术的不断进步,安卓应用开发已成为一个热门领域。本文将深入探讨安卓平台的应用开发流程、关键技术以及未来发展趋势。通过分析安卓系统的架构、开发工具和框架,本文旨在为开发者提供全面的技术指导,帮助他们构建高效、创新的移动应用,以满足不断变化的市场需求。
18 1
|
1月前
|
机器学习/深度学习 调度 Android开发
安卓应用开发:打造高效通知管理系统
【2月更文挑战第14天】 在移动操作系统中,通知管理是影响用户体验的关键因素之一。本文将探讨如何在安卓平台上构建一个高效的通知管理系统,包括服务、频道和通知的优化策略。我们将讨论最新的安卓开发工具和技术,以及如何通过这些工具提高通知的可见性和用户互动性,同时确保不会对用户造成干扰。
33 1
|
17天前
|
XML 开发工具 Android开发
构建高效的安卓应用:使用Jetpack Compose优化UI开发
【4月更文挑战第7天】 随着Android开发不断进化,开发者面临着提高应用性能与简化UI构建流程的双重挑战。本文将探讨如何使用Jetpack Compose这一现代UI工具包来优化安卓应用的开发流程,并提升用户界面的流畅性与一致性。通过介绍Jetpack Compose的核心概念、与传统方法的区别以及实际集成步骤,我们旨在提供一种高效且可靠的解决方案,以帮助开发者构建响应迅速且用户体验优良的安卓应用。
|
19天前
|
监控 算法 Android开发
安卓应用开发:打造高效启动流程
【4月更文挑战第5天】 在移动应用的世界中,用户的第一印象至关重要。特别是对于安卓应用而言,启动时间是用户体验的关键指标之一。本文将深入探讨如何优化安卓应用的启动流程,从而减少启动时间,提升用户满意度。我们将从分析应用启动流程的各个阶段入手,提出一系列实用的技术策略,包括代码层面的优化、资源加载的管理以及异步初始化等,帮助开发者构建快速响应的安卓应用。
|
19天前
|
Java Android开发
Android开发之使用OpenGL实现翻书动画
本文讲述了如何使用OpenGL实现更平滑、逼真的电子书翻页动画,以解决传统贝塞尔曲线方法存在的卡顿和阴影问题。作者分享了一个改造后的外国代码示例,提供了从前往后和从后往前的翻页效果动图。文章附带了`GlTurnActivity`的Java代码片段,展示如何加载和显示书籍图片。完整工程代码可在作者的GitHub找到:https://github.com/aqi00/note/tree/master/ExmOpenGL。
21 1
Android开发之使用OpenGL实现翻书动画
|
19天前
|
Android开发 开发者
Android开发之OpenGL的画笔工具GL10
这篇文章简述了OpenGL通过GL10进行三维图形绘制,强调颜色取值范围为0.0到1.0,背景和画笔颜色设置方法;介绍了三维坐标系及与之相关的旋转、平移和缩放操作;最后探讨了坐标矩阵变换,包括设置绘图区域、调整镜头参数和改变观测方位。示例代码展示了如何使用这些方法创建简单的三维立方体。
15 1
Android开发之OpenGL的画笔工具GL10
|
26天前
|
Android开发
Android开发小技巧:怎样在 textview 前面加上一个小图标。
Android开发小技巧:怎样在 textview 前面加上一个小图标。
12 0