Java: Giới thiệu


I. LỊCH SỬ PHÁT TRIỂN JAVA

1. Khởi điểm

Cuối năm 1990, James Gosling được công ty Sun Microsystems giao nhiệm vụ xây dựng một phần mền lập trình cho các mặt hàng điện dân dụng. Lục đầu Gosling và nhóm cộng sự định lựa chọn C++ nhưng nhanh chóng nhận thấy rằng C++ không thích hợp vì quá cồng kềnh và đòi hỏi rất nhiều tài nguyên (bộ nhớ, đĩa…). Gosling đã quyết định xây dựng hẳn một ngôn ngữ lập trình mới và đặt tên là Oak (Oak: cây sồi, vì trước cửa phòng làm việc của ông nhìn ra một cây sồi).

 Đầu tiên Oak được sử dụng trong dự án Xanh (Green Project) trong đó Java được sử dụng để kiểm soát các thiết bị điện dân dụng trong dự án. Sau đó Oak được sử dụng trong dự án Phim-theo-yêu cầu (Video – on – deman Project). Qua các dự án đó, Java được phát triển nhanh chóng, đến lúc này Oak được đổi tên vì có sự trùng lặp, và Java ra đời.

2. Sự phát triển

 Java được sử dụng chủ yếu trong bộ công cụ phát triển Java (Java Development Kit –JDK) như là một thư viện chuẩn, trong đó chứa trình biên dịch, thông dịch, trợ giúp, soạn tài liệu,…

Khởi đầu với JDK 1.0 vào năm 1996, JDK 1.1 được công bố vào năm 1997 với nhiều cải tiến như tăng thêm các hàm giao diện (AWT), xây dựng hệ thống thư viện dùng lại Javabeans, JFC,…Bộ Java 1.6 là lõi cho việc viết các IED (Intergrated Envirnment development) nổi tiếng như Jbuilder 2.0, Visual J++ 6.0,…

Các phiên bản Java đã phát hành:

+ JDK 1.0 (23 tháng 01, 1996)

+ JDK 1.1 (19 tháng 2, 1997)

- JDK 1.1.5 (Pumpkin) 03 tháng 12, 1997

- JDK 1.1.6 (Abigail) 24 tháng 4, 1998

- JDK 1.1.7 (Brutus) 28 tháng 9, 1998

- JDK 1.1.8 (Chelsea) 08 tháng 4, 1999

+ J2SE 1.2 (Playground) 08 tháng 12, 1998

- J2SE 1.2.1 (không có) 30 tháng 3, 1999

- J2SE 1.2.2 (Cricket) 08 tháng 7, 1999

+ J2SE 1.3 (Kestrel) 08 tháng 5, 2000

- J2SE 1.3.1 (Ladybird) 17 tháng 5, 2001

+ J2SE 1.4.0 (Merlin) 06 tháng 02, 2002

- J2SE 1.4.1 (Hopper) 16 tháng 9, 2002

- J2SE 1.4.2 (Mantis) 26 tháng 6, 2003

+ J2SE 5 (1.5.0) (Tiger) 30 tháng 9, 2004

+ Java SE 6 (còn gọi là Mustang), được công bố 11 tháng 12 năm 2006, thông tin chính tại http://java.sun.com/javase/6/. Các bản cập nhật 2 và 3 được đưa ra vào năm 2007, bản cập nhật 4 đưa ra tháng 1 năm 2008.

+ JDK 6.18, 2010

+ Java SE 7 (còn gọi là Dolphin), được bắt đầu từ tháng 8 năm 2006 và công bố ngày 28 tháng 7 năm 2011.

+ JDK 8, 18 tháng 3 năm 2014

+ Phiên bản dự kiến tiếp theo: Java 9 dự kiến ra đời năm 2016.

Khuyến nghị: Bạn nên cài đặt bản JDK 8 cùng với NetBeans 8 trở lên.

II. CÁC ĐẶC ĐIỂM CỦA JAVA

Có nhiều đặc điểm nổi bật của Java so với các ngôn ngữ khác. Dưới đây là một số đặc điểm chủ yếu nhất.

1. Đơn giản (Simple)

 Đặc điểm đầu tiên và cũng là mục địch của Java là tính đơn giản. Mục đích của những người sáng lập ra Java là để thay thế cho C và C++. Mặc dù công việc này chẳng hề đơn giản chút nào những ta cũng cần thấy rằng Java đã hạn chế được rất nhiều tính phức tạp ở trong C và C++. Hai ví dụ có thể chứng minh cho tính đơn giản của Java so với C và C++ đó là Java đã bỏ đi khái niệm con trỏ ở trong C và bỏ đi tính đa thừa kế ở trong C++.

 Một điều nữa có thể minh chứng cho tính đơn giản của Java là kích thước của bộ biên dịch cơ bản và lớp hộ trợ là rất nhỏ. Bản JDK 1.2 chỉ chiếm dung lượng 4 Mb so với vài trăm Mb của Visual C++ và Visual Basic.

2. Hướng đối tượng

 Java là một ngôn ngữ lập trình thuần tuý hướng đối tượng. Có nghĩa là trong Java không có bất cứ một biến hay một thủ tục nào được viết ở ngoài lớp. Mọi ứng dụng viết trên Java đều phải được xây dựng từ các đối tượng và thông qua các đối tượng. Nếu như trong C/C++ ta có thể tạo ra các hàm toàn cục (global function), thì ở Java chúng ta chỉ có thể tạo ra các hàm tương tự thông qua một đối tượng nào đó.

3. Phân tán

 Java được thiết kế để hỗ trợ các ứng dụng phân tán. Ứng dụng phân tán là những ứng dụng làm việc trên môi trường mạng. Trong java để xây dựng các ứng dụng như thế ta sử dụng lớp mạng (java.net). Ví dụ với lớp URL của java. Một ứng dụng Java có thể dễ dàng truy xuất đến một máy chủ ở xa. Nó có thể mở hoặc truy xuất đến các đối tượng ở xa cũng đơn giản như là truy xuất ngay trên máy tính của mình.

4. Ngôn ngữ lai

 Java là một ngôn ngữ lai vì Java là một ngôn ngữ vừa biên dịch và vừa thông dịch.

Các bạn chắc hẳn đã nhiều bạn quen thuộc với hai thuật ngữ đó. Tuy nhiên tôi chắc chắn rằng trong số các bạn vẫn có những bạn còn đang phân vân về nó. Vì vậy xin giành một chút thời gian của các bạn để chúng ta cùng làm rõ hai thuất ngữ trên.

 Trước hết ta bắt đầu từ chương trình máy tính. Ta biết rằng hầu hết chương trình máy tính luôn được viết dưới một ngôn ngữ lập trình nào đó. Tuy nhiên máy tính của ta lại không thể thực hiện trực tiếp các chương trình đó vì thực chất máy tính chỉ là sự kết hợp các mạch điện tử và nó chỉ hiểu được ngôn ngữ máy (machine language). Ngôn ngữ máy là ngôn ngữ là chỉ được tạo thành từ các số 0 và 1; 0 ứng với mức điện áp thấp và 1 ứng với mức điện áp cao.

 Vậy để một chương trình máy tính viết bằng một ngôn ngữ lập trình nào đó được thực hiện thì trước tiên nó phải được chuyển thành ngôn ngữ máy. Quá trình chuyển một chương trình thành ngôn ngữ máy đó người ta gọi đó là quá trình dịch chương trình.

 Trong dịch chương trình thì có hai cách dịch là biên dịch và thông dịch.

 Biên dịch tức là chuyển toàn bộ chương trình sang ngôn ngữ máy rồi sau đó mới thực hiện chương trình. Ta có thể hình dung cụ thể qua sơ đồ dưới đây:

Quy trình biên dịch Java

Thông dịch tức là thực hiện dịch từng dòng lệnh của chương trình sau đó sẽ thực hiện ngay dòng lệnh đó rồi lại quay về dịch và thực hiện dòng lệnh tiếp theo. Ta có thể hình dung cụ thể về quá trình thông dịch thông qua hình vẽ dưới đây.

Sơ đồ thông dịch Java

Vậy một chương trình Java vừa được biên dịch vừa được thông dịch như thế nào? Ta hình dung qua sơ đồ dưới đây:

Biên dịch và thông dịch trong Java

Như vậy, để thực hiện một chương trình Java ta cần trải qua hai bước: Bước 1: Biên dịch chương trình Java thành một dạng mã Trung gian, được gọi là mã Bytecode.

Bước 2: Thông dịch và thực hiện mã trung gian đó.

5. Kiến trúc trung tính

 Kiến trúc trung tính của Java nói đến khả năng chạy chương trình Java trên nhiều hệ điều hành và nhiều bộ vi xử lý khác nhau.

Java với khả năng thông dịch mã bytecode (được biên dịch từ mã nguôn Java) cho phép tạo ra các máy Java ảo (JVM – Java Virtual Machine) trên mỗi hệ thống. Các chương trình Java sẽ chạy trên nền trung tính của các máy ảo Java đó dễ dàng mà không phụ thuộc vào hệ điều hành và bộ vi xử lý.

Next »
Copied !!!