Tính chất viết một lần chạy nhiều nơi của java là gì

Lý do chính tạo ra Ngôn ngữ Lập trình Java là để làm nó di động, đơn giản và an toàn.

Ngoài ra, cũng có một số nét đặc sắc mà đóng một vai trò quan trọng trong sự phổ biến của ngôn ngữ Java. Các tính năng của Java còn được gọi là Java buzzwords.

12 Tính năng chính của Java

Một danh sách các tính năng quan trọng nhất của ngôn ngữ Java là:

  1. Đơn giản
  2. Hướng đối tượng
  3. Di động
  4. Độc lập với nền tảng
  5. Bảo mật
  6. Mạnh mẽ
  7. Kiến trúc trung tập
  8. Kết hợp thông dịch và Biên dịch
  9. Hiệu suất cao
  10. Đa luồng
  11. Phân tán
  12. Động

1. Tính Đơn giản của Java

Java dễ học và cú pháp của nó rất đơn giản, rõ ràng dễ hiểu. Theo Sun, ngôn ngữ Java là ngôn ngữ lập trình đơn giản vì:

  • Cú pháp Java dựa trên C ++ [để các lập trình viên dễ dàng học nó hơn là C ++].
  • Java đã loại bỏ nhiều tính năng phức tạp và hiếm khi được sử dụng, ví dụ, con trỏ rõ ràng, toán tử Overloading, v.v.
  • Không cần phải loại bỏ các đối tượng không được ước tính bởi vì có Java thu gom rác tự động.

2. Tính Hướng đối tượng

Java là một ngôn ngữ lập trình hướng đối tượng. Mọi thứ trong Java là một đối tượng. Hướng đối tượng có nghĩa là chúng ta tổ chức phần mềm của chúng ta dưới dạng kết hợp các loại đối tượng khác nhau kết hợp cả dữ liệu và hành vi.

Lập trình hướng đối tượng [OOP – Object Oriented Programming] là một phương pháp giúp đơn giản hóa việc phát triển và bảo trì phần mềm bằng cách cung cấp một số quy tắc.

Các khái niệm cơ bản của OOP là:

  1. Object [Đối tượng]
  2. Class [Lớp]
  3. Inheritance [Kế thừa]
  4. Polymorphism [Đa hình]
  5. Abstraction [Trừu tượng]
  6. Encapsulation [Đóng gói]

3. Tính Độc lập với nền tảng của Java

Java độc lập với nền tảng vì nó khác với các ngôn ngữ khác như C, C ++, v.v. được biên dịch thành mã máy cụ thể của từng nền tảng trong khi Java là ngôn ngữ được viết một lần, chạy mọi nơi. [Nền tảng hay còn gọi là Platform là môi trường phần cứng hoặc phần mềm đê chương trình chạy trong đó]

  • Tìm hiểu thêm: Platform là gì?

Có hai loại nền tảng dựa trên phần mềmdựa trên phần cứng thì Java cung cấp một nền tảng dựa trên phần mềm.

Java platform khác với hầu hết các nền tảng khác: Nó là một nền tảng dựa trên phần mềm chạy trên các nền tảng dựa trên phần cứng khác. Nó có hai thành phần:

  1. Runtime Environment [Môi trường thực thi]
  2. API[Application Programming Interface]

Mã Java có thể được chạy trên nhiều nền tảng, ví dụ: Windows, Linux, Sun Solaris, Mac / OS, v.v.

Mã Java được trình biên dịch biên dịch và chuyển đổi thành bytecode. Bytecode này là một mã độc lập với nền tảng bởi vì nó có thể được chạy trên nhiều nền tảng, tức là, “Viết một lần và chạy mọi nơi”.

4. Tính Bảo mật của Java

Java được biết đến và phổ biến cũng vì tính bảo mật của nó. Với Java, chúng ta có thể phát triển các hệ thống không có vi-rút. Java được bảo mật vì:

  • Không explicit poiter
  • Các chương trình Java chạy bên trong một máy ảo sandbox [Vituarl Machine Sandbox]
  • Classloader: Classloader trong Java là một phần của Môi trường thực thi Java [JRE], được sử dụng để tải các lớp Java vào Máy ảo Java một cách linh hoạt. Nó bổ sung bảo mật bằng cách tách package cho các lớp của hệ thống tệp cục bộ khỏi các lớp được nhập từ các nguồn mạng.
  • Bytecode Verifier: Nó kiểm tra các đoạn mã để tìm mã bất hợp pháp có thể vi phạm quyền truy cập vào các đối tượng.
  • Security Manager: Nó xác định những tài nguyên nào mà một lớp có thể truy cập như đọc và ghi vào đĩa cục bộ.
Tính bảo mật của Java

Ngôn ngữ Java cung cấp khả năng bảo mật theo mặc định. Một số bảo mật tăng cường khác cũng có thể được cung cấp bởi một nhà phát triển ứng dụng rõ ràng thông qua SSL, JAAS, Cryptography, v.v.

5. Tính Mạnh mẽ

Java chỉ đơn giản là Mạnh mẽ. Java rất mạnh vì:

  • Nó sử dụng quản lý bộ nhớ mạnh mẽ.
  • Không con trỏ – Tránh các vấn đề bảo mật.
  • Có bộ thu gom rác tự động trong java chạy trên Máy ảo Java để loại bỏ các đối tượng không còn được sử dụng bởi ứng dụng Java nữa.
  • Có cơ chế xử lý ngoại lệ và cơ chế kiểm tra kiểu trong Java. Tất cả những điểm này làm cho Java trở nên cực kỳ mạnh mẽ.

6. Kiến trúc Trung lập

Java kiến ​​trúc trung lập vì không có các tính năng phụ thuộc triển khai, ví dụ, kích thước của các kiểu nguyên thủy là cố định.

Trong lập trình C, kiểu dữ liệu int chiếm 2 byte bộ nhớ cho kiến ​​trúc 32 bit và 4 byte bộ nhớ cho kiến ​​trúc 64 bit. Tuy nhiên, Trong Java nó chỉ chiếm 4 byte bộ nhớ cho cả kiến ​​trúc 32 và 64 bit.

7. Tính di động của Java

Java có tính di động theo nghĩa đen. Bạn có thể mang theo được vì nó tạo điều kiện cho bạn mang mã bytecode đến bất kỳ nền tảng nào. Nó không yêu cầu bất kỳ triển khai nào.

8. Hiệu năng cao

Java nhanh hơn các ngôn ngữ lập trình truyền thống khác vì bytecode của Java ‘gần’ với mã máy gốc. Nó vẫn chậm hơn một chút so với ngôn ngữ được biên dịch [ví dụ: C ++]. Java là một ngôn ngữ được thông dịch, kết hợp biên dịch, đó là lý do tại sao nó chậm hơn các ngôn ngữ được biên dịch hoàn toàn.

9. Tính chất phân tán

Java có tính chất phân tán vì nó tạo điều kiện cho người dùng tạo ra 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 phân tán. Tính năng này của Java làm cho chúng ta có thể truy cập các tệp bằng cách gọi các phương thức từ bất kỳ máy nào trên internet.

10. Tính Đa luồng

Một luồng giống như một chương trình riêng biệt, thực hiện đồng thời. Chúng ta có thể viết các chương trình Java xử lý nhiều tác vụ cùng một lúc bằng cách xác định nhiều luồng.

Ưu điểm chính của tính đa luồng trong Java là nó không chiếm bộ nhớ cho mỗi luồng. Nó chỉ chia sẻ một vùng nhớ chung. Đa luồng rất quan trọng cho multi-media, ứng dụng Web, v.v.

11. Tính động

Java là một ngôn ngữ động. Nó hỗ trợ tải động của các lớp. Nó có nghĩa là các lớp được tải theo yêu cầu. Nó cũng hỗ trợ các tính năng native nổi bật như C và C++ [Bởi vì vốn nó được phát triển dựa vào C và C++ mà]

Java hỗ trợ biên dịch động và quản lý bộ nhớ tự động [thu gom rác].

Trên đây là 11 tính năng chính của Java. Các tính năng giúp Java ngôn ngữ lập trình chính phổ biến nhất trong nhiều năm qua.

Mặc dù Javascript và Python rất HOT trong 1 vài năm trở lại đây. Nhưng Java là chưa thể thay thế. Danh hiệu “Ngôn ngữ lập trình chính phổ biến nhất” vẫn sẽ còn theo Java dài dài.

  • Xem thêm: Nên học Java hay PHP để Lập trình Web?

Chúng ta bắt đầu với phần học về Java Core. Phần này bao gồm khá nhiều lý thuyết khô khan và khó nhớ. Nên khi phỏng vấn cũng khá ít hỏi về cái này. Nhưng quân tử phòng thân, vậy nên chúng ta cũng cần phải ôn qua xem những nội dung chính của các câu hỏi phỏng vấn Java Core có những gì nha.

Câu 1: Sự khác nhau giữa JDK, JRE và JVM

  • JVM là một thiết bị máy ảo giúp Java có thể thực thi Java Bytecode.
  • JRE cung cấp các thư viện và các file cần thiết cho JVM thực thi.
  • JDK bao gồm JRE và Development Tool.

Câu 2: Tính chất “viết một lần chay nhiều nơi” của Java có nghĩa là gì?

Java code được biên dịch thành Bytecode. Byte code không phải nền tảng mà là một loại ngôn ngữ có thể chạy ở nhiều nơi.

Câu 3: Liệt kê các kiểu dữ liệu nguyên thủy của Java?

byte, short, char, int, long, float, double và boolean

Câu 4: Có những loại toán tử nào trong Java?

  • Toán tử số học: +, -, *, /, %, ++, —
  • Toán tử quan hệ: ==, !=, =,
  • Toán tử thao tác với bit: &, |, ^, ~, , >>> [Toán tử này chúng ta ít sử dụng, nhưng nếu muốn performance cao thì cần phải biết]
  • Toán tử logic: &&, ||, !
  • Toán tử gán: =, +=, -=, *=, …
  • Toán tử điều kiện

Câu 5: Biểu thức tiền tố và hậu tố khác nhau gì?

Câu này thì các bạn cứ lấy ví dụ cho dễ giải thích nha.

Ví dụ có 2 biểu thức là b=++a và b=a++

Biểu thức 1 thì tăng a trước rồi gắn giá trị mới của a cho b.

Biểu thức 2 thì gắn giá trị của a cho b sau đó mới tăng giá trị của a

Hết rồi đó. Cũng khá đơn giản thôi phải không. Nhưng đây mới chỉ là khởi động thôi. Các bài tiếp theo sẽ liên quan đến phần quan trọng nhất trong Java, là nền tảng mà nếu chúng ta không nắm vững thì chúng ta không thể học được những phần nâng cao khác [không có gốc thì làm sao có ngọn nhỉ]. Đó chính là OOP. Hẹn gặp lại các bạn trong phần tiếp theo.

Author: Nguyễn Minh Quân

Đăng ký nhận bộ tài liệu kỹ năng dành cho lập trình viên [video hướng dẫn + slide] tại đây

Tìm hiểu thêm về mô hình Coding Bootcamp tại đây

Video liên quan

Chủ Đề