字节、百度、美团、腾讯技术面,面试题及答案分享(Android岗)

字节(3轮技术面):

一面:

1.final
2.类加载
3.双亲委派机制,为什么要使用
4.GC
5.leackcanary
6.hashmap
7.concurrenthashmap
8.事件分发
9.handler
算法:
1.LeetCode 61:旋转链表
2.合并两个有序链表

二面:

1.final修饰int类型的变量能不能改变?怎么改变?
2.反射可以改变这个int值吗?怎么改变?反射的原理?
3.try catch块;try抛出异常,catch中有return语句,finally会执行,finally为什么会执行?
4.接口和抽象类;
5.sleep和wait;
6.操作系统层面wait调用notify之后具体是怎么样的?
7.java有哪些锁?
8.sychronized怎么实现锁;
9.操作系统的进程间通信;
10.安卓进程间通信;
11.binder机制;
12.学习的过程中使用过aidl吗?
13.apk打包过程;
14.如何获取view的宽高;
15.ConstraintLayout;
16.设计一个类似glide的图片缓存框架:面试官进行了引导:设计一个数据结构,缓存策略等;
17.创建了两个ArrayList对象,l1.getclass()==l2.getclass(),判断结果;
18.手写单例模式的饿汉式和懒汉式;
算法:层序遍历

三面:

1.前两个面试官问的问题下去了解了吗
2.代码插桩;
3.leakcanary内存泄漏;
4.ANR的检测;
5.怎么判断是不是内存泄漏:一个程序不是内存泄漏,但是内存占用很大,怎么分析这个问题
6.一个app申请了内存对象,这些内存对象在内存中是什么关系?可以通过内存的引用链来分析吗?
7.有一份内存,通过哪些方法分析哪些类对象占比比较大?(比如有一颗引用树,用什么方法或者工具统计,哪些对象加起来最大?)
8.安卓四大组件;
9.进程间通信;
10.binder机制;
11.双亲委派机制;
12.插件化的方法;
12.热修复:已经发布到线上的类,我们要修改类的方法,可以从双亲委派机制来思考下怎么做?在AMS注册之前怎么加载.dex文件?
13.操作系统原理:有socket阻塞和非阻塞io,为什么有这两种socket io?
14.安卓怎么设计一个网络请求的框架?
15.jvm内存有多大?怎么做调优?
算法:
子数组范围的和;
重排链表;

由于文章的篇幅有限,面试题及其答案太多了,没有办法一一展示出来。需要领取面试题及其答案的朋友麻烦帮忙点赞这篇文章,领取方式在这篇文章文末卡片中。

部分答案解析
在这里插入图片描述

百度(3轮技术面):

1.Java访问修饰符
2.volatile作用(面试官发音也奇怪,我第一遍没听清他说啥,他还给我拼一遍,结果拼写也没拼对,跨服聊天)
3.Java GC机制(知道的都缕了一遍)
4.死锁(说完定义啥的,问了点场景,死锁八股选手表示我不会= =答的拉胯到家)
5.Activity生命周期
6.Activity A到B的生命周期变化,B是透明的呢?(我寻思笔试这东西都占了三十分简答了,面试怎么还问?)
7.ANR(怎么捕获?怎么处理?麻了,问深了不会)
8.手撕:数组最小的K个数
9.手撕:有重复项数组的所有排列(感觉正常就一道算法吧,我好像写的太快了,面试官非常错愕的又给我找了一道,撑到四十分钟呗,结果这道我成功的没写完,讲思路也是暴力思路,醉了,自己给自己挖大坑)
10.Android布局
11.动画
12.网络请求
13.手撕:反转双向链表(面试官:你说下思路,写不写都行。我:那我写。当时心想的就是你这就要挂我?我得再让你看我十分钟)

部分答案解析
在这里插入图片描述

美团(3轮技术面):

1.Android布局(各种Layout,什么FrameLayout的使用场景balabala)
2.说了点布局优化相关
3.进程和线程的区别
4.进程之间的通信方式
5.死锁 概念及发生条件(那时候还没背OS八股,完全按本科那点印象答,拉胯到家)
6.http和https区别
7.https通信的过程
8.tcp三次握手
9.tcp和udp的区别
10.数据库了解么?不了解。
11.数组和链表的区别
12.算法:二叉树的先序遍历
13.设计模式
14.手写个单例
15.Java:equals和hashCode方法
16.接口和抽象类的区别
17.接口中是否可以声明常量
18.对面向对象的理解
19.Android:四大组件及作用
20.Activity的生命周期
21.onNewIntent的调用时机
22.广播的两种启动方式
23.ANR
24.内存泄漏 定义 哪些情况会导致内存泄漏
25.Android屏幕适配做过哪些工作

部分答案解析
在这里插入图片描述

腾讯

1.四大组件
2.activity生命周期
3.activity a跳转到 activity b生命周期变化
4.activity和service有什么区别
5.handler
6.loop死循环为什么不阻塞线程
7.进程间通信方式
8.http get和post区别
9.map
10.hashmap
11.用过那些库
12.glide三重缓存
13.为什么要用三重缓存
14.两张一样图片怎么办
15.MD5
16.LRU
17.还有什么可以实现LRU
18.有看过音视频这方面吗

部分答案解析:
在这里插入图片描述

完整版面试题答案解析点击下方卡片免费领取

猜你喜欢

转载自blog.csdn.net/datian1234/article/details/125647405