2016-08-10 14 views
5

Trong nhiệm vụ của tôi để hiểu được lý do sử dụng Java trên C++ hoặc ngược lại để viết các ứng dụng, tôi đã bị mắc kẹt ở điểm này. Tôi đã xem một video giới thiệu tôi với Java và họ nói lý do có JVM là vì nó làm cho Java di động, có nghĩa là nó chạy trên nhiều kiến ​​trúc như điện thoại và công cụ mà không cần phải viết trình biên dịch mới cho mỗi hệ điều hành CPU khác nhau. Nhưng mọi người phải làm một cái gì đó để làm cho nó tương thích với mỗi CPU và hệ điều hành. Tôi không thấy cách sử dụng JVM thay đổi bất cứ điều gì.Làm thế nào để JVM tương thích với kiến ​​trúc CPU khác với việc tạo trình biên dịch cho kiến ​​trúc CPU?

+0

Tôi nghĩ rằng tuyên bố "trình biên dịch đắt tiền" đòi hỏi một số bằng cấp để có bất kỳ ý nghĩa nào. –

+0

Tôi nghĩ bạn đã đúng, tôi đã chỉnh sửa nó. – BrettG

+2

Có vẻ như video đang giải thích rất rõ. – juanchopanza

Trả lời

0

Phiên bản Java ban đầu (BETA) là bị tắt để được "viết một lần, kiểm tra ở mọi nơi". Cải thiện chất lượng của phần mềm trên nền tảng ban đầu (SunOS/Solaris, Windows, Mac, v.v.) đã tăng đáng kể tính di động của nó (và phần mềm di động vốn dễ dàng hơn để cổng). Hiện tại, có nhiều triển khai Java (IBM, JRockit, v.v.).

Về cơ bản, Java là thông số của máy ảo thực thi mã byte; và không bất kỳ triển khai cụ thể nào. Vì mã byte giống nhau trên nền tảng nên trình biên dịch Java không cần phải thay đổi để hỗ trợ các nền tảng mới. Hơn nữa, phần lớn số OpenJDK (và, do đó, Oracle JVM) được viết bằng Java. Về cơ bản, bootstrapping Java được đơn giản hóa so với việc khởi động trình biên dịch cho kiến ​​trúc CPU "thực" ".

Không bao gồm CPU natively execute Java byte code.

+0

Sửa lỗi nếu tôi sai, nhưng JVM có nhiều khả năng được viết bằng cả C hoặc C++. Tôi phải chạy JVM trên một architecure. Vì vậy, nó không tạo sự khác biệt cho dù tôi chạy Java/JVM trên một kiến ​​trúc hoặc thẳng C/C++. Dù bằng cách nào tôi cũng cần một trình biên dịch C/C++ được viết cho kiến ​​trúc. – BrettG

Các vấn đề liên quan