Chuyển đến nội dung chính

Tại sao java được mệnh danh là " Write once, Run everywhere" ?

Trước khi vào nội dung chính chúng ta phải hiểu về định nghĩa thông dịch và biên dịch trước :
 
   - Biên dịch : Hiểu đơn giản bạn có một cuốn sách viết bằng tiếng Anh. Bạn nhờ một anh bạn là biên dịch viên dịch cuốn sách đó sang tiếng Việt. Sau khi dịch xong bạn sẽ được nhận một cuốn sách với ngôn ngữ là tiếng Việt. Nghĩa là toàn bộ nội dung code sẽ được dịch hết từ đầu tới đuôi không gặp lỗi thì sẽ được thực thi.
 
    - Thông dịch : Hiểu đơn giản bạn đang giao tiếp với người nước ngoài và có một anh bạn thông dịch viên đi với bạn. Khi người kia nói "Hello" thì anh thông dịch viên liền tức khắc dịch thành "Xin chào" cho bạn. Nghĩa là chương trình chạy tới đâu thì code mới được dịch tới đấy và thực thi.

Lý do java là ngôn ngữ "Write once, Run everywhere" :

    Tất cả là nhờ có anh chàng Java Virtual Machine (JVM) biên dịch Bytecode thành mã máy tương ứng với hệ điều hành mà anh chàng đó ở. Ủa mà Bytecode liên quan gì? Đang nói về Java cơ mà ??? Bình tĩnh nào...đâu còn có đó. Đọc tiếp đi nè hô hô.

    - Quy trình để java có thể "chạy ở mọi nơi" :

  •  Bước 1: Từ file " .java" nhờ java compiler biên dịch ra file " .class" chứa Bytecode.
  •  Bước 2 :  Từ file " .class" nhờ JVM thông dịch từ Bytecode sang mã máy nhờ đó máy hiểu và thực thi.

    Vậy tại sao lại không dịch trực tiếp từ Java sang mã máy luôn đi sao phải mất công dịch Bytecode rồi lại phải dịch sang mã máy?? Biết thế nào cũng có bạn thắc mắc nên mình giải thích nè :3

    - Lý do phải dịch qua Bytecode là tại cái anh chàng JVM đấy. Tại ảnh hiểu Bytecode thôi. Sau khi biên dịch code thành Bytecode rồi vác đi đâu miễn nơi đó có anh JVM là ảnh sẽ dịch thành mã máy tương ứng (Windows, Mac OS, Linux,...) là sẽ chạy được tất. Đó cũng là lý do Java được mệnh danh là ngôn ngữ "Write once, Run everywhere".

 

Nhận xét

Đăng nhận xét

Bài đăng phổ biến từ blog này

OOP là gì?

OOP là gì?        OOP là lập trình hướng đối tượng. Vậy lập trình hướng đối tượng là gì? Ngay từ cái tên của nó "hướng đối tượng" đã có thể giúp ta mường tượng ra được phần nào rồi nhỉ! Hiểu đơn giản là ta sẽ trừu tượng hóa các đối tượng thực tế cuộc sống đưa vào trong code(Thành các Class). ví dụ:     Ta có 3 bé Dũng, Thảo, Phương đều có một điểm chung giống nhau là học sinh. Mà ta cần biết những gì về một học sinh? Ta cần biết tên, ngày sinh, lớp chẳng hạn. Từ đó ta xây dựng một Class học sinh để có thể mô tả về 3 bé này. Bài tập: Áp dụng vào cuộc sống hằng ngày tìm ra "Class" có thể mô tả chung cho chúng. Ví dụ như xe hơi, xe máy, tàu hỏa, máy bay,... Đều thuộc chung 1 Class phương tiện giao thông. Phần nâng cao hơn là tính "Thừa kế" chúng ta sẽ đề cập ở phía dưới.     À! Quên... Trước khi tiếp tục thì chúng ta phải hiểu được thế nào là Object (Đối tượng) và thế nào là Class (Lớp). Các bạn có thể hiểu đơn giản Class là một bản thi...