android面试题的答案,2024面试美团的朋友看过来,安卓基础面试题2024

String str = new String(“hello”);
String str2 = “hello”;

2.java中Exception的结构(exception class结构关系父类子类等等等)

3.Java IO的结构与区别

4.java中创建线程的方式

5.java中可以保证多线程安全的方式(包括:字段,多种锁,保证线程安全的数据结构与实现)

6.虚拟机中的内存分配

7.ThreadLocal的内部原理,以及Thread中有什么属性和方法。

8.ArrayList与LinkedList的区别,以及数组扩容。

9.乐观锁与悲观锁

手撕代码

1.手写冒泡排序+二分查找

2.手写翻转二叉树

3.手写两个单例模式,DCL和静态内部类(同时问了final关键字与静态内部类为什么能满足单例模式)

计算机基础

1.TCP/IP的四层结构

2.TCP三次握手与四次挥手

3.TCP的报文

4.Http的报文

5.put与get的区别

6.put与post的区别

Android

1.Android中解决滑动冲突的方式:
考察的不是内部拦截与外部拦截,其实考察的是:NestedScrollParent NestedScrollChild

2.Activity的生命周期与四种启动模式。(除普通的那些还有onRestoreInstanceState与onSaveInstanceState与onNewIntent以及他们的使用场景与区别)
注意调用onNewIntent不会再调用onCreate方法了,会直接调用onStart与onResume。如果是已经不可见的Activity(调用了onStop的,则会先调用onRestart之后在调用onStart方法)。

3.View的绘制过程(非常详细地说),具体还有些仔细的小问题。

4.View的事件分发(非常详细地说),具体还有些仔细的小问题。

5.多个具体的场景讲述Activity生命周期调用的过程。诸如一个Activity打开另一个Activity,他们之间的生命周期调用。

6.了解RN么,了解前端么。

其他问题

协作上的问题(发散性问题)
1.如何评估一个需求多久能够做完;
2.给出的时间比你想象的少会怎么做;
3.给出的时间比你想象的多会怎么做;
4.如何学的android,看过哪些书
5.实习时间与实习长度
6.项目的个人完成情况
7.反问环节的部门介绍,工作介绍等等等。

9.美团Android一二面凉经

该面经帖作者:一个发际线两个高(2020届春招)
该面经帖发布时间:2020-03-26

一面(30分钟):

0、实习期间公司项目,自己开发的项目
1、进程和线程的区别
除了常规的,还比较了一下两者调度的区别,进程是靠中断来使系统陷入内核态然后完成调度,线程是依靠JVM进行。
2、线程的状态。
新建、就绪、运行、阻塞、死亡。不小心把进程的僵死什么的给说了……还好面试官捞了一手
3、TCP属于哪个层、TCP三次握手四次挥手。
4、Activity生命周期,A启动B生命周期变化。
5、自定义View,需要重写哪几个方法。如果要你实现WIFI信号的显示,那么你会怎么做。
6、Android动画了解吗。
说了过渡动画,说了自己封装的ObjectAnimator工具类,以及MotionLayout相关使用、以及过渡动画实现共享Item的用法。
7、算法,打印2到100所有的质数,不要求效率,你输出就好了……

二面(1hour):

0、自我介绍
1、实习期间做的最成功的一件事,为什么觉得最成功。
2、针对具体的实习过程进行了讨论。
3、Java泛型。
4、为什么基本重写equals方法时也需要重写hashCode方法。
5、手撕生产者消费者模型,很惭愧……没撕出来。
6、成绩怎么样……LZ本科期间及其浪荡,成绩很差,然后面试官脸色就变了。心态就有点崩。
7、计算机怎么画一条线,底层怎么实现的。
8、PV原语。
9、排序算法。
10、树的遍历方式。
11、反问。

心得体会:成绩不好的同学需要谨慎回答关于成绩的问题,不要那么直白,是把双刃剑。华为面试的时候说自己成绩不好,但是有博客和github作为后期努力的支撑,面试官就还是很开心。LZ直到大三下学期才开始努力学习,确实浪费了很多时间。
收到了面试官的短信说挂了,难受,奉劝各位好好学习。

10.美团Android三面+hr面面经(已拿offer)

该面经帖作者:一个发际线两个高(2020届春招)
该面经帖发布时间:2020-03-26

前面两面:https://www.nowcoder.com/discuss/390384
以为自己凉了,看来还没有。

三面(50mins):

0、自我介绍。
1、实习工作介绍。
2、如果让你从0开始搭建一款APP,你会怎么做。比如说就是美团外卖。
a、 基础类设计
b、网络设计
c、兼容性考虑
d、代码质量保证
e、测试相关
f、设计模式的使用
g、MVVM架构的使用
3、学校学习了什么课程,成绩怎么样……
4、代码,快排。
5、反问

问了一下美团对于Android应届生的需求,得到的答复是需要CS相关基础好,其他的要求比较宽松。
还有就是学习Android的方法,大佬说多看各种不同APP和优质框架的源码,从源码中学习。

总结:问题很少,每题都很致命……而且是没有答案的那种,你得自己思考。这个时候可以许愿一波hr面了。

4月1日更新:
hr面(20mins):

0、期望工作地点
1、事业群介绍
2、为什么想要留在北京
3、为什么不读研究生
4、如何看待Android开发,为什么不接触IOS呢
5、刚开始工作压力会很大,你有没有想过怎么处理压力呢
6、反问
7、有没有健身房
8、有住房补贴或者房源推荐吗
9、招多少个Android应届生呀
10、应届生培养方案

总结:没有谈薪资,这是唯一的风险……还是希望能收到OC吧。

好快啊,隔天直接offer。有点爽,透露一下,有三个月签字费。

11.美团Android一二面面经

该面经帖作者:初亦泽(2021届实习)
该面经帖发布时间:2020-04-23

2020/04/23更新。今天二面,部门leader 面,估计上次评价挺好的,这次只手撕一些简单的代码,加起来四十分钟吧。

二面面经

1、你觉得你上次面的怎么样(还行吧)
2、随便写一个二叉树的遍历(前序递归、前序非递归)
3、打印二叉树左侧第一个元素(层序遍历,打印第一个元素)
4、判断一个字符串在另一个字符串里面的出现次数(其实写到最优了,但还是和面试官讨论了下如何优化)
5、看你代码写的挺好啊,平常经常练吗?(平时就喜欢写代码)
5、手上有哪些offer?如实说了一下,然后吐槽了下IOS…。
6、反问环节(你们使用哪些语言呢,Android开发。)
7、面试官介绍部门,说是比较核心,然后加微信。

一面面经

面的美团Android实习,总体上来讲比较简单。

1、简单的介绍了自己的两个项目
2、Handler机制,详细讲了Handler、Looper、Message、MessageQueue、空消息时的阻塞、IntentService、HandlerThread、AsyncTask的实现
3、进程间通信机制,讲了线程和进程的区别(是否有独立地址空间,怎么实现独立地址空间),Android里面常用的进程间通信方式,包括基于Binder的(ContentProvider、AIDL、Messanger)和基于文件的(普通文件读写,sp)和基于网络的(Socket)
4、详解Binder机制,Binder通信的几个角色,实现一次拷贝的函数mmap。
5、OkHttp相关,包括它的优势,责任链模式中各个拦截链做了什么。
详细讲了OkHttp的桥接拦截链和缓存拦截链:https://blog.csdn.net/qq_23594799/article/details/105478769
6、由上面引申出http的四种缓存管理方式,讲了HTTP的304状态码
7、OkHttp的dispatcher,异步请求,同步请求
8、LruCache实现方式,包括底层结构,数据的插入删除为什么是O(1),提到Gilde的软引用、OOM上面
9、RecycleView的缓存机制,四级缓存,然后又说ListView两级缓存,RecycleView的局部刷新机制,最后讲了它的用法
10、手撕打印素数,秒了,在我博客里有:https://blog.csdn.net/qq_23594799/article/details/105168841
11、反问环节(虽然讲的很多,但我讲的比较快只面了25分钟,问题全部答上来了,还以为没HC凉了,试探了下问问自己还需要提升的地方、如果入职有培训吗?然后说联系二面)

12.美团Android一面二面面经(已收感谢信)

该面经帖作者:IuSpet(2021届实习)
该面经帖发布时间:2020-04-21

美团一面

自我介绍

编程题,用选择排序对链表进行排序
题目很简单,但是把 NULL 写成 null ,找了很久的错

询问项目相关经历
我的项目主要就是课程的大作业,问了计网和编译原理的,这些写的比较近,基本能说上来;问java的就完全没印象了,因为用的Swing,而当时觉得Swing是过时的东西,也没认真学。面试官说Swing那一套和android很像,精通了学android就非常简单

浏览器输入URL到产生页面的过程
解析域名,tcp连接,http请求,返回html页面,请求其他资源

断网的情况下也会有页面,为什么?浏览器的缓存是怎样的
只知道有缓存,浏览器缓存完全没了解过。

死锁
死锁的产生条件、避免方法,正好面试前看了一遍,自我感觉说的比较完整

进程调度
给面试官说对各种调度有印象,但是没法清楚的梳理出来,面试官也没继续问我

数据库事务
这个不会,跳过了

在自我介绍阶段也说了Android和Java还在学习阶段,所以没问相关问题,也象征性的问了下有没有看过view的源码,是否了解类加载机制

9.反问,问了一些Android相关的问题,如对新版本的学习、对kotlin的态度

美团二面

算法题,两个链表相加
能想到一些做法,但都很麻烦,就和面试官沟通了下,让我按照从最高位一一对应来做加法
我思路是先用一个链表储存不考虑进位的结果,之后再用递归的方式解决所有进位,写完后也没提交就给面试官说完成了,他简单问了下我思路,也没细看

面试结束后发现bug特别多……变量名不一致,循环条件也错了,递归的时候表达式和顺序也都错了,就很离谱,改了20分钟才跑出面试官要的结果

线程和进程区别,切换代价哪个大
我回答在以前的操作系统上,进程是调度单元,也是操作系统分配资源的基本单位;但在现代操作系统上,进程更类似一个容器,提供运行所需的资源,线程是调度的单元,切换到别的进程中的线程,就会导致进程的切换。还提到了通信方式的区别。切换代价自然是进程大,线程只要切换程序计数器等几个寄存器的值,进程有整个进程控制块需要切换。

进程间的通信方式
共享内存、消息队列、管道

tcp三次握手四次挥手
这个我从服务端和客户端创建socket,调用 connect 系统调用开始,叙述了一遍内核创建socket并放入两个队列的过程;四次挥手对应 close 系统调用,一方调用后会发出 FIN 请求,收到 ACK 确认,不再发送数据,双方都调用后就是四次挥手

对于面向对象的看发
这个也没细想过,虽然平时写代码的有一些突然的明悟“啊,原来这就是面向对象“,但这块我觉得说的还是有点乱。谈了面向过程需要时刻管理所有变量、状态,面向对象将这些操作封装成一个整体,就不用关注底层的操作,只需要关心自己这一层。

对于多态的看法
这个和上一题类似,我也有点不知道从哪说起。就先举了一个多态的例子,谈到底层方法提供者就不用关心传入的参数具体是什么,只要用接口或抽象类约定好就行,上层调用时放入满足要求的对象就行,便于解耦

平时空闲时间做什么
我就实话实话,说会打游戏、和同学去打篮球、晚上会去健身房,当然有时候也会去图书馆,或者自己找算法题做(后面问面试官评价,他说这里他比较失望,空闲时间我没有把学习放第一位)

因为我android基础差,问我如果给我一个比较困难的任务,我如何去完成
我回答说先请教这个任务会用到哪些方面的知识,下去后我会对这些知识有一个最基础的了解,然后去看一些demo中如何应用,之后就开始自己解决任务

和同事之间产生分歧怎么办
我会和同时认真分析问题,求同存异,找出具体的分歧点,然后一起讨论分析,最后形成一个统一的观点

对于加班的看法
如果是我自己的工作没有完成,我愿意付出额外的时间去完成。但如果是其他方面的任务,我会具体考虑。

反问环节。一面的时候和面试官聊了很多Android方面的问题,这次我就问的生活。我问了他平时工作压力如何,公司的娱乐设施平时会使用吗。对我这次面试的评价。

一二面隔了一周,针对java我认真学了好几个知识点,结果面试官完全没提相关问题,反问聊天时我透露出希望他问我一些技术上相关的问题,他说他没有针对某一点问,一直随便挑着问,想考察我的知识面咋样,看一看平时是否有这些积累,我一想自己基本都答上了,还挺高兴的

结果
因为面试官问的都是很基础的问题,问面试官评价,也是不错,只对我日常空闲时间没有第一时间学习不满意。二面完还挺乐观,问面试官什么时候有结果,说是下周一二。接着在第二周周六收到了感谢信

总结
第一次面试,也没怎么准备,尤其是对于Android和java,一面给了面试官完全不会的印象。面试官说帮我把这个标注上,二面就完全没问我java,android的问题。最后没过,感觉和这个关系也比较大

13.美团Android实习三面面经(已口头offer)

该面经帖作者:虚淮(2021届实习)
该面经帖发布时间:2020-04-16

4.10 一面

一面大概一个小时左右,问的问题偏向于基础这一块,也有问到简历上的项目。
静态内部类和双重检验两种单例模式的差别
Object类有哪些方法

面向对象的理解

封装是怎么样的

父类的private方法,子类重写了,调用到谁的方法

接口和抽象类的区别

泛型能不能动态获取类型

HashMap的put过程

HashMap为什么要扩容

HashMap的线程安全问题

Synchronized的锁升级

volatile的作用

类加载机制

JVM内存分布

JVM垃圾回收

RxJava处理异常

RxJava的flatMap操作符

为什么用MVP

handler消息机制

handler的postDelay时间精确吗

线程池有用过吗

图片框架的缓存和内存复用

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
img

总结

其实要轻松掌握很简单,要点就两个:

  1. 找到一套好的视频资料,紧跟大牛梳理好的知识框架进行学习。
  2. 多练。 (视频优势是互动感强,容易集中注意力)

你不需要是天才,也不需要具备强悍的天赋,只要做到这两点,短期内成功的概率是非常高的。

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。下面资料部分截图是我花费几个月时间整理的,诚意满满:特别适合有3-5年开发经验的Android程序员们学习。

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

  • 18
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值