class
class文件是一种被JVM识别,加载并且执行的文件格式 。主要在平台无关性和网络移动性方面使Java更适合网络。它在平台无关性方面的任务是:为Java程序提供独立于底层主机平台的二进制形式的服务。该文件打破了C或者C++等语言所遵循的传统,使用这些传统语言写的程序通常首先被编译,然后被连接成单独的、专门支持特定硬件平台和操作系统的二进制文件
它的内存占用极大,不适合移动端,速度慢,文件IO操作多,类查找慢
dex
dex文件是一种能被DVM或ART识别,加载并且执行的文件格式。作用就是记录整个Android工程。文件头包含dex信息,所有数据的大致情况
本质上与class文件一致,是二进制流文件。class文件存在冗余信息,dex文件则去掉了冗余,并且整合了整个工程的类信息