写点什么

字节跳动上千道精选面试题还不刷起来!2019-2020 大厂高级面试题集合(Handler,性能优化

用户头像
Android架构
关注
发布于: 17 小时前

Android:


1.能简单说一下事件分发机制吗?


2.MeasureSpec.UNSPECIFIED 是什么意思?如果外层的 ViewGroup 的模式是 AT_MOST,内层是 match_parent,那么最终传递到内层的模式是什么?(AT_MOST)? ? ps:这个问题没啥意义


(听你说了 View 中有 scrollTo,scrollBy,那么我们分析一个场景题)


3.场景题:首先有一个 FrameLayout,其中嵌套着两层 View,我们在进行重写 onTouchEvent 的时候,如何让上层 View 滑动并


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


且暴露出下层的 View?(这里有一个坑,面试官说的 scrollTo、scrollBy,我就在这俩上面思考怎么暴露出下层的 View,最后突然想到可以通过事件来调整整个 View 的布局位置)


源码:


1.看过那些优秀的开源框架源码吗?


2.知道那些源码相关的设计模式呢?


3.HashMap 简单说一下原理吧


####二面:


二面是一个女面试官,年龄可能在 40 岁左右


设计模式:


1.熟悉那些设计模式呢?


2.动态代理底层是如何实现的?


3.讲讲 Retrofit 的动态代理吧


Java:


1.能简单说说 JVM 内存模型的目的以及在内存中区分为哪些区域吗?


2.内存回收机制大致讲讲呗?


3.类加载机制完整细致的描述一下把


4.类加载器的双亲委派原则说一下吧?(这里有一个疑问,我说父子类加载器不是继承关系,然后面试官说不太对,这里我有一点点疑问,还请大家告知一下)


5.能说一下 Java .class 文件的结构吗?


6.线程池的基本机制有了解吗?非核心线程如何保证延迟结束?


7.为什么内部类会默认持有外部类的引用?


Android:


1.Handler 消息机制简单说一下吧(延时的消息是如何发送的?以及通过 Looper.loop()是如何处理延时消息的?)


2.为什么 Handler 会出现内存泄漏?


3.View 中的 post 和 handler 的 post 有什么区别?(我说 view 中的 handler 是经过重写的,会处理关于 View 的相关绘制事件,然后面试官说只回答对了一部分,我有些疑问,还有其他的区别吗?)


4.有用到什么内存泄漏检测的框架吗?知道原理吗?(就是上面所说的 JVM 内存回收机制)


5.知道关于性能优化相关的吗?能简单讲一下吗?(布局,异步,过渡绘制)


6.能讲一下 Activity 的启动流程吗?


7.听你讲到了进程间通讯,PackageManagerService 和 ActivityManagerService 进行通信的方式是什么?


8.Binder 驱动底层原理了解吗?(mmap 的内存地址映射)


9.Serializable 和 Parcable 有什么区别?如何使用?


10.听你说到了 sp(SharedPreference),你知道 sp 能跨进程通讯吗?

三面:

1. 聊项目


2. 下面的代码会发生什么?




<font color=``"#ffffff"``>?????


<font color=``"#bbbbbb"``>


class Foo {


<font color=``"#bbbbbb"``>


public``:


<font color=``"#bbbbbb"``>


void A() {}


<font color=``"#bbbbbb"``>


<font color=``"#bbbbbb"``>


virtual``<font color=``"#bbbbbb"``> void``<font color=``"#bbbbbb"``> B<font color=``"#bbbbbb"``>()<font color=``"#e06c75"``> {}<font color=``"#bbbbbb"``>


<font color=``"#bbbbbb"``>


void C() { std::cout << this << std::endl; }


<font color=``"#bbbbbb"``>


};


<font color=``"#bbbbbb"``>


Foo* temp = nullptr;


<font color=``"#bbbbbb"``>


temp->A();


<font color=``"#bbbbbb"``>


temp->B();


<font color=``"#bbbbbb"``>


temp->C();


<font color=``"#bbbbbb"``>


<font color=``"#ffffff"``>


</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font>




1)函数 A,什么都不会发生;


2)函数 B,crash


3)函数 C,打印地址 0


C++的成员函数,如果使用了 this 相关的,那么编译器在编译时会给函数入参加入 this 指针作为入参。A 不需要,因此没有 this 指针作为入参;B 和 C 需要,其中 B 是虚函数,需要找到虚表,即需要解引用,空指针解引用直接就会崩溃,C 不需要解引用,只会打印空指针的地址 0。


3. 算法题 xml 解析 有一点类似 leetcode 385/591 可以看看 xml 解析相关的实现


####HR 面花 10 来分钟做个简单的沟通


1.自我介绍 2.考研的时候为什么选择的是这个学校呢?3.回顾一下,上大学到现在这段时间内,让自己最有挫败感的事情是什么呢?4.有哪些方面需要在改进的么?5.对于以后参加的工作,你主要会看重哪些方面呢?6.同学这块,大家都有在投递字节这边的岗位么?7.反问环节:关于面试结果,告知,这边只是做简单的了解,面试结果大约会在一周左右出来,到时候会有邮件或者电话通知。关于面试的结果,需要综合前面的几个面试官进行综合评测,才能决定是否录取。


总结+面试前的准备(供大家参考学习)


给大家个建议,面试官如果愿意和你聊组里业务,一定要把握机会好好聊,最好能提出让面试官眼前一亮的问题,直指业务核心。代码谁都会写,基础知识网上都能查到,但是对产品的理解和新的想法不是谁都有的.####首先这份资料,一共有 1312 页,230775 个字涵盖了 Android 所有高级知识,面试题都是各个大厂的面试者提供的。我们建立了一个【学习交流群】,大家会在一起学习交流,解决问题。如果最近有面试的都会把自己最近面试的题目分享出来,还有一些面试遇到的坑,有时候还开开车感觉还挺愉快!在这里感谢所有群里提供面试题的伙伴,话不多说来看看大厂都喜欢问哪些高级压轴题目吧!

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
字节跳动上千道精选面试题还不刷起来!2019-2020大厂高级面试题集合(Handler,性能优化