.class文件是Java编译器(javac)将Java源代码文件(.java文件)编译后生成的文件。这个文件包含了Java虚拟机(JVM)可以解释执行的字节码(bytecode)。
以下是.class文件的主要特性:
跨平台性:.class文件包含的是平台无关的Java字节码,而不是特定于某个硬件或操作系统的机器代码。这意味着你可以在一台机器上编译Java源代码生成.class文件,然后在另一台安装了JVM的机器上执行这个.class文件,无论这两台机器的硬件和操作系统是什么。
包含元数据:.class文件不仅包含Java字节码,还包含了类的元数据,如类名、方法名、字段名等。这些元数据在运行时被JVM用来动态加载类、链接类和执行方法等。
安全性:在加载.class文件时,JVM会进行字节码验证,确保字节码是有效的,不会破坏JVM的内存结构,也不会违反Java的安全规则。
以下是一个简单的Java程序编译和执行的过程:
编写Java源代码,保存为.java文件,例如HelloWorld.java。
使用Java编译器(javac)编译Java源代码,生成.class文件,例如HelloWorld.class。
bash
javac HelloWorld.java
使用Java虚拟机(java)执行.class文件。
bash
java HelloWorld
在这个过程中,HelloWorld.class文件就是Java编译器将HelloWorld.java源代码编译后生成的文件,它包含了JVM可以执行的字节码。