字节(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.有看过音视频这方面吗
部分答案解析:
完整版面试题答案解析点击下方卡片免费领取