Java Là Gì?
Java là một ngôn ngữ lập trình và một nền tảng (platform). Java là ngôn ngữ lập trình cấp cao, mạnh mẽ, hướng đối tượng và an toàn.
Java platform là gì?
Một nền tảng (platform) là phần cứng hoặc môi trường phần mềm mà chương trình hoạt động trên đó. Ví dụ như Windows, Linux, Solaris OS và Mac OS. Nền tảng thường bao gồm cả hệ điều hành và phần cứng bên dưới.
Nền tảng Java thì khác biệt: Nó hoàn toàn là phần mềm, có thể chạy trên bất kỳ nền tảng phần cứng nào khác. Điều này giống như việc bạn có một chương trình dịch ở giữa, giúp các chương trình Java hoạt động trên bất kỳ máy tính nào, bất kể máy tính đó dùng Windows, Linux hay Mac.
Nền tảng Java có hai thành phần chính:
1. Máy ảo Java (Java Virtual Machine - JVM).
2. Giao diện lập trình ứng dụng Java (Java Application Programming Interface - API).
1. Máy ảo Java (Java Virtual Machine - JVM)
Là nền tảng trung gian giúp các chương trình Java chạy trên mọi hệ điều hành.
Các bước diễn ra khi bạn chạy một ứng dụng Java:
↳ Mã nguồn Java: Tất cả mã nguồn Java được viết trong các tệp văn bản thuần với phần mở rộng .java.
↳ Trình biên dịch javac: Các tệp nguồn này sau đó được biên dịch thành các tệp .class bởi trình biên dịch javac.
↳ Bytecode: Một tệp .class không chứa mã gốc cho bộ xử lý của bạn thay vào đó nó chứa các bytecode - ngôn ngữ máy của Máy ảo Java (Java VM).
↳ Java Virtual Machine (JVM): JVM là một chương trình hoạt động giống như một môi trường trung gian, cho phép các chương trình Java chạy trên bất kỳ hệ điều hành nào.
↳ Trình khởi chạy java: Công cụ khởi chạy java sau đó chạy ứng dụng của bạn với một phiên bản của Máy ảo Java.

Chạy trên nhiều hệ điều hành nhờ Máy ảo Java (JVM)
Máy ảo Java (JVM) đóng vai trò quan trọng giúp Java trở thành ngôn ngữ lập trình linh hoạt. Vì JVM có sẵn trên nhiều hệ điều hành khác nhau, các file .class được tạo ra từ mã nguồn Java có thể chạy được trên: Microsoft Windows, Linux, Mac OS. Điều này giúp bạn tiết kiệm thời gian và công sức vì không cần viết lại code cho từng hệ điều hành riêng biệt. Chỉ cần biên dịch mã nguồn Java một lần và các file .class tạo ra có thể chạy trên bất kỳ hệ điều hành nào có hỗ trợ JVM.

Thuật ngữ "Java Virtual Machine" hay "JVM" dùng để chỉ một chương trình trung gian dành cho nền tảng Java.
2. Giao diện lập trình ứng dụng Java (Java Application Programming Interface - API)
Là bộ sưu tập các thư viện phần mềm sẵn có cung cấp nhiều tính năng hữu ích. Các thư viện này được nhóm thành các gói (package) chứa các lớp (class) và giao diện (interface) liên quan

Mặc dù là một nền tảng độc lập (chạy được trên nhiều hệ điều hành), Java đôi khi có thể chậm hơn một chút so với mã gốc (native code) được viết riêng cho từng hệ điều hành. Tuy nhiên, sự tiến bộ của trình biên dịch và công nghệ Máy ảo Java đang giúp thu hẹp khoảng cách về hiệu suất giữa Java và mã gốc, mà vẫn giữ được tính năng ưu việt là khả năng chạy trên nhiều hệ điều hành khác nhau.
Nhiều nhà phát triển, ngay cả những nhà phát triển ngôn ngữ lập trình Java lâu năm, cũng không hiểu các nền tảng khác nhau liên quan với nhau như thế nào.
Bốn nền tảng phổ biến của lập trình Java:
Mỗi nền tảng Java đều bao gồm một Máy ảo Java (JVM) và một Giao diện lập trình ứng dụng (API). Máy ảo Java là chương trình chạy trên một nền tảng phần cứng và phần mềm cụ thể, giúp các ứng dụng Java hoạt động. API là tập hợp các thành phần phần mềm mà bạn có thể sử dụng để xây dựng các thành phần phần mềm hoặc ứng dụng khác. Mỗi nền tảng Java cung cấp một Máy ảo và một API riêng, cho phép các ứng dụng được viết cho nền tảng đó chạy trên bất kỳ hệ thống tương thích nào, tận dụng các lợi thế của ngôn ngữ lập trình Java: không phụ thuộc nền tảng, mạnh mẽ, ổn định, dễ phát triển và bảo mật.
1. Java Platform, Standard Edition (Java SE).
Khi nói đến Java, hầu hết mọi người nghĩ đến Java SE API. Java SE API cung cấp các chức năng cốt lõi của ngôn ngữ lập trình Java. Nó bao gồm mọi thứ, từ các kiểu dữ liệu và đối tượng cơ bản của Java đến các lớp cao cấp được sử dụng cho mạng, bảo mật, truy cập cơ sở dữ liệu, phát triển giao diện người dùng đồ họa (GUI) và phân tích cú pháp XML.
Ngoài API cốt lõi, nền tảng Java SE còn bao gồm Máy ảo Java, công cụ phát triển, công nghệ triển khai và các thư viện lớp và bộ công cụ khác thường được sử dụng trong các ứng dụng Java.
2. Java Platform, Enterprise Edition (Java EE).
Nền tảng Java EE được xây dựng dựa trên nền tảng Java SE. Java EE cung cấp API và môi trường runtime để phát triển và chạy các ứng dụng mạng lớn, nhiều lớp, có khả năng mở rộng, đáng tin cậy và bảo mật.
3. Java Platform, Micro Edition (Java ME).
Nền tảng Java ME cung cấp API và Máy ảo dung lượng nhỏ để chạy các ứng dụng Java trên các thiết bị nhỏ như điện thoại di động. API là một tập con của Java SE API, cùng với các thư viện lớp đặc biệt hữu ích cho phát triển ứng dụng trên thiết bị nhỏ. Các ứng dụng Java ME thường là ứng dụng khách của các dịch vụ nền tảng Java EE.
4. JavaFX.
JavaFX là một nền tảng để tạo các ứng dụng web phong phú bằng cách sử dụng API giao diện người dùng nhẹ. Ứng dụng JavaFX tận dụng card đồ họa và engine đa phương tiện được tăng tốc phần cứng để tận dụng các máy khách hiệu suất cao hơn, giao diện hiện đại và các API cấp cao để kết nối với các nguồn dữ liệu mạng. Ứng dụng JavaFX cũng có thể là ứng dụng khách của các dịch vụ nền tảng Java EE.