[Java OOP] Bài 1 – Môi trường thực thi Java (JDK, KRE, JVM)

Ứng dụng Java chạy trên đa nền tảng từ Windows, Linux, Mac,…

Vậy tại sao Java có thể làm được điều đó trong khi các ngôn ngữ khác thường phải viết lại?

Trươc tiên cần hiểu chương trình chạy như thế nào?

Một chương trình hoạt động được đa phần do hoạt động dựa trên API mà hệ điều hành cung cấp.

VD: Bạn muốn hiển thị “hello” lên màn hình. Chương trình gọi API được cung cấp bởi hệ điều hành hiển thị từ “hello” lên màn hình cho bạn. Bạn không cần phải phân tích điểm ảnh, ghép nối chúng lại, giao tiếp phần cứng…Hệ điều hành sẽ làm giúp bạn

Vậy điều gì xảy ra khi bạn đem chương trình này qua OS khác. Các OS khác nhau có API khác nhau nên chương trình không chạy được mà bắt buộc phải compile lại.

Vậy điều gì giúp java chạy mọi nền tảng?

Chương trinh Java chạy được trên mọi nền tảng thật chất là chúng đang chạy trên một máy ảo (JMV) và người ta thiết kế nhiều máy ảo khác nhau cho các OS khác nhau.

 

cau_truc_jvm

 

Máy ảo Java được sinh ra với 3 mục đích chính:

  • Dịch mã Java ra mã máy chạy được trên các hệ điều hành khác nhau
  • Tăng tốc độ
  • Nâng cao độ bảo mật và tránh virus phá source code

JVM có 3 thành phần chính:

  • Class Loader: Tìm kiếm và load các file .class vào vùng nhớ của java dưới dạng bytecode
  • Class Area : vùng nhớ hệ thống cấp phát cho Java Virtual Machine
  • Execution Engine: chuyển các lệnh của JVM trong file *.class thành các lệnh của máy, hệ điều hành tương ứng và thực thi chúng.

JRE (là viết tắt của Java Runtime Environment) cung cấp môi trường triển khai JMV.

JDK (là viết tắt của Java Development Kit) bộ các công cung lập trình, bao gồm JRE.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s