Ngôn ngữ lập trình Java ban đầu được phát triển bởi Sun Microsystem do James Gosling khởi xướng và được phát hành vào năm 1995 như là một thành phần cốt lõi của nền tảng Java của Sun Microsystem.
Bản phát hành mới nhất của Java Standard Edition là Java SE 8. Với sự phát triển của Java và sự phổ biến rộng rãi của nó, nhiều cấu hình được xây dựng để phù hợp với nhiều loại nền tảng khác nhau. Ví dụ 2EE cho các ứng dụng doanh nghiệp, J2ME cho các ứng dụng mobile.
Phiên bản J2 mới được đổi tên tương ứng thành Java SE, Java EE, và Java ME. Java đảm bảo Write Once, Run Anywhere
- Object Oriented – Trong Java, tất cả là một object. Java có thể dễ dàng mở rộng vì nó dựa trên mô hình object
- Nền tảng độc lập – Không giống như nhiều ngôn ngữ lập trình khác bao gồm cả C và C++, khi Java không được biên dịch vào máy nền tảng cụ thể, thay vào đó là code byte độc lập với nền tảng. Code byte này được phân phối trên web và được thông dịch bởi máy ảo JVM trên bất kỳ nền tảng nào nó đang được chạy.
- Đơn giản – Java được thiết kế để dễ học, nếu bạn hiểu khái niệm cơ bản về OOP trong Java, nó sẽ giúp bạn dễ dàng thành thạo Java
- Bảo mật – Với tính năng bảo mật của Java, nó cho phép phát triển không có virus, hệ thống giả mạo, kỹ thuật xác thực sử dụng mã hoá public key
- Architecture-neutral – Trình biên dịch Java đưa ra một định dạng file object architecture-neutral, giúp cho việc biên dịch code được thực thi trên nhiều bộ vi xử lý, bằng việc sử dụng hệ thống Java runtime.
- Portable – architecture-neutral và không có các khía cạnh phụ thuộc đầy đủ của đặc tả giúp cho Java portable. Trình biên dịch trong Java được viết trong ANSI C
- Khoẻ – Java nỗ lực loại bỏ các tình huống dễ xảy ra lỗi bằng cách tập trung vào kiểm tra lỗi trong thời gian biên dịch và kiểm tra lúc runtime
- Đa luồng – Với tính năng đa luồng ủa Java, nó có thể viết các chương trình thực hiện nhiều tác vụ đồng thời. Tính năng thiết kế này cho phép các lập trình viên xây dựng các ứng dụng tương tác chạy mượt mà.
- Thông dịch – Java byte code được dịch nhanh chóng để hướng dẫn máy gốc và không được lưu trữ ở bất cứ đâu. Quá trình phát triển nhanh hơn và phân tích vì liên kết là một quá trình gia tăng và nhẹ.
- Hiệu suất cao – Với trình biên dịch Just-In-Time, Java cho hiệu suất cao
- Phân tán – Java được thiết kế cho môi trường phân tán của Internet
- Linh động – Java được coi là linh động hơn C và C++ vì nó được thiết kế để thích ứng với môi trường phát triển. Các chương trình Java có thể mang theo nhiều thông tin về run-time, có thể được sử dụng kiểm chứng và giải quyết các truy cập đến các object trên run-time