II- Ưu điểm và nhược điểm của Java
1. Ưu điểm của Java
giản, hướng đối tượng, kiểu - mạng, cĩ thể biên dịch, mạnh, an tồn, độc lập với cấu trúc, dễ di chuyển, hiệu suất cao, đa luồng, và cĩ tính động. Những điều đĩ khơng dễ giải thích. Vậy thì, cụ thể Java làm được gì?
Về cơ bản, nĩ giúp các nhà phát triển phần mềm thực hiện được những việc sau:
♦Thứ nhất: họ cĩ thể xây dựng nên các applet Java, đĩ là những trình ứng dụng mini được phân phối qua Internet và chạy trong một trình duyệt Web hiểu Java. Các applet Java tăng cường cho trang Web khả năng tương tác phong phú hơn và tính đa phương tiện tốt hơn so với khi dùng HTML bình thường. Applet hoạt động giống như cung cách bạn đặt một trang web với các siêu văn bản trên một server và một máy khách (client) cĩ thể tải trang đĩ xuống theo yêu cầu để xem các văn bản đã sắp đặt theo khuơn dạng. Tương tự, bạn viết và biên dịch một chương trình applet Java và đặt một tham chiếu URL hoặc HTML tới nĩ trong trang web. Khi một client duyệt qua trang web này, mã nhị phân của applet Java được tải xuống client đĩ cùng các tệp văn bản và đồ hoạ. chương trình duyệt chứa một JVM và nĩ sẽ thực hiện applet trên máy tính của client.
SVTH: Bùi Thi Thu Hiền Trang 53
Trình biên dịch và những cơng cụ khác của Java
Mã byte đã được biên dịch
Hệ điều hành (Solaris, Linux, Windows95/NT, MacOS, OS/2)
Phần cứng máy tính (Sparc, Pentium, X86, Power PS,....) Hệ thống thực thi Java
Máy ảo Java
Java API Bức màn bí mật về Java Hệ nền chủ Java Ngơn ngữ lập trình java Những chương trình
nguồn của java
♦Thứ hai: các nhà phát triển phần mềm cĩ thể xây dựng các trình ứng dụng hồn chỉnh bằng Java, như bộ xử lý văn bản, bảng tính, hoặc bộ chương trình văn phịng tổng hợp (như Corel đang làm chẳng hạn). Ưu điểm của cách làm này là các trình ứng dụng chỉ cần viết một lần mà chạy được trên hầu hết mọi loại máy tính.
♦Thứ ba: Java đáp ứng khơng những tính dễ chuyển mang mà cịn cả cách xử lý đồng nhất của chương trình trên các hệ thống khác nhau. Đầu tiên mã nguồn Java được biên dịch để sinh ra mã đối tượng gọi là bytecode, bytecode khơng phải là mã nhị phân của bất kỳ máy tính đang tồn tại thực tế nào mà đĩ là một loại mã máy kiến tạo, Bạn sẽ thực hiện một chương trình Java bằng cách chạy một chương trình khác gọi là Java Virtual Machine hay là JVM, JVM đọc chương trình bằng bytecode và thơng dịch hoặc biên dịch nĩ ra theo hệ lệnh thực tế, JVM biến tất cả mọi nền phần cứng và phần mềm trở nên giống nhau dưới con mắt của chương trình Java. Chạy bytecode trên một JVM là lý do vì sao các phần mềm Java là "viết một lần, chạy khắp nơi"
♦Thứ tư: Việc quản lý bộ nhớ: So với ngơn ngữ C và C++, các chương trình Java được quản lý về bộ nhớ ở mức hệ thống và người lập trình khơng bao giờ phải lo lắng về chuyện đĩ. Thư viện thời gian chạy của Java sẽ giám sát các cấu trúc dữ liệu. Khi khơng cịn một tham chiếu nào tới một cấu trúc dữ liệu thì nĩ khơng thể là đang được sử dụng vì chương trình khơng cĩ cách gì để đọc hoặc ghi nĩ. Lúc đĩ nĩ sẽ là đối tượng của việc dọn dẹp bộ nhớ. Java hướng tới việc dọn dẹp bộ nhớ tự động. Việc dọn dẹp bộ nhớ tự động ảnh hưởng tới tính năng vì nĩ liên quan đến các quá trình khác chạy trong nền sau để giám sát việc sử dụng bộ nhớ. Tuy nhiên thực tế đã chỉ ra rằng, ở đây cũng cĩ một sự cân nhắc đáng giá. Một hệ thống nhỏ thực hiện dọn dẹp bộ nhớ tự động đã dẫn tới sự cải thiện rất lớn thơng qua việc gỡ bỏ một loạt các lỗi của các chương trình Java. Cĩ thể so sánh, các chương trình C++ chịu trách nhiệm quản lý các đống (heap) bộ nhớ của riêng chúng do vậy chúng phải cĩ mã dài hơn, mất nhiều thời gian gỡ rối hơn và các chương trình lớn thường dẫn tới các lỗi rất khĩ phát hiện và xử lý về việc dọn dẹp bộ nhớ.
- Java là một mơi trường độc lập, đĩ là một lợi thế quan trọng cho phép Java hơn hẳn những ngơn ngữ khác, đặc biệt là cho những hệ thống cần làm việc trên nhiều mơi trường khác nhau, Java là một mơi trường độc lập ở cả trên nền hệ thống lẫn dưới mức thấp như hệ xử lý nhị phân. Nĩ cĩ khả năng chuyển từ hệ thống máy tính này sang hệ thống máy tính khác khơng phụ thuộc vào cấu trúc của máy hay hệ điều hành hoạt động trên máy.