Bài 1 : Giới thiệu về ngôn ngữ lập trình Java 9

Bài 1 : Giới thiệu về ngôn ngữ lập trình Java 9
access_time 1/27/2018 12:00:00 AM
person Nguyễn Mạnh Hùng

Giới thiệu về ngôn ngữ lập trình Java

1. Java như một nền tảng lập trình

Java như là một ngôn ngữ máy tính, nói một cách không quá thì Java chắc chắn là một ngôn ngữ lập trình tốt. Không có nghi ngờ gì nữa, Java là một trong các ngôn ngữ lập trình tốt và tuyệt với giành cho các lập trình viên.

Ngôn ngữ Java có rất nhiều các đặc tính tốt đẹp, các đặc tính này sẽ được nhắc đến tại mục 2 (Sách trắng về Java). Đến nay Java đã trải qua quá trình phát triển rất lâu dài, phiên bản mới nhất của nó là JDK 9 với một loạt các đặc tính mới so với JDK 8.

Khi nhắc đến Java người ta không chỉ nhắc đến nó như một ngôn ngữ lập trình mà các lập trình viên coi Java là một nền tảng lập trình, với khối lượng thư viên khủng lồ, chứa các đoạn code có thể tái sử dụng, cung cấp môi trường thực thi, cũng như là các service (Một khối lượng khủng lồ các Service được viết bằng Java được viết bởi các công ty và các lập trình viên trên thế giới). Ngoài ra đặc trưng nổi bật của Java là chạy đa nền Hệ điều hành.

Với các lập trình viên, điều đầu tiên thường quan tâm khi nghiên cứu một ngôn ngữ lập trình hoặc một nền tảng lập trình đó là ngôn ngữ đó phải có cú pháp đơn giản và dễ hiểu về ngữ nghĩa. Không giống như các lập trình được phát triển trước đó như C/C++, Java thỏa mãn các yêu cầu trên với các lập trình viên.

Một số các ngôn ngữ lập trình cũng thỏa mãn các vấn đề trên như cú pháp dễ hiểu, dễ dàng lập trình tuy nhiên do hạn chế về thư viện do vậy khi lập trình viên muốn xử lý một số vấn đề chuyên biệt thì họ bắt buộc phải tốn công sức đề nghiên cứu và phát triển. Java thì khác, nó là một ngôn ngữ hợp nhất tất cả, ngôn ngữ lập trình tốt, môi trường thực thi chất lượng cao và có khối lượng thư viện khủng lồ.

2. “Sách trắng” Java

Ngôn ngữ lập trình Java thể hiện đặc tính  qua 11 chữ sau :

+ Đơn giản

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

+ Lập trình phân tán

+ Mạnh mẽ

+ Bảo mật

+ Kiến trúc – Trung lập

+ Tính khả chuyển

+ Thông dịch

+ Hiệu năng cao

+ Xử lý đa luồng

+ Linh hoạt

2.1 Đơn giản

Cú pháp của ngôn ngữ lập trình Java là dõ dàng và dễ hiểu hơn ngôn ngữ lập trình C++. Không cần phải sử dụng file header, ngoài ra khi lập trình viên làm việc với C++ cần phải hiểu rất rõ về con trỏ (thường gây cho các lập trình viên nhiều phiền phức) thì ngôn ngữ Java đã loại bỏ con trỏ. Ngoài ra một loạt các cầu trúc phúc tạp có liên quan khác như structure, union, toán tử quá tải … Nói tóm lại với các lập trình viên C++ khi chuyển qua lập trình Java sẽ cảm thấy rất dễ dàng.

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

Ngôn ngữ lập trình Java là ngôn ngữ thuần túy hướng đối tượng, trong khi đó C++ là ngôn ngữ mở rộng của ngôn ngữ lập trình C và nó là ngôn ngữ hỗ trợ hướng đối tượng. Tuy nhiên điểm khác biệt quan trọng trong lập trình C++ và lập trình Java là ngôn ngữ lập trình C++ hỗ trợ đa kế thừa còn ngôn ngữ lập trình Java chỉ hỗ trợ đơn kế thừa.

Đặc trưng của các ngôn ngữ lập trình hướng đối tượng là tập trung vào đối tượng (Dữ liệu, và hành vi của đối tượng) với các đặc trưng cụ thể như sau :

+ Tính đóng gói

+ Tính kế thừa

+ Tính đa hình.

Cả 3 đặc tính quan trọng này đều được ngôn ngữ Java hỗ trợ rất tốt và rất dễ sử dụng.

2.3 Lập trình phân tán.

Khi nhắc đến lập trình phân tán người ta thường nhắn đến việc các lập trình viên làm việc với các giao thức như TCP/Ip, Http, FTP, … Ngôn ngữ lập trình Java cung cấp các bộ thư viện cho phép các lập trình viên làm việc dễ dàng với các giao thức kể trên.

2.4 Mạnh mẽ

Ngôn ngữ Java được xử lý sao cho việc phát triển các ứng dụng trên nền tảng ngôn ngữ này phải có tính tin cậy cao bằng nhiều cách khác nhau như : Java cung cấp nhiều cách thức cho phép có thể phát hiện lỗ từ sớm, kiểm soát quá trình thông dịch và biên dịch nhằm loại bỏ các tình huống lỗi có thể xẩy ra.

 2.5 Bảo mật

Java được xây dựng với mục tiêu cho phép các lập trình viên có thể phát triển ứng dụng theo mô hình hệ sinh thái phần mềm (Ecosoftware system) có nghĩa là hệ thống có thể bao gồm nhiều các thành phần có thể tương tác được với nhau. Do vậy Java tập trung hỗ trợ và cung cấp nhiều các thư viện để xử lý bảo mật cho các lập trình viên.

Tuy nhiên, phải nói một cách chính xác thì để hiểu chi tiết về vấn đề xử lý bảo mật của Java thì các lập trình viên cũng phải tốn thời gian vì vấn đề này là phức tạp.

2.6 Kiến trúc trung lập

Trình biên dịch của Java khi thực hiện biên dịch sẽ tạo ra file bytecodes, đặc điểm của file này có kiến trúc trung lập, khi thực hiện chạy chương trình máy ảo của Java (1 phần của Jdk) sẽ thực hiện chạy mã bytecode này. Chính kiến trúc trung gian này cho phép ứng dụng Java có thể chạy độc lập trên nền nhiều hệ điều hành khác nhau.

2.7 Tính khả chuyển

Đặc tính này được thể hiện dõ dệt trong nền tảng của Java.Với hệ thống thư viện khủng lồ, lập trình viên có thể dễ dàng sử dụng và cho phép định nghĩa (làm việc) với các giao diện tương tác với người dùng có tính thay đổi (khả chuyển) cao. Ví dụ như lớp Window có thể được thực thi trên các hệ điều hành Windows, Unix, linux và Macintosh. Đây chỉ là ví dụ đơn giản về tính khả chuyển của nền tảng Java. Do đặc trưng nền tảng Java bạn có thể làm việc với các file có đuôi mở rộng khác nhau, các đặc tả dữ liệu khác như XML, cơ sở dữ liệu, kết nối với hệ thống mạng mà không phụ thuộc vào hệ điều hành (Trên thực tế cũng có nhiều ngôn ngữ chạy được trên nền của nhiều hệ điều hành khác nhau, tuy nhiên khi làm việc với file, CSDL, mạng… thì thường sử dụng thư viện khác nhau để tương thích với Hệ điều hành).

2.8 Thông dịch – interpreter

Bộ thông dịch của Java là một phần của máy ảo Java, thực thi mã Bytecode ra mã máy để có thể chạy được trên nền của hệ điều hành.

2.9 Hiệu năng cao

Với đặc trưng  just-in-time của trình biên dịch nó cho phép quản lý và giám sát mã code thường xuyên và tối ưu, đây chính là đặc trưng quan trọng của máy ảo Java. Just-in-time của trình biên dịch được hiểu đơn giản đó là các lớp được nạp vào vùng bộ nhớ, nó sẽ thực hiện cơ chế inline (inline trong lập trình đó là việc tối ưn khi thực thi phương thức trực tiếp trên vùng bộ nhớ của nó mà không thông qua cơ chế tham chiếu tới vùng bộ nhớ thực thi của phương thức, điều đó cho phép tăng tốc đội thực thi) dựa trên tập hợp các lớp với các phương thức cụ thể được thực thi mà không cần phải ghi đè và nó có thể thực hiện tối ưu xử lý của phương thức đó nếu thấy cần thiết trong quá trình chạy.

2.10 Đa luồng

Java là ngôn ngữ đi đầu cho việc hỗ trợ xử lý đa luồng trong khi lập trình. Ngày này rất nhiều ngôn ngữ lập trình hỗ trợ việc xử lý này.

2.11 Linh hoạt

Xét về một khía cạnh nào đó thì nền tảng Java có đặc trưng linh hoạt hơn C/C++ vì Java được thiết kế nhằm để thích nghi với các môi trường đang phát triển. Các thư viện được phép tự do bổ sung thêm các phương thức mà không cần phải chịu sự tác động nào ở phía Client.

3. Các bước để thực thi ứng dụng Java đơn giản

Để thực hiện việc xây dựng một ứng dụng Java đơn giản các bạn cần thực hiên các bước sau :

3.1 Giai đoạn 1 : Tạo chương trình

Đây là bước nhằm để tạo ra các file có đuôi .Java lưu trữ các đoạn mã tuân thủ theo cú pháp của ngôn ngữ lập trình Java.

Các bạn có thể sử dụng bất cứ trình soạn thảo nào để biên tập nội dung như vi hoặc emacs trên hệ điều hành linux hoặc TextEdit trên OS hoặc Nodepad++ trên windows …

Tuy nhiên trên thực tế các lập trình viên thường phải cài đặt công cụ lập trình, có rất nhiều bộ công cụ lập trình hỗ trợ ngôn ngữ Java như :

+ Eclipse (www.eclipse.org)

+ NetBeans(www.netbeans.org)
+ IntelliJ IDEA (www.jetbrains.com)

Giai đoạn 2 : Biên dịch và thông dịch chương trình

Thực hiện biên dịch chương trình Java ra mã Bytecode

Sử dụng cửa sổ lệnh để thực hiện biên dịch thông qua bộ biên dịch của Java như sau :

javac ten_file.java

Ví dụ : javac Welcom.java

Sau đó sử dụng máy ảo Java để chạy các file có chứa mã Bytecode

Cú pháp để chạy như sau :

java ten_file

Ví dụ : java Welcom

Giai đoạn 3 Nạp chương trình

Trước khi chương trình được thực thi, chương trình phải được nạp vào trong bộ nhớ. Tại giai đoạn này hệ điều hành cấp phát vùng bộ nhớ cần thiết để các đối tượng cần thiết để thực thi chương trình. Cái này được thực hiện bởi máy ảo Java,

Giai đoạn 4 : Giám sát và kiểm tra Mã ByteCode

Khi các lớp được nạp, mã Bytecode sẽ được giám sát kiểm tra để đảm bảo các đoạn mã Java được thực thi là chính xác và được bảo mật. Giai đoạn 4 được thực hiện tự động trên máy ảo Java

Giai đoạn 5 : Thực thi

Máy ảo Java thực hiện thông dịch mã Bytecode ra mã máy, cơ chế thực hiện được Java cải tiến thông qua cơ chế xử lý just-in-time, có nghĩa là nó chỉ thực hiện thông dịch từng phần và xác định phần nào cần thiết thì sẽ thực hiện thông dịch (Không thực hiện thông dịch toàn bộ), cơ chế này cho phép tăng hiệu năng thực thi và giám sát quản lý tốt hơn.

Khi máy ảo Java thực hiện thông dịch lại nó sẽ không phải thông dịch toàn bộ mà nó chỉ phải bổ sung các phần cần thiết cho quá trình chạy của ứng dụng. Cơ chế này hiểu một cách đơn giản đó là thực hiện thông dịch tại thời điểm chạy chương trình.


Hình số 1 : Các bước thực thi ứng dụng Java

 

 

 

 

 

 

 

 

 

 

 

 

 


vertical_align_top
share
Chat...