Tổng quan về Java



Java có rất nhiều đặc điểm và tính năng nổi bật. Dưới đây là một số đặc điểm của Java mà bạn có thể dễ dàng biết và tìm hiểu:

  • Đơn giản

  • Hướng đối tượng

  • Độc lập nền tảng

  • Bảo mật

  • Robust

  • Độc lập cấu trúc

  • Portable

  • Dynamic

  • Thông dịch

  • Hiệu suất cao

  • Đa luồng (Multi-thread)

  • Distributed

Đơn giản

Bạn có thể hiểu rằng, đặc điểm đơn giản của Java là do:

Thứ nhất, cú pháp của nó dựa trên C++ (vì thế nó khá dễ dàng cho các sinh viên sau khi đã học C++ tại năm đầu đại học).

Thứ hai, 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ử, …

Và cuối cùng, bạn không cần xóa các đối tượng mà không được tham chiếu, bởi vì hãy để những thứ đó cho Bộ dọn rác tự động (Garbage Collection) trong Java.

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 một sự kết hợp của nhiều loại đối tượng khác nhau mà kết hợp chặt chẽ cả về dữ liệu lẫn 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à duy 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 bao đóng

Độ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 trong đó một chương trình chạy. 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. Nó có hai thành phần:

  • 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 Bộ 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. Với lý do này, đến đây bạn có thể hiểu được tại sao khi nói về Java, người ta thường nói đến 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 là an toàn bởi vì:

  • Không có con trỏ tường minh.

  • Chương trình chạy bên trong các hộp thiết bị ảo.

  • Classloader: Thêm sự bảo vệ bằng việc phân biệt riêng rẽ các package cho các lớp của hệ thống local file 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, lập trình viên còn có thể cung cấp một số tính năng bảo mật khác thông qua SSL, JAAS, …

Robust

Bạn có thể hiểu đơn giản Robust nghĩa là mạnh mẽ. Java sử dụng hệ quản trị 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 đó còn có Trình dọn rác tự động (Garbage Collection) trong Java. Đó là Xử lý ngoại lệ (Exception Handling) và kiểm tra kiểu. Tất cả những thứ này là cho Java là Robust.

Độc lập cấu trúc

Đó là không có đặc điểm nào mà phụ thuộc vào trình triển khai, ví dụ như kích cỡ của kiểu dữ liệu gốc đã được thiết lập.

Portable

Chúng ta có thể mang Java Bytecode tới bất cứ nền tảng nào.

Hiệu suất cao

Với việc sử dụng Just-In-Time compilers, Java giúp nâng cao hiệu năng, giúp việc debug được dễ dàng cũng như nhanh chóng phát hiện lỗi.

Phân tán (Distributed)

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.

Đa luồng (Multi-thread)

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, …