原版Android核心知识点笔记V202003301

preview
需积分: 0 2 下载量 22 浏览量 更新于2022-08-03 收藏 3.43MB PDF 举报
在深入探讨Android核心知识点之前,我们先来理解Java虚拟机(JVM)的工作流程,这是Android应用开发的基础。JVM是Java程序运行的平台,它的主要任务是执行字节码,提供了一个“一次编写,到处运行”的环境。 1.1.1 JVM工作流程 JVM的工作流程主要包括类加载、验证、准备、解析和初始化几个阶段。类加载器将类的.class文件加载到内存中;然后,验证确保字节码的正确性,防止恶意代码执行;接着,准备阶段为类的静态变量分配内存并初始化为默认值;解析阶段将符号引用转换为直接引用;初始化阶段执行类的初始化方法。 1.1.2 运行时数据区 JVM的运行时数据区包括堆内存、栈内存、方法区、程序计数器和本地方法栈。每个线程都有自己的程序计数器和栈,而堆和方法区是所有线程共享的。堆是对象的出生地,方法区存储类的信息,如常量池、字段和方法数据。 1.1.3 方法指令 JVM使用一系列字节码指令来执行方法。这些指令包括数据操作、运算控制、类型处理、对象操作、异常处理等,如`aload`用于加载引用到栈顶,`iadd`用于执行加法操作。 1.1.4 类加载器 类加载器负责加载类到JVM中。主要有引导类加载器、扩展类加载器和应用程序类加载器,以及用户自定义的类加载器。它们遵循双亲委派模型,即从顶层加载器开始尝试加载类,如果找不到则向下传递。 1.1.5 垃圾回收(GC) 垃圾回收是JVM自动管理内存的过程,旨在回收不再使用的对象所占用的空间。对象存活判断有引用计数法和可达性分析法,其中可达性分析法是现代JVM常用的方法。垃圾收集算法包括标记-清除、复制、标记-整理和分代收集等,每种算法各有优缺点。垃圾收集器如Serial、Parallel、CMS、G1等,针对不同的性能需求和应用场景。 1.2 static `static`关键字用于声明静态成员,包括静态变量和静态方法。静态成员属于类,而非类的实例,因此它们在类加载时就存在,不依赖于任何对象。 1.3 final `final`关键字用于声明不可变的变量、常量或类。对于变量,一旦赋值后就不能再改变;对于类,声明为`final`的类不能被继承;对于方法,`final`方法不能被子类重写。 这些是Android开发中基础的Java知识点,掌握它们有助于理解Android应用的运行机制和内存管理。在实际开发中,还需要学习更多高级特性,如多线程、并发控制、网络编程、数据库操作、UI设计等,这些都是构建高效、稳定、用户体验良好的Android应用的关键。