Java là gì? Điểm khác nhau giữa Java và JavaScript

Java là gì? Điểm khác nhau giữa JavaScript và Java là gì? Đối với những người không rành công nghệ thì rất dễ bị nhầm lẫn giữa hai loại ngôn ngữ này khi nghe đến tên gọi của chúng. Vậy hãy cùng tìm hiểu để xem chúng có gì khác nhau nhé. 

1. Java là gì?

Java là gì?

Java là một ngôn ngữ lập trình hướng đối tượng, được sử dụng để phát triển các phần mềm, trang web, game, ứng dụng trên các thiết bị di động,…

Java được khởi đầu từ James Gosling và các đồng nghiệp của mình vào năm 1991, ban đầu chúng có bên gọi là Oak và được phát hành vào năm 1994. Cho đến năm 2010 thì được Oracle mua lại.

Java được tạo ra với tiêu chí “ Viết (code) một lần, thực thi khắp nơi”. Đây là ngôn ngữ độc lập với nền tảng, không giói hạn đối với bất kỳ phần cứng hoặc hệ điều hành cụ thể nào.

Chương trình phần mềm viết bằng Java có thể chạy trên mọi nền tảng (platform) khác nhau thông qua một môi trường thực thi với điều kiện có môi trường thực thi thích hợp hỗ trợ nền tảng đó.

2. Đặc điểm của ngôn ngữ lập trình Java

Đặc điểm của ngôn ngữ lập trình Java

Hướng đối tượng

Hướng đối tượng của Java tương tự như C++, vì muốn ngôn ngữ này dễ học và quen thuộc hơn với các đối tượng lập trình nên Sun MicroSystem đã sử dụng lại các cú pháp của C và C++.

Tuy nhiên trong Java thao tác với con trỏ bị lược bỏ nhằm đảm bảo tính an toàn và dễ sử dụng hơn. Các thao tác overload, goto hay các cấu trúc như struct và union cũng được loại bỏ khỏi Java.

Java là một ngôn ngữ hướng đối tượng và chủ yếu tập trung vào các đối tượng hơn là các quy trình. Java tuân theo khái niệm Lập trình hướng đối tượng (OOP) như:

  • Các đối tượng
  • Các lớp
  • Di sản
  • Đóng gói / Ẩn dữ liệu
  • Trừu tượng
  • Tính đa hình

Độc lập phần cứng và hệ điều hành

Một chương trình viết bằng ngôn ngữ Java có thể chạy được trên nhiều môi trường, hệ điều hành khác nhau, gọi là khả năng “Cross Platform”.

Khả năng độc lập phần cứng và hệ điều hành được thể hiện ở 2 cấp độ là cấp độ mã nguồn và cấp độ nhị phân.

  • Ở cấp độ mã nguồn: dữ liệu nhất quán cho tất cả các hệ điều hành và phần cứng khác nhau, có riêng một bộ thư viện để hỗ trợ vấn đề này. Có thể biên dịch trên nhiều loại máy khác nhau mà không gặp lỗi.
  • Ở cấp độ nhị phân: Một mã biên dịch có thể chạy trên nhiều nền tảng khác nhau mà không cần dịch lại mã nguồn. Tuy nhiên cần có Java Virtual Machine để thông dịch đoạn mã này.

Mã Java biên dịch thành bytecode (tệp .class), độc lập với nền tảng. Chúng có thể chạy mã bytecode này trên Windows, Linux, Mac OS,…

Ngôn ngữ thông dịch

Java là ngôn ngữ lập trình vừa biên dịch vừa thông dịch. Chương trình nguồn viết bằng ngôn ngữ lập trình Java có đuôi *.java và được biên dịch thành tập tin có đuôi *.class sau đó được trình thông dịch thông dịch thành mã máy.

  • Thông dịch (interpreter): được dịch và chạy từng lệnh, lần sau muốn chạy lại thì cần phải dịch lại.
  • Biên dịch (compiler): sau khi được biên dịch sẽ tạo ra 1 file thường là .exe và file .exe này có thể đem sử dụng lại mà không cần biên dịch nữa.

Tính di động

Java có tính di động vì mã Java có thể thực thi trên tất cả các nền tảng chính. Khi biên dịch mã nguồn java thành bytecode, thì bạn có thể sử dụng nó trong bất kỳ nền tảng nào được java hỗ trợ mà khồn cần sửa đổi.

Không giống như các ngôn ngữ khác yêu cầu biên dịch mã cho từng nền tảng.

Đa luồng và tương tác

Java hỗ trợ lập trình đa tiến trình (multithread) để thực thi các công việc đồng thời, có nghĩa là có thể xử lý các tác vụ khác nhau cùng một lúc. Đồng thời cũng cung cấp giải pháp đồng bộ giữa các tiến trình (giải pháp sử dụng priority…).

Cơ chế thu gom rác tự động

Trong java khi tạo ra các đối tượng, JRE sẽ tự động cấp phát không gian bộ nhớ cho các đối tượng ở trên heap. Ví dụ như sau:

  • Đối với ngôn ngữ như C\C++, bạn phải hủy vùng nhớ bạn đã cấp phát để tránh bị thất thoát vùng nhớ.
  • Đối với ngôn ngữ Java thì nó hỗ trợ cho bạn điều này, bạn không cần tự hủy các vùng nhớ. Bộ thu dọn rác của Java sẽ theo vết các tài nguyên được cấp, khi không có tham chiếu nào đến vùng nhớ đó thì bộ thu rác sẽ tiến hành thu hồi.

Tính an toàn

  • Ngôn ngữ lập trình Java yêu cầu chặt chẽ về kiểu dữ liệu.
  • Dữ liệu phải được khai báo tường minh.
  • Không sử dụng con trỏ và các phép toán với con trỏ.
  • Java kiểm soát chặt chẽ việc truy nhập đến mảng, chuỗi. Không cho phép sử dụng các kỹ thuật tràn. Do đó các truy nhập sẽ không vượt quá kích thước của mảng hoặc chuỗi.
  • Quá trình cấp phát và giải phóng bộ nhớ được thực hiện tự động.
  • Cơ chế xử lý lỗi giúp việc xử lý và phục hồi lỗi dễ dàng hơn.

Tính bảo mật

Java cung cấp một môi trường quản lý chương trình với nhiều mức khác nhau.

  • Mức 1 : Chỉ có thể truy xuất dữ liệu cũng như phương phức thông qua giao diện mà lớp cung cấp.
  • Mức 2 : Trình biên dịch kiểm soát các đoạn mã sao cho tuân thủ các quy tắc của ngôn ngữ lập trình Java trước khi thông dịch.
  • Mức 3 : Trình thông dịch sẽ kiểm tra mã byte code xem các đoạn mã này có đảm bảo được các quy định, quy tắc trước khi thực thi.
  • Mức 4: Java kiểm soát việc nạp các lớp vào bộ nhớ để giám sát việc vi phạm giới hạn truy xuất trước khi nạp vào hệ thống.

3. Kiến trúc và môi trường của Java

Kiến trúc và môi trường của Java

Kiến trúc của Java bao gồm 3 thành phần chính như sơ đồ dưới đây:

JVM (máy ảo Java)

Máy ảo Java cung cấp một môi trường thời gian chạy trong đó bytecode thực thi. Chúng có nhiệm vụ:

  • Tải mã
  • Xác minh mã
  • Thực thi mã
  • Cung cấp môi trường thời gian chạy

JRE (Môi trường thời gian chạy Java)

JRE là một tập hợp các công cụ cho phép phát triển các ứng dụng và cung cấp môi trường thời gian chạy để chạy các chương trình Java.

JVM là một phần của JRE, JRE hỗ trợ thực thi các chương trình Jva và bao gồm JVM, thư viện lớp thời gian chạy, bộ công cụ giao diện người dùng, công nghệ triển khai, plugin Java, v.v.

JDK (Bộ phát triển Java)

Java Development Kit là một bộ cung cấp môi trường để phát triển các chương trình Java.

JDK chứa các tài nguyên khác như trình thông dịch / trình tải, trình biên dịch (javac), trình lưu trữ (jar) và trình tạo tài liệu (Javadoc). Các thành phần này cùng nhau giúp bạn xây dựng các chương trình Java.

4. Sự khác nhau giữa Java và Javascript

Sự khác nhau giữa Java và Javascript

Khi nghe đến Java và Javascript, những người không chuyên về công nghệ sẽ có sự nhầm lẫn nhất định khi chỉ nghe đến tên. Nhưng thực chất đây là 2 loại ngôn ngữ lập trình hoàn toàn khác nhau.

Java có thể sử dụng ở khá nhiều nơi, có thể là bao gồm các ứng dụng Android, lập trình thẻ tín dụng, tạo ra các ứng dụng máy tính bàn, ứng dụng web doanh nghiệp,… Còn Javascript chủ yếu được sử dụng làm trang web tương tác hơn

Dưới đây là một vài yếu tố để chỉ ra sự khác nhau cơ bản nhất giữa hai loại ngôn ngữ này:

JavaJavascript
Java là một ngôn ngữ lập trình hướng đối tượng thuần túy.Nó là một ngôn ngữ kịch bản, dựa trên đối tượng.
Là một ngôn ngữ độc lập.Đây không phải là một ngôn ngữ độc lập, vì nó cần được tích hợp vào một chương trình HTML để thực thi.
Java là một ngôn ngữ được gõ mạnh, có nghĩa là người dùng phải quyết định kiểu dữ liệu của biến trước khi khai báo và sử dụng nó.

Ví dụ “int a”, biến “a” chỉ có thể lưu trữ giá trị kiểu số nguyên.

 

JavaScript là một ngôn ngữ được đánh máy lỏng lẻo; có nghĩa là người dùng không phải lo lắng về kiểu dữ liệu của biến trước và sau khi khai báo.

Ví dụ “var a”, biến “a” có thể lưu trữ giá trị của bất kỳ kiểu dữ liệu nào.

Trình duyệt web không cần thiết để chạy các chương trình java.Trình duyệt web rất cần thiết để chạy các chương trình JavaScript.
Trong Java, bằng cách sử dụng Multi-threading; người dùng có thể thực hiện các tác vụ phức tạp.Trong JavaScript, người dùng không thể thực hiện các tác vụ phức tạp.
Các chương trình được lưu với phần mở rộng “.java”.Các chương trình trong JavaScript được lưu với phần mở rộng “.js”.
Java được lưu trữ trên máy chủ dưới dạng mã “Byte”.JavaScript được lưu trữ trên Máy chủ (Máy khách) dưới dạng văn bản “source”.

5. Ứng dụng của ngôn ngữ lập trình Java

Ứng dụng của ngôn ngữ lập trình Java

Đối với ngôn ngữ lập trình Java bạn có thể sử dụng được ở rất nhiều nơi. Từ những trang web thương mại điện tử đến các ứng dụng Android hay từ những ứng dụng khoa học đến các ứng dụng tài chính,…

Vậy hãy cùng xem những ví dụ về ứng dụng cơ bản nhất của Java dưới đây:

Ứng dụng Android

Hầu hết các ứng dụng của Android hiện nay đều được viết bằng Java, chỉ cần bạn mở bất kỳ một ứng dụng nào trong điện thoại Android là có thể thấy một sản phẩm như thế.

Các máy chủ dùng trong dịch vụ tài chính

Java chủ yếu được sử dụng để viết ứng dụng cho máy chủ, không có front end, nhận dữ liệu từ một máy chủ khác, xử lý nó và gửi đến một tiến trình tiếp theo.

Một số ngân hàng đều đang sử dụng Java để viết hệ thống giao dịch điện tử front office và back office, có thể kể đến như: Goldman Sachs, Citigroup, Barclays, Standard Charted,…

Ứng dụng web

Có rất nhiều dịch vụ RESTfull được tạo bằng cách sử dụng Spring MVC, Struts 2.0 và những framework tương tự. Thậm chí những ứng dụng web đơn giản như Servlet, JSP và Struts cũng rất phổ biến.

Nhiều cơ quan chính phủ, y tế, bảo hiểm, giáo dục, quốc phòng và những bộ phận khác có ứng dụng web được xây dựng bằng Java.

Công cụ phần mềm

Một số phần mềm được kể đến như: Eclipse, InetelliJ Idea và Netbans IDE,…

Ứng dụng khoa học

Java thường được lựa chọn mặc định cho các ứng dụng khoa học, bao gồm xử lý ngôn ngữ tự nhiên. Lý do chính là vì Java an toàn hơn, portable, duy trì và đi kèm với những công cụ cấp cao tương đương C++ hay những ngôn ngữ lập trình khác.

>>> Xem thêm: JavaScript là gì? Giới thiệu cơ bản về JavaScript

Trả lời

Email của bạn sẽ không được hiển thị công khai.

plc schneider sử dụng cookie để cung cấp cho bạn trải nghiệm duyệt web tốt hơn. Bằng cách duyệt trang web này, bạn đồng ý với việc sử dụng cookie của chúng tôi.