Android⾯试题集答案,助你拿到⼼仪Offer,安卓开发⾯试基础
30.为什么线程通信的⽅法 wait,notify,notifyAll 被定义于 Object 中,⽽ sleep ⽅法被定义在 Thread 类中?
31.说说 Thread 类中提供的 getState()⽅法作⽤,然后说说线程的状态有哪些以及转换过程。
32.⽤⾄少 2 种⽅式⼿写⽣产者消费者模式代码。
33.interrupted 和 isInterrupted ⽅法的区别?
34.分别讲讲 JVM 内存结构,Java 内存模型,Java 对象模型。
35.什么是 happens-before?它的规则有哪些?
36.什么是 JMM?谈谈⼯作内存和主内存的关系。
37.Java 重排序了解吗?谈谈重排序的 3 种情况。
38.什么是可见性?为什么存在可见性问题?怎样解决可见性带来的问题?
39.管程是什么?谈谈它的重要性。
1.10 泛型
1.什么是泛型?能解决什么问题?
2.说说 Java 中泛型的⼯作机制?
3.在泛型种 extends 和 super 关键字的区别是什么?
4.⽐较⼀下其它语⾔中的泛型和 Java 泛型的区别。
5.在 Java 中 List< A >和 List< B >是⼀样的类型还是不⼀样的类型?为什么?
6.你可以例举⼀些⾃⼰使⽤泛型的栗⼦吗?
1.11 反射
1.什么是反射?
2.如何获取⼀个类的成员变量 & 成员⽅法 & 注解信息 & …。
3.通常在项⽬当中⽤到反射多吗?都是⽤来⼲嘛?
4.你如何看待很多⼈认为反射效率很慢的问题?
1.12 注解
1.什么是注解 & 它和注释的区别?
2.注解的⼯作机制是什么?
3.如何解析注解?
1.13 Socket 编程
1.什么是 Socket 编程?
2.什么是 TCP,什么是 UDP,⼆者之间区别如何?
1.14 设计模式
1.说说设计模式的六⼤原则。
2.请讲讲你会使⽤的⼀些设计模式?
3.请说说单例模式 & 你项⽬中常⽤的单例模式。
4.懒汉单例模式为什么要加 volaitle?
5.能否给我说说 Android 中⾄少 3 个⽤到设计模式的栗⼦?1.15 JVM 相关
1.什么是 class ⽂件?
2.Java 代码执⾏流程?
3.Java 内存结构 & 内存模型。
4.GC 回收机制。
5.Java 虚拟机是如何加载⼀个类的?
6.给我谈谈类加载器。
7.谈谈 static 编译运⾏时的流程,在虚拟机中如何保存的?
8.说说 Java 种的 4 种引⽤以及⽤法?
9.如何判断⼀个对象是死亡的?
10.代码中直接调⽤ ()会发⽣什么?
11.⼀个强引⽤直接被 null 赋值,那么这个对象会被⽴刻回收吗?
12.String a = “a”+“b”+“c”;在内存中创建了⼏个对象?
13.谈谈你对字符集的理解。
14.常见的编码格式有哪些?
15.utf-8 中的中⽂占⼏个字节?int 型占⼏个字节?
16.谈谈你对逻辑地址和物理地址的理解?
17.你知道对象什么时候会回调 finalize ⽅法吗?
18.可以给我谈谈匿名内部类的⼯作机制吗?
1.16 其它 Java 部分有关⾯试题
1.为什么局部内部类访问局部变量需要 final?
2.String、StringBuffer、StringBuilder、CharSequence 的区别。
3.equals 和==的区别?
4.关于字符串的拼接你在项⽬中常常怎么操作的?为什么不能⽤“+”的⽅式进⾏拼接呢?
5.什么是 Callback,讲讲你项⽬中使⽤的⼀些有关 Callback 的栗⼦。
7.如何判断⼀个字符串是回⽂字符串?
8.final,finally,finalize 的区别?
9.什么是动态代理 & 什么是静态代理?
10.String 为什么会加 final?
11.OOM 可以被 try{}catch{}吗?
12.给我谈谈正则表达式。
13.如何将 String 转成 int?
14.谈谈你对 String 的理解。
15.你如何理解序列化?有哪些⽅式序列化?
16.谈谈你对依赖注⼊的理解。安卓app开发用什么框架
17.给我谈谈你对分派的理解。
18.字节码篡改技术了解吗?
2.Android 部分
四⼤组件是哪四个?ABCS(Activity,Braodcast,ContentProvider,Service)
2.1 Activity
1.Activity 是什么?
2.典型情况下的 Activity ⽣命周期?
3.异常情况下的 Activity 的⽣命周期 & 数据如何保存和恢复?
4.从 Activity A 跳转到 Activity B 之后,然后再点击 back 建之后,它们的⽣命周期调⽤流程是什么?
5.如何统计 Activity 的⼯作时间?
6.给我说说 Activity 的启动模式 & 使⽤场景。
7.如何在任意位置关掉应⽤所有 Activity & 如何在任意位置关掉指定的 Activity?
8.Activity 的启动流程(从源码⾓度解析)?
9.启动⼀个其它应⽤的 Activity 的⽣命周期分析。
10.Activity 任务栈是什么?在项⽬中有⽤到它吗?说给我听听
11.什么情况下 Activity 不⾛ onDestory?
12.什么情况下 Activity 会单独执⾏ onPause?
13.a->b->c 界⾯,其中 b 是 SingleInstance 的,那么 c 界⾯点 back 返回 a 界⾯,为什么?
14.如果⼀个 Activity 弹出⼀个 Dialog,那么这个 Acitvity 会回调哪些⽣命周期函数呢?
15.Activity 之间如何通信 & Activity 和 Fragment 之间通信 & Activity 和 Service 之间通信?
16.说说 Activity 横竖屏切换的⽣命周期。
17.前台切换到后台,然后在回到前台时 Activity 的⽣命周期。
18.下拉状态栏时 Activity 的⽣命周期?
19.Activity 与 Fragment 的⽣命周期⽐较?
20.了解哪些 Activity 常⽤的标记位 Flags?
21.谈谈隐式启动和显⽰启动 Activity 的⽅式?
22.Activity ⽤ Intent 传递数据和 Bundle 传递数据的区别?为什么不⽤ HashMap 呢?
23.在隐式启动中 Intent 可以设置多个 action,多个 category 吗 & 顺便讲讲它们的匹配规则?
24.Activity 可以设置为对话框的形式吗?
25.如何给 Activity 设置进⼊和退出的动画?
26.Activity 使⽤ Intent 传递数据是否有限制 & 如果传递⼀个复杂的对象,例如⼀个复杂的控件对象应该怎么做?
27.在 Activity 中可以多次调⽤ setContentView ⽅法吗?说说不同时机第⼆次调⽤ setContentView 会发⽣什么?
28.说说分别在 Activity ⾥每⼀个⽣命周期函数⾥调⽤ finish ⽅法后,接下来 Activity 的⽣命周期如何回调?
29.有什么⽅法可以启动⼀个没有在 l 中注册过的 Activity?
30.在 Activity 进⾏配置时,catrgory 和 action 的区别是什么?
31.activity 中分别在 onCreate,onStart,onResume 中调⽤ finish 后的⽣命周期如何回调?
2.2 BroadcastReceiver
1.⼴播是什么?
2.⼴播的注册⽅式有哪些?
3.⼴播的分类 & 特性 & 使⽤场景?
4.说说系统⼴播和本地⼴播的原理 & 区别 & 使⽤场景。
5.有两个应⽤注册了⼀样的⼴播,⼀个是静态,⼀个是动态,连优先级也⼀样,那么当⼴播从系统发出来后,哪个应⽤先接收到⼴播?
2.3 ContentProvider
1.什么是内容提供者?
2.说说如何创建⾃⼰应⽤的内容提供者 & 使⽤场景。
3.说说 ContentProvider 的原理。
4.ContentProvider,ContentResolver,ContentObserver 之间的关系?
5.说说 ContentProvider 的权限管理。
2.4 Service
1.什么是 Service?
2.说说 Service 的⽣命周期。
3.Service 和 Thread 的区别?
4.Android
5.0 以上的隐式启动问题及其解决⽅案。
5.给我说说 Service 保活⽅案
6.IntentService 是什么 & 原理 & 使⽤场景 & 和 Service 的区别。
7.创建⼀个独⽴进程的 Service 应该怎样做?
8.Service 和 Activity 之间如何通信?
9.说说你了解的系统 Service。
10.谈谈你对 ActivityManagerService 的理解。
11.在 Activtiy 中创建⼀个 Thread 和在⼀个 Service 中创建⼀个 Thread 的区别?
2.5 Handler