Tại sao Java là một ngôn ngữ lập trình độc lập nền tảng?

Chào các bạn, như ở phần giới thiệu, mình là một Java Developer. Do đó, blog này mình sẽ tập trung vào Java và các công nghệ liên quan. Bài viết đầu tiên này mình sẽ giải thích lý do tại sao Java là một ngôn ngữ độc lập nền tảng, tất nhiên cũng chỉ ở mức “high level”. Nào, chúng ta cùng bắt đầu nhé.

Giới thiệu 

Đầu tiên, chúng ta tìm hiểu khái niệm nền tảng (platform). Định nghĩa theo kiểu “hàn lâm” thì nền tảng là môi trường bao gồm phần cứng hoặc phần mềm mà một chương trình có thể chạy. Ví dụ nền tảng Windows, nền tảng Ubuntu, nền tảng Mac OS…
Bản thân Java vừa là một ngôn ngữ lập trình và cũng là một nền tảng.

Vậy tại sao Java là một ngôn ngữ lập trình độc lập nền tảng?

Trước hết chúng ta cần phải biết tất cả các chương trình đều cần được biên dịch thành dạng mã máy để có thể chạy được trên các nền tảng, và mã máy cho các nền tảng hệ điều hành là khác nhau ví dụ file thực thi trên Windows là .exe, file thực thi trên Linux là .sh …

Một chương trình Java sẽ được biên dịch thành một dạng mã đặc biệt gọi là Java bytecode, trên từng nền tảng hệ điều hành, Java sẽ cung cấp máy ảo (Java virtual machine – JVM) tương ứng để chuyển mã Java bytecode thành mã máy. Do đó, code Java sẽ chạy được trên các nền tảng khác nhau trên các JVM. Nên ta gọi Java là ngôn ngữ độc lập nền tảng, WRITE ONE, RUN ANYWHERE hay WRITE ONE, RUN EVERYWHERE.

Java là một ngôn ngữ độc lập nền tảng

Hình minh họa cho vai trò của JVM

Câu hỏi đặt ra là tại sao JVM không biên dịch trực tiếp mã nguồn (source code) Java thành mã máy tương ứng mà phải cần trình biên dịch biên dịch thành Java bytecode rồi mới chuyển bytecode thành mã máy?

Câu trả lời chính là khả năng giải quyết vấn đề hiệu năng (performance) và khả năng độc lập nền tảng cho chương trình (ứng dụng) Java.

Xem thêm:

https://www.quora.com/Why-does-Java-use-a-Java-byte-code

http://www.javatpoint.com/difference-between-jdk-jre-and-jvm

http://www.javatpoint.com/internal-details-of-jvm

2 thoughts on “Tại sao Java là một ngôn ngữ lập trình độc lập nền tảng?

  1. Pingback: Những khái niệm cơ bản về JMS – thachleblog | Java Technologies

  2. Pingback: Những khái niệm cơ bản về JMS (Java Message Service) » Thach Le

Leave a Reply

Your email address will not be published. Required fields are marked *