Khác biệt giữa bản sửa đổi của “Bytecode Java”
Đã cứu 1 nguồn và đánh dấu 0 nguồn là hỏng.) #IABot (v2.0.9.2 |
Không có tóm lược sửa đổi |
||
| Dòng 1: | Dòng 1: | ||
'''Bytecode Java''' là [[tập lệnh]] của [[máy ảo Java]] (JVM), thứ mà [[Java (ngôn ngữ lập trình)|Java]] và các [[mã nguồn]] tương thích với JVM khác được [[Trình biên dịch|biên dịch]].<ref name="oracle jvm spec">{{Cite web |title=Java Virtual Machine Specification |url=http://docs.oracle.com/javase/specs/jvms/se8/html/ |access-date=14 November 2023 |publisher=Oracle}}</ref> Mỗi lệnh được biểu diễn bằng một [[byte]] đơn, do đó có tên là [[bytecode]], khiến đây trở thành một dạng [[dữ liệu]] nhỏ gọn.<ref name="JVM Book">{{Cite book |last=Lindholm |first=Tim |title=The Java Virtual Machine Specification |publisher=Oracle |year=2015 |isbn=978-0133905908}}</ref> |
|||
'''Mã byte Java''' (tiếng Anh: '''Java bytecode'''), là [[tập lệnh]] của [[máy ảo Java]] (JVM). |
|||
Do bản chất của bytecode, [[Chương trình máy tính|chương trình]] bytecode Java có thể chạy trên bất kỳ máy nào có JVM tương thích mà không cần phải trải qua quá trình biên dịch dài dòng từ mã nguồn. |
|||
Mã bytecode Java được sử dụng khi [[Thực thi (điện toán)|chạy]], được JVM [[Trình thông dịch|thông dịch]] hoặc biên dịch thành [[ngôn ngữ máy]] thông qua biên dịch [[Just-in-time compilation|just-in-time]] (JIT) và chạy như một ứng dụng gốc. |
|||
Vì bytecode Java được thiết kế để tương thích và bảo mật trên nhiều [[Nền tảng máy tính|nền tảng]] nên ứng dụng bytecode Java có xu hướng chạy nhất quán trên nhiều cấu hình [[Phần cứng máy tính|phần cứng]] và [[phần mềm]] khác nhau.<ref>{{Cite journal |last=Arnold |first=Ken |year=1996 |title=The Java Programming Language |journal=Sun Microsystems |volume=1 |issue=1 |pages=30–40}}</ref> |
|||
== Liên quan đến Java == |
== Liên quan đến Java == |
||
Một lập trình viên [[Java (ngôn ngữ lập trình)|Java]] hoàn toàn không cần phải biết hoặc hiểu |
Một lập trình viên [[Java (ngôn ngữ lập trình)|Java]] hoàn toàn không cần phải biết hoặc hiểu bytecode Java. Tuy nhiên, như đề xuất trên tạp chí [[IBM]] developerWorks, "Hiểu mã byte và mã byte được sinh ra bởi [[trình biên dịch Java]] giúp cho lập trình viên Java theo cách tương tự như [[hợp ngữ]] giúp cho lập trình viên [[C (ngôn ngữ lập trình)|C]] hay [[C++]]."<ref>[http://www.ibm.com/developerworks/ibm/library/it-haggar_bytecode/ Understanding bytecode makes you a better programmer]</ref> |
||
== Kiến trúc tập lệnh == |
== Kiến trúc tập lệnh == |
||
JVM dựa theo kiến trúc của cả [[máy xếp]] (stack machine) và [[máy thanh ghi]] (register machine). |
JVM dựa theo kiến trúc của cả [[Stack machine|máy xếp]] (''stack machine'') và [[Register machine|máy thanh ghi]] (''register machine'').<ref name="jvm">{{cite book |last1=Lindholm |first1=Tim |url=http://docs.oracle.com/javase/specs/jvms/se8/html/ |title=The Java Virtual Machine Specification |last2=Yellin |first2=Frank |last3=Bracha |first3=Gilad |last4=Buckley |first4=Alex |date=2015-02-13 |edition=Java SE 8}}</ref> |
||
== Xem thêm == |
== Xem thêm == |
||
{{Portal|Java (ngôn ngữ lập trình) |
* [[Máy ảo Java]]{{Portal|Java (ngôn ngữ lập trình) |
||
* [[:en:Java bytecode instruction listings]] |
|||
}} |
|||
* [[:en:Java class file]] |
|||
* [[:en:List of JVM languages]] |
|||
| ⚫ | |||
* [[:en:Java backporting tools]] |
|||
* [[:en:C to Java Virtual Machine compilers]] |
|||
| ⚫ | |||
* [[:en:Common Intermediate Language]] (CIL), Microsoft's rival to Java bytecode |
|||
* [[:en:ObjectWeb ASM]] |
|||
* [[:en:Byte Code Engineering Library]] |
|||
== Tham khảo == |
== Tham khảo == |
||
Phiên bản lúc 11:13, ngày 4 tháng 8 năm 2025
Bytecode Java là tập lệnh của máy ảo Java (JVM), thứ mà Java và các mã nguồn tương thích với JVM khác được biên dịch.[1] Mỗi lệnh được biểu diễn bằng một byte đơn, do đó có tên là bytecode, khiến đây trở thành một dạng dữ liệu nhỏ gọn.[2]
Do bản chất của bytecode, chương trình bytecode Java có thể chạy trên bất kỳ máy nào có JVM tương thích mà không cần phải trải qua quá trình biên dịch dài dòng từ mã nguồn.
Mã bytecode Java được sử dụng khi chạy, được JVM thông dịch hoặc biên dịch thành ngôn ngữ máy thông qua biên dịch just-in-time (JIT) và chạy như một ứng dụng gốc.
Vì bytecode Java được thiết kế để tương thích và bảo mật trên nhiều nền tảng nên ứng dụng bytecode Java có xu hướng chạy nhất quán trên nhiều cấu hình phần cứng và phần mềm khác nhau.[3]
Liên quan đến Java
Một lập trình viên Java hoàn toàn không cần phải biết hoặc hiểu bytecode Java. Tuy nhiên, như đề xuất trên tạp chí IBM developerWorks, "Hiểu mã byte và mã byte được sinh ra bởi trình biên dịch Java giúp cho lập trình viên Java theo cách tương tự như hợp ngữ giúp cho lập trình viên C hay C++."[4]
Kiến trúc tập lệnh
JVM dựa theo kiến trúc của cả máy xếp (stack machine) và máy thanh ghi (register machine).[5]
Xem thêm
Tham khảo
- ↑ "Java Virtual Machine Specification". Oracle. Truy cập ngày 14 tháng 11 năm 2023.
- ↑ Lindholm, Tim (2015). The Java Virtual Machine Specification. Oracle. ISBN 978-0133905908.
- ↑ Arnold, Ken (1996). "The Java Programming Language". Sun Microsystems. 1 (1): 30–40.
- ↑ Understanding bytecode makes you a better programmer
- ↑ Lindholm, Tim; Yellin, Frank; Bracha, Gilad; Buckley, Alex (ngày 13 tháng 2 năm 2015). The Java Virtual Machine Specification .
Liên kết ngoài
- Oracle's Java Virtual Machine Specification
- Programming Languages for the Java Virtual Machine
- Bytecode Visualizer – bytecode viewer and debugger (free Eclipse plugin)
- AdaptJ StackTrace – bytecode level debugging with a full control of the stack, the local variables, and the execution flow Lưu trữ ngày 9 tháng 8 năm 2009 tại Wayback Machine
- Java Class Unpacker – plugin for Total Commander, it lets open class files as compressed archives and see fields and methods as files. The bytecode can be viewed as text using F3