Header Ads

Seo Services

#Giới thiệu.

Trong bài viết này chúng ta sẽ tìm hiểu về những khái niệm cơ bản khi bắt đầu tiếp cận với ngôn ngữ lập trình Java.

Như các bạn đã biết thì Java là một ngôn ngữ lập trình có thể nói là "huyền thoại" vì nó được ra đời từ khá là sớm (1991) nhưng cho đến bây giờ vẫn được sử dụng rộng rãi. Không những thế chính sự ra đời của Java đã tạo ra nhiều khái niệm, mô hình trong ngành lập trình nói chung và trong công nghệ phát triển phần mềm nói riêng.

#Có nên học Java nữa không?

Dưới đây là một thống kê vào năm 2019 về mức độ phổ biến của các ngôn ngữ lập trình, tất nhiên những thống kê chỉ mang tính tương đối nhưng Java vẫn luôn là một trong những ngôn ngữ top đầu. Nhiều trường đại học cũng chọn Java giống như một ngôn ngữ tiêu chuẩn trong suốt quá trình đào tạo. Đặc biệt là khái niệm Object-oriented programming (lập trình hướng đối tượng) thì có thể nói Java là một ví dụ điển hình. Khi nắm chắc các khái niệm trong Java các bạn có thể dễ dàng tiếp cận các ngôn ngữ hướng đối tượng khác như C#,... Không những vậy cơ hội việc làm Java cũng rất nhiều. Vì vậy các bạn cứ yên tâm học nha!


#Công nghệ Java là gì?

Trước tiên, các bạn hiểu cho mình là java vừa là một ngôn ngữ lập trình (programming language) đồng thời cũng là một nền tảng (platform). Khía cạnh ngôn ngữ lập trình thì có lẽ hầu hết mọi người đều biết nhưng ít ai mới tiếp cận biết rằng Java cũng là một platform.

Vậy platform là gì? Để đơn giản thì các bạn hiểu cho mình: "A platform is the hardware or software environment in which a program runs". Nôm na đó có thể là phần cứng hoặc phần mềm nơi mà chương trình của chúng ta chạy.

Khía cạnh là một ngôn ngữ lập trình.

Java là một ngôn ngữ lập trình bậc cao (high-level language) được biết đến với các tính năng thông dụng như:

  • Đơn giản (Simple)
  • Hướng đối tượng (Object oriented)
  • Phân tán (Distributed)
  • Đa luồng (Multithreaded)
  • Linh động (Dynamic)
  • Kiến trúc trung tính (Architecture neutral)
  • Di động (Portable)
  • Hiệu suất cao (High performance)
  • Mạnh mẽ (Robust)
  • Bảo mật (Secure)

Có vẻ khá là chung chung, mình sẽ cùng các bạn tìm hiểu kỹ hơn về các tính chất này trong một bài viết khác. Ở mức độ mới tiếp cận các bạn cũng không cần (chưa thể) hiểu hết các tính chất đó.

Tiếp theo chúng ta sẽ tìm hiểu cách thức một chương trình (ứng dụng java) được biên dịch như thế nào. Đây là một khái niệm quan trọng, cũng là một đặc điểm nổi bật khiến Java có tính linh động cao.

An overview of the software development process
Figure showing MyProgram.java, compiler, MyProgram.class, Java VM, and My Program running on a computer.

Với Java, ban đầu tất cả các tệp mã nguồn (source code) được viết dưới dạng text với đuôi .java. Chúng ta có thể dùng bất cứ công cụ soạn thảo text nào để viết những tệp mã nguồn này. Ví dụ chương trình HelloWorld.java chúng ta viết như sau:


Sau đó, những file mã nguồn này được biên dịch sang file có đuôi .class bởi trình biên dịch javac. File .class không chứa mã nguồn có nguồn gốc từ bộ xử lý (ví dụ nếu chúng ta biên dịch mã nguồn C++ thì máy sẽ biên dịch từ text trực tiếp ra mã máy và chạy). Nhưng với Java thì trình biên dịch javac sẽ biên dịch mã nguồn sang dạng bytecodes là ngôn ngữ máy của máy ảo Java (Java Virtual Machine hay JVM). Sau đó công cụ khởi chạy (java launcher) sẽ chạy ứng dụng với một phiên bản của JVM được tạo ra.

Tóm lại chúng ta hiểu đơn giản, sẽ có một khâu trung gian giữa quá trình biên dịch mã nguồn (.java) cho tới khâu khởi chạy ứng dụng. Mục đích là gì?

Through the Java VM, the same application is capable of running on multiple platforms
Là để giảm thiểu sự phụ thuộc vào nền tảng mà chúng ta đang phát triển (Window, Linux, MacOS,...). Đây cũng chính là phương châm nổi tiếng trong Java - Write once, run everywhere (viết một lần, chạy trên nhiều nền tảng).

Khía cạnh là một Platform.

Bên trên chúng ta đã định nghĩa flatform là có thể là phần cứng hoặc phần và là nơi mà chương trình của chúng ta chạy. Nếu định nghĩa như thế này thì vẫn rất chung chung đối với Java Platform.

Hầu hết các platform được miêu tả như là sự kết hợp giữa hệ điều hành và các thiết bị phần cứng bên dưới. Nhưng Java Platform thì khác ở chỗ nó chỉ là nền tảng phần mềm (softwate-only platform) và chạy ở tầng trên của các nền tảng phần cứng khác.

The API and Java Virtual Machine insulate the program from the underlying hardware.
Java Platform có hai thành phần đó là:
  1. Máy ảo Java (Java Virtual Machine)
  2. Các API (Application Programming Interface)
The Java Virtual Machine có thể nói là nền tảng của Java Platform và nó tương thích với rất nhiều nên tảng phần cứng.

The API là một tập hợp rất lớn các thành phần đã được tạo sẵn với nhiều chức năng khác nhau. Nó được nhóm thành các thư viện với các class và interface có liên quan với nhau. Thư viện được hiểu như là các packages. Hiểu nôm na sau này khi các bạn code Java thì sẽ được nó hỗ trợ rất nhiều hàm có sẵn (các bạn chỉ việc hiểu cách sử dụng và lôi ra dùng từ thư viện).

#Ưu điểm, Nhược điểm:

Phần ưu điểm chúng ta đã phân tích bên trên đó chính là sự linh động, không phụ thuộc vào hạ tầng phần cứng. Mã nguồn Java có thể được viết một lần và chạy trên nhiều nền tảng nên tiết kiệm được chi phí phát triển.

Còn về nhược điểm thì được sinh ra từ chính ưu điểm. Có nghĩa là do phải biên dịch qua khâu trung gian nên so với nhiều nhiều ngôn ngữ có thể biên dịch trực tiếp sang mã máy (native code) thì hiệu suất của Java có thể không bằng.

Song, những trình biên dịch tiên tiến và các công nghệ máy ảo hiện đại hứa hẹn sẽ cải thiện hiệu suất của Java lên đáng kể.

Trong bài viết tiếp theo chúng ta sẽ tìm hiểu xem công nghệ Java có thể làm được gì. Các bạn có thể tham khảo tại đây.

Reference:

https://docs.oracle.com/javase/tutorial/getStarted/intro/definition.html

Không có nhận xét nào:

Được tạo bởi Blogger.