Java có rất nhiều tính năng nổi bật. Chúng được biết đến như những thuật ngữ quen thuộc. Các tính năng này đơn giản và dễ dàng để tìm hiểu. Dưới đây là danh sách các tính năng của java:
- Đơn giản (Simple)
- Hướng đối tượng (Object Oriented)
- Độc lập nền tảng (Platform Independent)
- Bảo mật (Secured)
- Robust (Mạnh mẽ)
- Kiến trúc - tập trung (Architecture-neutral)
- Khả chuyển (Portable)
- Năng động (Dynamic)
- Thông dịch (Interpreted)
- Hiệu suất cao (High Performance)
- Đa luồng (Multi-thread)
- Phân tán (Distributed)
Nội dung chính
Đơn giản
Ngôn ngữ Java có đặc điểm đơn giản là vì:
- Cú pháp dựa trên C++ (vì vậy việc học Java sẽ rất dễ dàng sau khi lập trình viên học C++)
- Gỡ bỏ nhiều đặc điểm gây bối rối và hiếm khi được sử dụng chẳng hạn như các con trỏ tường minh, nạp chồng toán tử, ...
- Bạn không cần xóa các đối tượng mà không được tham chiếu, bởi vì Bộ dọn rác tự động (Garbage Collection) trong Java sẽ làm việc đó thay bạn.
Hướng đối tượng
Hướng đối tượng nghĩa là chúng ta tổ chức phần mềm dưới dạng kết hợp của nhiều loại đối tượng khác nhau, trong đó có sự kết hợp chặt chẽ cả về dữ liệu và hành vi của chúng.
Lập trình hướng đối tượng (OOP) là một phương pháp làm đơn giản hóa việc phát triển và bảo trì phần mềm bằng việc cung cấp một số qui tắc.
Một số khái niệm cơ bản của hướng đối tượng (OOP) là:
- Đối tượng (Object)
- Lớp (Class)
- Tính kế thừa
- Tính đa hình
- Tính trừu tượng
- Tính đóng gói
Độc lập nền tảng
Một Platform là môi trường phần cứng hoặc phần mềm mà một hoặc nhiều chương trình chạy trong đó. Có hai loại Platform, một loại dựa trên phần mềm (software-based) và một loại dựa trên phần cứng (hardware-based). Java cung cấp software-based platform. Java Platform khác với nhiều nền tảng khác ở chỗ nó chạy trên các nền tảng hardware-based khác nhau. Nó có hai thành phần:
- JRE (Java Runtime Environment)
- API (Application Programming Interface)
Java code có thể chạy trên nhiều nền tảng như Windows, Linux, Sun Solaris, Mac/OS, ... Java code được biên dịch bởi Trình biên dịch (Compiler) và được chuyển đổi thành Bytecode. Bytecode này là một code độc lập nền tảng bởi vì nó có thể chạy trên nhiều nền tảng khác nhau. Đó là lý do vì sao java có khẩu hiệu "Viết một lần, Chạy khắp nơi (Write Once and Run Anywhere)".
Bảo mật
Java bảo mật bởi vì:
- Không có con trỏ tường minh.
- Chương trình chạy bên trong máy ảo.
- Classloader: Thêm sự bảo mật bằng việc phân chia package cho các class của hệ thống file trên local mà từ đó chúng được import với các file từ nguồn mạng.
- Bytecode Vertifier: Kiểm tra các đoạn code để tìm ra các phần code không hợp lệ mà có thể truy cập trái phép tới các đối tượng.
- Security Manager: Quyết định xem nguồn resource nào mà một lớp có thể truy cập chẳng hạn như đọc và ghi tới local disk.
Những tính năng bảo mật này được cung cấp bởi Ngôn ngữ Java. Ngoài ra, một vài tính năng bảo mật khác được cung cấp thông qua nhà phát triển như SSL,JAAS,cryptography, ...
Robust (Mạnh mẽ)
Bạn có thể hiểu đơn giản Robust nghĩa là mạnh mẽ. Java sử dụng trình quản lý bộ nhớ mạnh mẽ. Đó là, Java sử dụng ít con trỏ hơn để tránh các vấn đề liên quan tới bảo mật. Bên cạnh đó Java còn có Trình dọn rác tự động (Garbage Collection). Có xử lý ngoại lệ (Exception Handling) và cơ chế kiểm tra kiểu ngoại lệ xảy ra. Đó là những điểm nổi bật khiếm cho Java mạnh mẽ!
Kiến trúc - tập trung
Một ứng dụng được biên dịch trên kiến trúc phần cứng này và ứng dụng đó chạy được trên tất cả các kiến trúc phần cứng khác. vd: Một ứng dụng được biên dịch với vi xử lý 32bit và nó sẽ chạy tốt trên vi xử lý 64bit.
Portable
Java là ngôn ngữ lập trình có tính Portable bởi vì java có thể thực thi ứng dụng của nó trên tất cả các hệ điều hành và phần cứng khác nhau.Hiệu suất cao
Hiệu suất Java nhanh hơn kể từ khi được thông dịch thành ByteCode, mã nguồn gốc thì chậm hơn so với một số ngôn ngữ biên dịch (ví dụ như C++).Đa luồng (Multi-thread)
Chúng ta có thể tạo các ứng dụng phân tán trong Java. RMI và EJB được sử dụng để tạo các ứng dụng này. Chúng ta có thể truy cập các file bằng việc gọi các phương thức từ bất cứ thiết bị nào trên internet.
Phân tán (Distributed)
Một Thread là giống như một chương trình riêng rẽ, thực thi một cách đồng thời. Chúng ta có thể viết các chương trình Java mà xử lý nhiều tác vụ cùng một lúc bằng việc định nghĩa nhiều Thread. Lợi thế chính của Multi-thread là nó chia sẻ cùng bộ nhớ. Các Thread là quan trọng cho Multi-media, Web App, ...