C H HƯ ƯƠ ƠN N GG
b. Ưu điểm của java
- Được Sun mơ tả như là một ngơn ngữ lập trình đơn giản, hướng đối tượng, hiể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.
♦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.
c. Nhược điểm của Java
- Java cĩ tốc độ thực thi chương trình phải thơng qua JVM nên tốc độ
rất chậm so với các ngơn ngữ khác.
- khi cài đặt và tiết lập các ứng dụng java thường rất phức tạp hơn các ngơn ngữ khác vì thế mà java hiện nay chưa được các lập trình viên ưa chuộng.
II.Một số kỹ thuật Lập trình mạng trong java