Java (ngôn ngữ lập trình)

Bách khoa toàn thư mở Wikipedia
Bước tới: menu, tìm kiếm
Java
Phần mở rộng thường gặp .java,.class,.jar
Mô hình lập trình Mẫu hình lập trình
Xuất hiện vào 1995 (1995)
Thiết kế bởi James Gosling
Sun Microsystems
Nhà phát triển Oracle Corporation
Phiên bản mới nhất 1.7.45 sửa dữ liệu
Turing đầy đủ Yes
Kiểm tra kiểu Tĩnh, mạnh, an toàn, nominative, hiển nhiên
Hiện thực OpenJDK và nhiều máy ảo Java
Thuộc loại ngôn ngữ Generic Java, Pizza
Ảnh hưởng từ Ada 83, C++, C#,[1] Eiffel,[2] Generic Java, Mesa,[3] Modula-3,[4] Oberon,[5] Objective-C,[6] UCSD Pascal,[7][8] Smalltalk
Ảnh hưởng tới Ada 2005, BeanShell, C#, Clojure, D, ECMAScript, Groovy, J#, JavaScript, PHP, Python, Scala, Seed7, Vala
Hệ điều hành Cross-platform (multi-platform)
Giấy phép GNU General Public License, Java Community Process
Trang mạng For Java Developers

Java (đọc như "Gia-va") là một ngôn ngữ lập trình dạng lập trình hướng đối tượng (OOP). Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtime environment) chạy.

Trước đây, Java chạy chậm hơn những ngôn ngữ dịch thẳng ra mã máy như C và C++, nhưng sau này nhờ công nghệ "biên dịch tại chỗ" - Just in time compilation, khoảng cách này đã được thu hẹp, và trong một số trường hợp đặc biệt Java có thể chạy nhanh hơn. Java chạy nhanh hơn những ngôn ngữ thông dịch như Python, Perl, PHP gấp nhiều lần. Java chạy tương đương so với C#, một ngôn ngữ khá tương đồng về mặt cú pháp và quá trình dịch/chạy[9][10]

Cú pháp Java được vay mượn nhiều từ C & C++ nhưng có cú pháp hướng đối tượng đơn giản hơn và ít tính năng xử lý cấp thấp hơn. Do đó việc viết một chương trình bằng Java dễ hơn, đơn giản hơn, đỡ tốn công sửa lỗi hơn. Lập trình C rất hay xảy ra lỗi và khó sửa.

Trong Java, hiện tượng dò rỉ bộ nhớ hầu như không xảy ra do bộ nhớ được quản lí bởi Java Virtual Machine (JVM) bằng cách tự động "dọn dẹp rác" - Garbage collection. Người lập trình không phải quan tâm đến việc cấp phát và xóa bộ nhớ như C, C++. Tuy nhiên khi sở dụng những tài nguyên mạng, file IO, database (nằm ngoài kiểm soát của JVM) mà người lập trình không đóng (close) các streams thì memory leak vẫn có thể xảy ra.

Lịch sử[sửa | sửa mã nguồn]

Duke

Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun Microsystems năm 1991. Ban đầu ngôn ngữ này được gọi là Oak (có nghĩa là cây sồi; do bên ngoài cơ quan của ông Gosling có trồng nhiều loại cây này), họ dự định ngôn ngữ đó thay cho C++, nhưng các tính năng giống Objective C. Không nên lẫn lộn Java với JavaScript, hai ngôn ngữ đó chỉ giống tên và loại cú pháp như C. Công ty Sun Microsystems đang giữ bản quyền và phát triển Java thường xuyên. Tháng 04/2011, công ty Sun Microsystems tiếp tục cho ra bản JDK 1.6.24.

Java được tạo ra với tiêu chí "Viết (code) một lần, thực thi khắp nơi" ("Write Once, Run Anywhere" (WORA)). 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 đó. Môi trường thực thi của Sun Microsystems hiện hỗ trợ Sun Solaris, Linux, Mac OS, FreeBSD & Windows. Ngoài ra, một số công ty, tổ chức cũng như cá nhân khác cũng phát triển môi trường thực thi Java cho những hệ điều hành khác như BEA, IBM, HP.... Trong đó đáng nói đến nhất là IBM Java Platform hỗ trợ Windows, Linux, AIX & z/OS.

Những chi tiết về ngôn ngữ, máy ảoAPI của Java được giữ bởi Cộng đồng Java (do Sun quản lý). Java được tạo ra vào năm 1991 do một số kỹ sư ở Sun, bao gồm ông James Gosling, một phần của Dự án Xanh (Green Project). Java được phát hành vào năm 1994, rồi nó trở nên nổi tiếng khi Netscape tuyên bố tại hội thảo SunWorld năm 1995 là trình duyệt Navigator của họ sẽ hỗ trợ Java. Về sau Java được được hỗ trợ trên hầu hết các trình duyệt như Internet Explorer (Microsoft), Firefox (Mozilla), Safari (Apple)...

Java được sử dụng chủ yếu trên môi trường NetBeans và Oracle. Sau khi Oracle mua lại công ty Sun Microsystems năm 2009-2010, Oracle đã mô tả họ là "người quản lý công nghệ Java với cam kết không ngừng để bồi dưỡng một cộng đồng tham gia và minh bạch".[11]

Phương châm[sửa | sửa mã nguồn]

Có 5 mục tiêu chính trong việc xây dựng ngôn ngữ Java:[12]

  1. Nó sẽ được "đơn giản, hướng đối tượng và quen thuộc".
  2. Nó sẽ được "mạnh mẽ và an toàn".
  3. Nó sẽ được "kiến trúc trung lập và di động".
  4. Nó sẽ được thực thi với "hiệu suất cao".
  5. Nó sẽ được "thể hiện, phân luồng và năng động".

Phiên bản[sửa | sửa mã nguồn]

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.

Phiên bản dự kiến tiếp theo:

Ví dụ[sửa | sửa mã nguồn]

Dưới đây là một chương trình Java đơn giản.

  1. /* Example.java */
    
  2.  
    
  3. public class Example
    
  4. {
    
  5.    public static void main(String args[])
    
  6.    {
    
  7.       System.out.println("I don't say -Hello World-");
    
  8.    }
    
  9. }
    

Kết quả chương trình: In ra dòng chữ "I don't say -Hello World-" trên màn hình.

Liên kết ngoài[sửa | sửa mã nguồn]

Ghi chú[sửa | sửa mã nguồn]

  1. ^ Java 5.0 added several new language features (the enhanced for loop, autoboxing, varargs and annotations), after they were introduced in the similar (and competing) C# language [1] [2]
  2. ^ Gosling, James; and McGilton, Henry (tháng 5 năm 1996). “The Java Language Environment”. 
  3. ^ Gosling, James; Joy, Bill; Steele, Guy; and Bracha, Gilad. “The Java Language Specification, 2nd Edition”. 
  4. ^ “The A-Z of Programming Languages: Modula-3”. Computerworld.com.au. Truy cập ngày 9 tháng 6 năm 2010. 
  5. ^ Niklaus Wirth stated on a number of public occasions, e.g. in a lecture at the Polytechnic Museum, Moscow in September, 2005 (several independent first-hand accounts in Russian exist, e.g. one with an audio recording: Filippova, Elena (22 tháng 9 năm 2005). “Niklaus Wirth's lecture at the Polytechnic Museum in Moscow”. ), that the Sun Java design team licenced the Oberon compiler sources a number of years prior to the release of Java and examined it: a (relative) compactness, type safety, garbage collection, no multiple inheritance for classes -- all these key overall design features are shared by Java and Oberon.
  6. ^ Patrick Naughton cites Objective-C as a strong influence on the design of the Java programming language, stating that notable direct derivatives include Java interfaces (derived from Objective-C's protocol) and primitive wrapper classes. [3]
  7. ^ TechMetrix Research (1999). “History of Java”. Java Application Servers Report. ‘The project went ahead under the name "green" and the language was based on an old model of UCSD Pascal, which makes it possible to generate interpretive code’ 
  8. ^ “A Conversation with James Gosling – ACM Queue”. Queue.acm.org. 31 tháng 8 năm 2004. Truy cập ngày 9 tháng 6 năm 2010. 
  9. ^ “Programming Language Popularity”. 2009. Truy cập ngày 16 tháng 1 năm 2009. 
  10. ^ “TIOBE Programming Community Index”. 2009. Truy cập ngày 6 tháng 5 năm 2009. 
  11. ^ “Oracle and Java”. oracle.com. Oracle Corporation. Truy cập ngày 23 tháng 8 năm 2010. “Oracle has been a leading and substantive supporter of Java since its emergence in 1995 and takes on the new role as steward of Java technology with a relentless commitment to fostering a community of participation and transparency.” 
  12. ^ “1.2 Design Goals of the JavaTM Programming Language”. Java.sun.com. 1 tháng 1 năm 1999. Truy cập ngày 9 tháng 6 năm 2010.