Quy trình biên dịch Java
- Source code:
.javafile (chứa một hoặc nhiều class definition). - Compiler (
javac) biên dịch thành bytecode. - Mỗi
class(top-level, nested static, enum, interface) → một file.classriêng biệt. - File
.classchứa bytecode, được JVM thực thi.
Ví dụ
// File: ClassTest.java
class A { A() { System.out.println("This is class A"); } }
class B { B() { System.out.println("This is class B"); } }
class C { C() { System.out.println("This is class C"); } }
public class ClassTest {
public static void main(String[] args) {
new A(); new B(); new C();
}
}
Sau khi chạy javac ClassTest.java, sẽ sinh ra 4 file .class:
A.classB.classC.classClassTest.class(public class trùng tên file)
Kết quả chạy java ClassTest
This is class A
This is class B
This is class C
Lưu ý: Nested class non-static (inner class) cũng sinh file riêng: Outer$Inner.class. Anonymous class: Outer$1.class, Outer$2.class...