Ưu, nhược điểm của java

java là ngôn ngữ lập trình đang được lựa chọn hàng đầu bởi tính ứng dụng và sự hiệu quả của nó, bên cạnh đó java cũng có những nhược điểm mà các lập trình viên cần phải biết!


Ưu điểm:

•    Dễ học hơn c ++
•    Dễ đọc mã hơn c ++
•    Phát triển nhanh hơn và có khả năng ít lỗi hơn (do quản lý bộ nhớ ít hơn) so với c ++.
•    Hầu hết các nền tảng chéo kể từ khi nó được thiết kế cho nó và Sun tạo ra JRE và JDK cho hầu hết các nền tảng
•    Tất cả mọi thứ được truyền bằng tham chiếu ngoại trừ các loại giá trị, theo mặc định
•    Công cụ thu gom rác dọn dẹp đồ vật một khi chúng không còn được sử dụng, vì vậy bạn không phải tự mình theo dõi mọi thứ
•    Rõ ràng java 6 chạy (một số?) Công cụ nhanh hơn một chút so với c ++ (mã kiểm tra được chuyển từ c ++ chạy nhanh hơn mặc dù phải làm những việc có vẻ lãng phí!)
•    Chương trình được biên dịch và tối ưu hóa cho nền tảng, nếu cần?
•    Dễ dàng tạo nhiều luồng và bạn có thể khai báo các chức năng được đồng bộ hóa để chỉ một luồng có thể có trong một luồng (IIRC)
•    Bạn có thể sử dụng Wait () và notifyAll () và thông báo () để tạm dừng các luồng để chờ tín hiệu và đánh thức chúng lại.
•    Các IDE miễn phí khác nhau có sẵn trên tất cả các nền tảng, chẳng hạn như Eclipse
•    Nếu chương trình gặp sự cố, nó sẽ báo cho người dùng biết mã trong đó ở đâu và tại sao, hiển thị dấu vết ngăn xếp bao gồm số dòng (nếu biểu tượng gỡ lỗi được bật hoặc một cái gì đó tương tự) hoặc có thể được đổ vào tệp nhật ký lỗi.
•    Các chương trình có thể được đóng gói thành các tệp jar với các tệp dữ liệu khác nhau trong các tệp jar khác nhau và được người dùng truy cập bằng Java WebStart, sẽ tự động cập nhật chương trình và mọi tệp jar cần thiết khác lên phiên bản mới nhất, chỉ tải xuống các tệp jar đã thay đổi.
•    Mạng dễ dàng hơn / nhiều nền tảng hơn c ++.
•    Các tệp được đọc và ghi dưới dạng big endian trên tất cả các nền tảng (là thứ tự byte mạng) đảm bảo rằng giao tiếp giữa các chương trình java và tải tệp không bao giờ yêu cầu hoán đổi thứ tự byte (trừ khi nói chuyện với chương trình không phải java hoặc sử dụng tệp được viết bởi một ).

Nhược điểm:
•    Sử dụng nhiều bộ nhớ hơn c ++ hoặc c #
•    JNI thật đáng sợ, nhưng nếu chúng tôi là nền tảng chéo, có lẽ chúng tôi sẽ không sử dụng nó, (ngoại trừ công cụ 3d sẽ?)
•    Trình thu gom rác sử dụng chu kỳ và bộ nhớ CPU - (nhưng hầu như không có, ít nhất là thời gian CPU)
•    Không có số nguyên không dấu
•    Không có con trỏ, không có tham số ref hoặc out (thay thế con trỏ trong c #). Để trả về nhiều thứ từ một hàm java, bạn có xu hướng phải trả về một đối tượng [] đang giữ từng thứ hoặc tạo một lớp chứa từng thứ và trả về một đối tượng của lớp đó.
•    Một số thứ đã được đổi tên - const là cuối cùng trong java, ví dụ
•    Java không cho phép người lập chỉ mục hoặc toán tử trên các đối tượng, ví dụ: nếu bạn sử dụng danh sách có thể thay đổi kích thước, v.v., bạn phải thực hiện list.get (index) thay vì list [index] và bạn không thể thực hiện someVector + someOtherVector.
•    Java không cho phép bạn quyết định xem một loại nên là một giá trị hay một loại tham chiếu (xác định xem nó nên được truyền theo giá trị hay chuyển qua tham chiếu), không giống như c #.
•    Các tệp Jar được sử dụng bởi java webstart phải được ký bằng chứng chỉ. Chứng chỉ ký mã có giá hàng trăm đô la mỗi năm hoặc bạn có thể tự tạo một ký tự và sử dụng nó, điều này sẽ khiến Java Webstart bật lên hộp thoại "Chứng nhận này không thể được xác minh" khi người dùng cố chạy chương trình. (Cách khác, không sử dụng Java Webstart và chỉ phân phối các tệp jar trực tiếp - yêu cầu người dùng tự kiểm tra các bản cập nhật.)
•    Yêu cầu JRE được cài đặt để chạy chương trình, tải xuống vài giờ khi quay số.
•    Phải sử dụng java 5 cho generic, 1.4 không có chúng. Java 6 mới nhất và đã được vài năm tuổi, nhưng - Apple phát hành phiên bản java của riêng họ cho người dùng Mac và vẫn chưa phát hành phiên bản java 6 "ổn định" cho người dùng.
  
Hi vọng bài viết sẽ hữu ích với các bạn!! IMIC chúc các bạn thành công!!
Share:

ĐỐI TÁC LIÊN KẾT TUYỂN DỤNG NHÂN SỰ CỦA IMIC TECHNOLOGY

IMIC Technology

IMIC Technology tự hào là doanh nghiệp đầu tiên tại Việt Nam triển khai các Chương trình Đào tạo chuyên môn dự án cho Học viên ngành CNTT/CNPM. Cũng là một trong những doanh nghiệp đạt được nhiều giải thưởng lớn trong lĩnh vực này. Góp phần phát triển mạnh ngành CNTT/CNPM tại nước ta hiện nay.