其他分享
首页 > 其他分享> > BAT大厂最爱问的Android核心面试百题详细解析!面试必问

BAT大厂最爱问的Android核心面试百题详细解析!面试必问

作者:互联网

前言

很多次小伙伴问到学习方法,我也很想写这样的一篇文章来跟大家讨论下关于学习方法这件事情。

其实学习方法这个事情,我没啥发言权,因为我自己本身都是没啥方法可言的,就瞎折腾那种,但是大家想看这样的一篇文章,我就结合身边比较优秀的仔,那就聊一下这个事情吧。

写这个文章的的时候我构思了很多种写法,因为考虑我读者很多大学生,也有很多毕业的仔,想照顾所有的群体,那我整个文章会从读书时候的一些学习方法,还有就是工作之后的工作学习方法去写,这个思路应该也ok。

二.面试流程

三.面试题回忆,没有先后顺序

1.项目架构,组件化架构(他反而没问插件化)
2. Android 事件分发机制(问到源码调用细节)

3.反射怎么调用一个类的私有方法(这里也是问细节,2个方法的区别)
Method method=clazz.getDeclaredMethod(name);//可以调用本类中的所有方法(不包括父类中继承的方法)
Method method=clazz.getMethod(name); //可以调用类中有访问权限的方法(包括父类中继承的方法)

4.怎么监听Activity的生命周期
可能大部分想到的时候自己写个 BaseActivity 就搞定了
其实是在 Application 里面注册一个监听回调的事情

this.registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
     @Override
     public void onActivityCreated(Activity activity, Bundle savedInstanceState) {}
     @Override
     public void onActivityStarted(Activity activity) {}
     @Override
     public void onActivityResumed(Activity activity) { }
     @Override
     public void onActivityPaused(Activity activity) { }
     @Override
     public void onActivityStopped(Activity activity) { }
     @Override
     public void onActivitySaveInstanceState(Activity activity, Bundle outState) { }
     @Override
     public void onActivityDestroyed(Activity activity) {}
 });

5.RxJava,RxAndroid 是否用过,用过的话估计会问原理
6.图片缓存框架,用过哪个,原理(这一关想过一定要用透一个)

7.网络请求框架用过哪个(OkHttp, Retrofit, Volley)

这里他想听到的是 OkGo(基于 OkHttp 封装的一个框架)

8.有个业务里面有20几个嵌套的 if else,从设计模式的角度怎么解决这个问题?

他考的是策略模式+工厂模式

9.HashMap,HashTable,HashSet什么区别?

四.总结

1.这是很有指导意义的一次面试,面试的内容确实比较符合现在对高级Android工程师的要求。
2.问的内容比较关注细节,这种要是没有深入了解几乎不知道。
3.面试其实是一个学习成长的过程,找几家公司练练手,然后找到套路之后对症下药。

最后

Android学习是一条漫长的道路,我们要学习的东西不仅仅只有表面的 技术,还要深入底层,弄明白下面的 原理,只有这样,我们才能够提高自己的竞争力,在当今这个竞争激烈的世界里立足。

人生不可能一帆风顺,有高峰自然有低谷,要相信,那些打不倒我们的,终将使我们更强大,要做自己的摆渡人。

我把自己这段时间整理的Android最重要最热门的学习方向资料放在了我的腾讯文档上,里面还有不同方向的自学编程路线、面试题集合/面经、及系列技术文章等。

资源持续更新中,欢迎大家一起学习和探讨。

标签:百题,BAT,void,Activity,面试,activity,Override,Android,public
来源: https://blog.csdn.net/fjfdhduuffududu/article/details/115321021