Android面试相关面试Java技术问答

2018年最新Android面试分享

2018-06-01  本文已影响288人  aa457e711aa4

*版权声明:本文为博主原创文章,未经博主允许不得转载。 

*原文链接:https://www.jianshu.com/p/7d3963974fbb


楼主13毕业,一直在六朝古都。学渣一枚,代码一般。从学习资源匮乏年代走到现在,感慨很多~

见识了很多拥抱开源,乐于分享的大神、发自内心的佩服你们,感谢你们。

在现东家4年了,成长了很多。生于忧患死于安乐,最近总感觉要失业了~决定拿起锄头试水Android市场(原来写Java)。

都说互联网烧钱的时代已经过去了,剩下的都是某某系了。岗位竞争变成都只招专家了,楼主亲测了一把,面试了几家公司—结论:没有核心竞争力,offer不容易。好点的去不了,一般的不想去~

总结了遇到的面试题。网上可能也有,但实战细节汇总一下:


1.APP体系图谱-引用 2.APP优化图谱-引用

前言:

基本都来源Android上面2个图谱。专注技术的,可以定个学习计划,深入浅出。


1.F4基础-Activity:

(1.1)Activity的4种启动模式,区别,回调

https://www.jianshu.com/p/4c8d6e2117ac

(1.2)Activity代码设置启动模式,

https://www.jianshu.com/p/4c8d6e2117ac

(1.3)Activity几种退出方式,

https://blog.csdn.net/a15286856575/article/details/50883807

(1.4)Activity是否可以配置独立进程,是否可以修改进程名,

https://blog.csdn.net/Simon_Crystin/article/details/70315106

(1.5)两个Activity之间跳转时必然会执行的是哪几个方法?

https://blog.csdn.net/m_xiaoer/article/details/72881082

(1.6)保存Activity状态

https://blog.csdn.net/timejay/article/details/52838221

2.F4基础-Service:

(2.1)Service与IntentService的区别与使用场景,

https://www.jianshu.com/p/332b6daf91f0

(2.2)Service两种启动|关闭方式,

https://blog.csdn.net/imxiangzi/article/details/76039978

(2.3)Activity与Service 通信方式,

https://www.jianshu.com/p/cd69f208f395

(2.4)Service默认运行的线程,是否可以配置隔离进程,是否可以修改进程名,

https://blog.csdn.net/Simon_Crystin/article/details/70315106

3.F4基础-Broadcast:

(3.1)Broadcast几种类型,

https://blog.csdn.net/carson_ho/article/details/53160580

(3.2)Broadcast拦截,

https://blog.csdn.net/dream19861009/article/details/6361553

(3.3)Broadcast运行的线程,

https://blog.csdn.net/anzhu_111/article/details/6662369

(3.4)Broadcast动态和静态的区别,

https://blog.csdn.net/u012925008/article/details/49701423

(3.5)Broadcast动态和静态的优先级、为什么,

https://blog.csdn.net/qq_35823924/article/details/52159351

4.View相关:

(4.1)view事件传递分发机制,

https://www.jianshu.com/p/38015afcdb58

(4.2)view绘制过程,

https://www.jianshu.com/p/5a71014e7b1b

(4.3)view过渡渲染优化,

https://blog.csdn.net/wl9739/article/details/57416433

(4.4)LinearLayout和RelativeLayout的绘制区别,性能差异对比,

https://blog.csdn.net/su_1106941640/article/details/53026208

5.Animation相关:

(5.1)动画的分类,

https://www.jianshu.com/p/420629118c10

(5.2)属性动画使用,自定义插值器和估值器,举例说明,

https://www.jianshu.com/p/420629118c10

6.网络通信:

(6.1)http与https的区别,

https://blog.csdn.net/bryant_liu24/article/details/56488603

(6.2)Tcp和Udp的区别,

https://blog.csdn.net/li_ning_/article/details/52117463

(6.3)socket是什么?

https://www.cnblogs.com/wangcq/p/3520400.html

(6.4)简述3次握手和4次挥手,

https://blog.csdn.net/zixiaomuwu/article/details/60965466

7.通信相关:

(7.1)为什么需要 Handler?Handler 原理

https://www.jianshu.com/p/9e4d1fab0f36

(7.2)进程间通信AIDL,

https://www.jianshu.com/p/beaf4d595cf6

(7.3)广播,

同上

(7.4)Messenger

https://blog.csdn.net/u011240877/article/details/72836178

8.进程|线程相关:

(8.1)线程和进程在操作系统是什么,

进程:操作系统分配的独立内存空间,执行一系列CPU指令集。

线程:是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。

(8.2)sleep()和wait()的区别,

https://blog.csdn.net/xyh269/article/details/52613507

(8.3)线程同步、安全方式,

https://www.cnblogs.com/lizhangyong/p/8029287.html

(8.4)线程池理解,

https://blog.csdn.net/ymrfzr/article/details/51479816

(8.4)JAVA 锁有几种,

https://www.cnblogs.com/lxmyhappy/p/7380073.html

9.三级缓存:

(9.1)内存缓存\本地缓存\网络缓存

https://www.jianshu.com/p/97455f080065

(9.2)LRUCache,用来做什么?原理是什么? 

https://www.jianshu.com/p/b49a111147ee

10.设计模式:

(10.1)单例,工厂,观察者,代理等

https://www.cnblogs.com/malihe/p/6891920.html

(10.2)Android源码用到了哪些设计模式

https://www.jianshu.com/p/a436c15d1de2

(10.2)MVP框架、 MVVM框架

https://blog.csdn.net/limonzet/article/details/53328315

https://blog.csdn.net/wlcm603/article/details/78182868

11.性能优化:

(11.1)ANR产生的原因是什么?

https://www.jianshu.com/p/7fd95bc2a55c

(11.2)内存泄露和OOM的分别是什么,有什么区别?

https://www.jianshu.com/p/7fd95bc2a55c

https://www.jianshu.com/p/eef57e3ace13

(11.3)APP各种优化系列,都要稍微了解一点https://blog.csdn.net/u010853225/article/details/79724938

12.其他:

(12.1)讲解一下Context

https://blog.csdn.net/wzy_1988/article/details/51539503

(12.2)ThreadLocal原理,实现及如何保证Local属性

https://blog.csdn.net/singwhatiwanna/article/details/48350919

(12.3)JNI

https://www.jianshu.com/p/fa613762f516

(12.4)Opengl\渲染管线(初学太好理解)

https://blog.csdn.net/cjneo/article/details/50538033

(12.5)多媒体播放、解码

https://www.jianshu.com/p/f6ac01c3f994

(12.6)JVM、DVM(Dalvik VM)和ART虚拟机对比

https://blog.csdn.net/evan_man/article/details/52414390

(12.7)JDK1.8新特性?

https://blog.csdn.net/haiyoung/article/details/52693212

13.JAVA基础:

(13.1)集合种类

https://www.cnblogs.com/leeplogs/p/5891861.html

(13.2)String|StringBuffer|StringBuilder区别

https://blog.csdn.net/qq_30278639/article/details/51362754

(13.3)几种内部类的实现方式,优化,内存泄露风险

https://blog.csdn.net/nysyxxg/article/details/10133141

https://blog.csdn.net/qq_22706515/article/details/51321718

(13.4)抽象类和接口区别

https://www.cnblogs.com/dolphin0520/p/3811437.html

(13.5)java反射理解

https://blog.csdn.net/the_fire/article/details/6020402

(13.6)java注解理解

https://blog.csdn.net/javazejian/article/details/71860633

(13.6)java依赖注入理解

https://www.cnblogs.com/qiangweikang/p/4865486.html

14.开源框架:

很多,比如Rx全家桶,写自己用过。没用过的,就说大概了解~

15.常见算法(了解一下):

(15.1)数据结构部分

栈 Stack

队列 Queue

链表 Linked List

数组 Array

哈希表 Hash Table

二叉树 Binary Tree 

堆 Heap

并查集 Union Find

字典树 Trie

(15.2)算法部分

快速排序算法

最排序算法

归并排序

二分查找算法

BFPRT(线性查找算法)

DFS(深度优化算法)

BFS(过度优化搜索)

Dijkstra算法

动态规划算法


结语

1.面试不要迟到,不要放鸽子,即使有特殊情况,也要合理沟通。最起码的尊重,即是对自己也是对他人。

2.面试前,问清HR是否需要带什么(简历,笔等)

3.面试内容没法固化,每家问的都不一样,随机性很强,但基础的容易忽略的知识,往往占一半。

4.面试稍微准备个几天,做个复习。一定要夯实基础,注意细节,专注技术,强化业务。


希望大家都能获得上帝的眷顾,都获得心水的offer,谢谢。



上一篇下一篇

猜你喜欢

热点阅读