"疯狂安卓讲义是一本适合初学者入门的Android学习资料,涵盖了Android面试常见问题,包括内存管理、异常处理、运算符优先级、Activity生命周期、Intent使用及XML解析等方面的知识。"
在Android面试中,理解内存管理是至关重要的。在给定的选项中,正确答案是B,内存回收程序负责释放无用内存。在Java和Android中,垃圾收集器(GC)自动执行内存回收,程序员不需要手动释放内存。选项A、C和D都是不正确的,因为它们描述了需要程序员直接参与内存管理的情况,而这在现代的Java环境和Android系统中并不常见。
异常处理是编程中的基本技能。在给定的多选题中,ArithmeticException、IllegalArgumentException、NullPointerException和BufferUnderflowException都属于RuntimeException。这些异常通常在程序运行时发生,表明程序逻辑错误,需要开发者进行修复。
关于`Math.round()`函数,当传入的浮点数是正数时,它会返回最接近的整数,如果浮点数刚好在两个整数之间,则会向上取整。所以`Math.round(11.5)`等于12,`Math.round(-11.5)`等于-12。因此,正确答案是C。
在提供的代码段中,`b`的值取决于多个条件表达式的组合。每个条件都在逻辑运算符`&&`和`||`之间,其中`x>50`和`y>60`都不成立,其他条件同样不成立,所以`b`的值为`false`。因此,该程序段的输出是B,即`false`。
Activity的生命周期管理是Android开发的基础。对资源和状态的保存最好在`onSaveInstanceState()`或`onPause()`中进行,而不是`onCreate()`, `onResume()`或`onStart()`。选项D的`onPause()`是正确选择,因为它在Activity暂停之前被调用,是保存数据的理想时机。
Intent在Android中起着关键作用,用于在组件之间传递数据和控制流程。它可以携带各种类型的数据,如Serializable、CharSequence、Parcelable和Bundle,并且连接四大组件:Activity、Service、BroadcastReceiver和ContentProvider。选项C正确描述了Intent的作用。
SAX解析XML文件是一种基于事件驱动的解析方式,它只在解析到相应元素时触发事件,不需要将整个文档加载到内存,因此选项B正确,表示SAX解析占用资源少。而选项A和C描述的是DOM解析器的特点,选项D则错误地认为SAX解析的数据不会持久存在。
自定义Style的正确方式是在`<resources>`标签内定义一个`<style>`标签,如`<style name="myStyle">...</style>`,然后可以设置属性和父样式。
以上就是Android面试题中涉及的一些核心知识点,包括内存管理、异常处理、数学运算、Activity生命周期、Intent使用以及XML解析方式的选择。深入理解和掌握这些概念对于通过Android面试至关重要。