Java là gì?

Java là một ngôn ngữ lập trình bậc cao, đa năng, hướng đối tượng và bảo mật được phát triển bởi James Gosling tại Sun Microsystems, Inc. vào năm 1991. Lúc bấy giờ nó được gọi là OAK. Năm 1995, Sun Microsystem đổi tên ngôn ngữ lập trình này thành Java. Năm 2009, Sun Microsystem được Oracle Corporation tiếp quản.

 

Các phiên bản của Java (Java editions)

Mỗi phiên bản Java có các khả năng khác nhau. Có ba phiên bản Java:

 

  • Java Standard Editions (JSE): được sử dụng để tạo các chương trình cho máy tính để bàn.
  • Java Enterprise Edition (JEE): được sử dụng để tạo các chương trình lớn chạy trên máy chủ và quản lý lưu lượng lớn các giao dịch phức tạp.
  • Java Micro Edition (JME): được sử dụng để phát triển các ứng dụng cho các thiết bị nhỏ như hộp giải mã tín hiệu, điện thoại và các thiết bị gia dụng.
  • JavaFX: được dùng để phát triển các ứng dụng internet phong phú. Nó sử dụng một API giao diện người dùng nhẹ.

Các loại ứng dụng Java (Java applications)

Có bốn loại ứng dụng Java:

  • Ứng dụng độc lập (standalone application): sử dụng các thành phần GUI như AWT, Swing và JavaFX. Các thành phần này chứa các nút, danh sách, menu, bảng điều khiển cuộn, v.v. 
  • Ứng dụng doanh nghiệp: Một ứng dụng được phân phối trong tự nhiên được gọi là ứng dụng doanh nghiệp.
  • Ứng dụng web: Ứng dụng chạy trên máy chủ được gọi là ứng dụng web. Người ta sử dụng các công nghệ JSP, Servlet, Spring và Hibernate để tạo các ứng dụng web.
  • Ứng dụng di động: Java ME là một đa nền tảng (cross-platform) để phát triển các ứng dụng di động chạy trên smartphone. Nói cụ thể, Java là một nền tảng để phát triển ứng dụng trong Android.

Nền tảng Java (Java platform)

Nền tảng Java là một tập hợp các chương trình giúp phát triển và chạy một chương trình được viết bằng ngôn ngữ lập trình Java. Nền tảng Java bao gồm một công cụ thực thi, một trình biên dịch và một bộ thư viện. Java là một ngôn ngữ độc lập với nền tảng (platform-independent), có nghĩa là bạn có thể viết một phần mềm bằng Java, chỉ viết một lần và đem nó đi chạy trên tất cả các platform (vừa có thể là phần cứng, phần mềm,…).

 

Các tính năng của Java

  • Đơn giản: Java là một ngôn ngữ đơn giản vì cú pháp của nó đơn giản, gọn gàng và dễ hiểu. Các khái niệm phức tạp và mơ hồ của C ++ đều bị loại bỏ hoặc được triển khai lại trong Java. Ví dụ, nạp chồng con trỏ và toán tử không được sử dụng trong Java.

 

  • Hướng đối tượng (object-oriented): Trong Java, mọi thứ đều ở dạng đối tượng. Có nghĩa là nó có một số dữ liệu và hành vi. Một chương trình phải có ít nhất một lớp (class) và đối tượng (object).

 

  • Mạnh mẽ: Java cố gắng kiểm tra lỗi trong thời gian chạy (run time) và thời gian biên dịch (compile time). Nó sử dụng một hệ thống quản lý bộ nhớ mạnh được gọi là bộ thu gom rác (garbage collector), các tính năng xử lý ngoại lệ và thu gom rác này giúp Java trở nên mạnh mẽ.

 

  • Bảo mật: Java là một ngôn ngữ lập trình bảo mật vì nó không có con trỏ rõ ràng và các chương trình chạy trong máy ảo. Java chứa trình quản lý bảo mật xác định quyền truy cập của các Java class.

 

  • Độc lập với nền tảng (platform-independent): Như đã nêu ở trên, Java cung cấp một sự đảm bảo rằng code chỉ cần được viết một lần và có thể chạy ở mọi nơi. Byte code này độc lập với nền tảng và có thể chạy trên bất kỳ máy nào.

  • Di động: Tương ứng với đặc tính platform-independent, Java Byte code có thể được chuyển sang bất kỳ nền tảng nào và cũng không có tính năng phụ thuộc vào triển khai (implementation-dependent). Mọi thứ liên quan đến lưu trữ đều được xác định trước, ví dụ, kích thước của các kiểu dữ liệu nguyên thủy.

 

  • Hiệu suất cao: Java là một ngôn ngữ thông dịch mang đến hiệu suất cao với việc sử dụng trình biên dịch Just-In-Time.

 

  • Phân tán: Java cũng có các networking facility. Java được thiết kế cho môi trường phân tán của internet vì nó hỗ trợ giao thức TCP/IP. EJB và RMI được sử dụng để tạo ra một hệ thống phân tán.

 

  • Đa luồng: Java cũng hỗ trợ đa luồng. Có nghĩa là nó có thể xử lý nhiều hơn một công việc trong một lúc.

OOP (Hệ thống lập trình hướng đối tượng)

Lập trình hướng đối tượng (Object-oriented programming) là một cách giải quyết một vấn đề phức tạp bằng cách chia chúng thành một vấn đề con nhỏ hơn. Đối tượng là một thực thể trong thế giới thực, vì thế, sẽ dễ dàng hơn để phát triển một chương trình bằng cách sử dụng một đối tượng nhất định. Trong OOP, các chương trình sử dụng lớp (class) và đối tượng (object) được tạo ra theo một cách có cấu trúc.

 

Lớp (class): Lớp là một khuôn mẫu, bản thiết kế hoặc nguyên mẫu xác định các thành viên và phương thức dữ liệu của một đối tượng. Đối tượng là một ví dụ của lớp. Chúng ta có thể định nghĩa một lớp bằng cách sử dụng từ khóa lớp (class keyword).

 

Đối tượng (object): Đối tượng là một thực thể trong thế giới thực có thể được xác định một cách riêng biệt. Ví dụ, một cái bàn, một hình tròn có thể được coi là những đối tượng. Mỗi đối tượng có một hành vi (behavior), danh tính (identity) và trạng thái (state) duy nhất. Các trường dữ liệu với giá trị hiện tại của chúng đại diện cho trạng thái của một đối tượng (còn được gọi là properties hoặc attributes).

 

Tính trừu tượng (abstraction): Abstraction là một phương pháp ẩn thông tin không liên quan khỏi người dùng. Ví dụ, tài xế chỉ biết lái ô tô; không cần biết làm thế nào mà ô tô chạy được. Chúng ta có thể tạo một class abstract bằng cách sử dụng abstract keyword. Trong Java, phải sử dụng abstract class và giao diện để đạt được tính trừu tượng này.

 

Đóng gói (encapsulation): Đóng gói là quá trình liên kết dữ liệu và chức năng thành một đơn vị duy nhất. Một lớp là một ví dụ về đóng gói. Trong Java, Javabean là một lớp được đóng gói hoàn chỉnh.

 

Kế thừa (inheritance): Kế thừa là cơ chế trong đó một lớp có được tất cả các tính năng của lớp khác. Chúng ta có thể đạt được sự kế thừa bằng cách sử dụng từ khóa expand. Nó tạo điều kiện cho việc tái sử dụng code.

 

Tính đa hình (polymorphism): Tính đa hình là khả năng xuất hiện ở nhiều dạng. Nói cách khác, hành động đơn lẻ theo những cách khác nhau. Ví dụ, một cậu bé trong lớp cư xử như một học sinh, trong nhà cư xử như một cậu con trai. Có hai loại đa hình: đa hình thời gian chạy và đa hình thời gian biên dịch.

Tổng hợp việc làm IT - Software trên VietnamWorks
VietnamWorks InTECH
Theo Javapoint