在Android面试中,面试官经常关注候选人的基础知识和理解深度。以下是一些关键知识点,涵盖了内存管理、异常处理、数学运算、程序逻辑、Activity生命周期、数据传递、Intent功能以及XML解析等方面。
1. **内存回收机制**:
- 内存回收是Android系统自动管理的一部分,程序员无需手动创建线程来释放内存(A 错误)。内存回收程序(垃圾收集器)负责检测并释放不再使用的内存对象,确保系统资源的有效利用(B 正确)。
- 发生异常时,`RuntimeException` 是一类特殊的运行时异常,包括 `ArithmeticException` (算术异常,如除以零)、`IllegalArgumentException` (参数非法)、`NullPointerException` (空指针异常)和 `BufferUnderflowException` (读取超出数组边界)。这些异常通常不需要被捕获,而是让程序崩溃,以便开发者能快速定位问题。
2. **数学运算与取整**:
- `Math.round(11.5)` 返回的是最接近的整数,即 `11`;`Math.round(-11.5)` 同样会取最接近的整数,但因为负数,结果是 `-11` (B 对)。
3. **程序逻辑与布尔表达式**:
- 代码段中涉及复杂的布尔逻辑表达式,通过计算,`x > 50 && y > 60 || x > 50 && y < -60 || x < -50 && y > 60 || x < -50 && y < -60` 的结果取决于变量值,但题目没有提供具体值,因此无法确定输出结果,选项B (`false`)可能是正确的,但需要更多上下文才能确定。
4. **Activity生命周期管理**:
- Activity 的生命周期方法中,`onCreate()` 只在第一次启动时调用,不适用于资源及状态的持久化保存(d),正确做法是使用 `onSaveInstanceState()` 或 `onPause()`,具体取决于需求。
5. **Intent数据传递**:
- Intent 可以传递多种数据类型,包括 `Serializable`、`CharSequence`、`Parcelable` 和 `Bundle`,这些选项都是正确的(ABCD)。
6. **Intent的功能**:
- 选项C 描述了 Intent 的核心作用,即实现界面间的切换,携带动作和数据,并作为四大组件(Activity、Service、BroadcastReceiver 和 ContentProvider)之间的通信纽带。
7. **XML解析**:
- SAX (Simple API for XML) 解析器的优点在于它是一种事件驱动的解析方式,B 选项正确。SAX 不会在内存中构建整个文档树,节省资源,适合处理大文件或流式数据。
面试中可能会围绕这些主题进行提问,考察候选人的编程基础、理解深度和实践经验。候选人应熟练掌握内存管理原则,理解异常处理机制,灵活运用Java语言特性,并了解Android框架的细节。