JVM Đã Làm Cho Java Mạnh Mẽ Cỡ Nào?

Cùng với JDK (Java Development Kit) và JRE (Java Runtime Environment), thì JVM (Java Virtual Machine) là một trong các thành phần quan trọng của nền tảng Java, giúp hỗ trợ phát triển và thực thi các ứng dụng Java. Trong bài viết này chúng ta sẽ cùng nhau cùng nhau tìm hiểu về JVM cũng như vai trò của nó trong nền tảng Java.

1. Java Virtual Machine là gì vậy?

JVM hay Java Virtual Machine là một máy ảo được cho phép chạy các chương trình Java cũng như các chương trình viết bằng các ngôn từ khác nhưng được biên dịch sang mã bytecode của Java. Do đó, từ một chương trình nhưng trải qua JVM nó hoàn toàn có thể chạy được trên các nền tảng khác nhau .

Bạn đang đọc: JVM Đã Làm Cho Java Mạnh Mẽ Cỡ Nào?

JVM quản lý bộ nhớ hệ thống và cung cấp môi trường thực thi cho ứng dụng Java, nó có hai chức năng chính là cho phép chương trình Java chạy trên mọi thiết bị, nền tảng khác nhau (Write once, Run anywhere) và quản lý, tối ưu bộ nhớ chương trình.

JVM Đã Làm Cho Java Mạnh Mẽ Cỡ Nào?

Khi các nhà tăng trưởng nói về JVM họ thường nghĩ tới cách chương trình được thực thi trong máy, đặc biệt quan trọng là sever, nó trấn áp việc sử dụng tài nguyên cho ứng dụng Java. Điều đó khác với định nghĩa kĩ thuật của JVM, nó tuân thủ theo một đặc tả cho chương trình ứng dụng, miêu tả các nhu yếu thiết kế xây dựng chương trình và phân phối môi trường tự nhiên thực thi code .

2. Quản lý bộ nhớ trong JVM thế nào?

Tương tác phổ cập nhất với JVM là kiểm tra lượng sử dụng bộ nhớ trong vùng heap và stack, còn kiểm soát và điều chỉnh thông dụng nhất là kiểm soát và điều chỉnh setup bộ nhớ Java. Chúng ta hoàn toàn có thể thấy được việc theo dõi và trấn áp bộ nhớ rất quan trọng so với chương tình Java, do đó JVM phân phối một công cụ quản lí bộ nhớ tự động hóa đó là Garbage Collection ( GC ). GC sẽ liên tục xác lập và vô hiệu các bộ nhớ không được sử dụng đến trong chương trình Java, nó được chạy đồng thời khi chạy JVM, đó cũng là một trong các nguyên do Java được coi là chậm hơn các ngôn từ khác . Trước đó, việc quản trị bộ nhớ ( ví dụ như cấp phép, giải phóng bộ nhớ ) thường do người lập trình đảm nhiệm, khi nền tảng Java được sinh ra đã nhận được nhiều chỉ trích về việc kém “ close to the metal ” ( ý nói về năng lực quản trị bộ nhớ của lập trình viên ) so với C + +, do đó nên Java chậm hơn. Nhưng trên thực tiễn, việc ủy quyền quản trị bộ nhớ cho một quy trình tiến độ đã được tinh chỉnh và điều khiển tốt như JVM lại mang lại nhiều quyền lợi về hiệu suất và ít Open lỗi về bộ nhớ, hơn thế nữa công cụ Garbage Collection ngày càng được nâng cao và nâng cấp cải tiến .

3. Nạp và thực thi file Java class trong JVM

Chúng ta nói về các vai trò của JVM trong việc chạy chương trình Java, nhưng thực sự JVM hoạt động giải trí như thế nào. Để chạy chương tình Java JVM cần dựa vào 2 công cụ Java Class Loader và Java execution Engine .

Java class loader:

Mọi thứ trong Java hay ứng dụng Java được thiết kế xây dựng bởi các Classes. Để chạy ứng dụng Java, JVM cần phải biên dịch các file. class sang mã bytecode trước nhờ vào công cụ class loader. Java class loader là một phần trong quá tình hoạt động giải trí của JVM, nó nạp các class vào trong bộ nhớ và giúp chúng hoàn toàn có thể được thực thi hiệu suất cao nhất trải qua các kĩ thuật như lazy-loading và caching .

Java execution engine:

Khi class loader thực thi xong trách nhiệm của nó, execution engine giúp JVM thực thi code trong mỗi class. Execution engine rất thiết yếu để chạy JVM, nó là phần liên kết giữa chương trình và hệ điều hành quản lý, giúp quản trị các nhu yếu truy vấn tài nguyên của chương trình đến mạng lưới hệ thống .

Khi bạn thực thi chạy một chương trình java, class loader sẽ nạp tổng thể các file. class trong chương trình của bạn và cả các file. class thiết yếu có sẵn ở trong thư viện của Java để biên dịch ra mã bytecode, mã bytecode này sẽ giúp các thành phần phía sau của JVM hoàn toàn có thể hiểu và chạy chương trình. Mã bytecode này sẽ được lưu tại vùng nhớ được cấp phép bởi JVM. Trong đó, heap chứa các Object, stack chứa các biến trong thời điểm tạm thời, pc registers chứa địa chỉ của thread, … còn native method stack để thực thi các phương pháp native ( non-java ). Cuối cùng, execution engine sẽ là cầu nối tới hệ quản lý và điều hành giúp cho chương trình hoàn toàn có thể truy vấn được các tài nguyên như file, bộ nhớ, network, ….

4. Sự phát triển của JVM

Năm 1995, JVM được giới thiệu với hai khái niệm mang tính cách mạng là viết một lần chạy mọi nơi (write once, run anywhere) và sự quản lý bộ nhớ tự động. Khả năng tương tác giữa các phần mềm là một khái niệm táo bạo vào thời điểm đó, nhưng thực tế ngày nay rất ít nhà phát triển lại nghĩ về nó. Tương tự như vậy, so với thế hệ nhà phát triển đi trước phải quan tâm tới việc tự quản lý bộ nhớ chương tình thì thế hệ chúng ta bây giờ lớn lên với sự phát triển của Garbage Collection.

Có thể nói rằng James Gosling đã tạo ra một ngôn từ lập trình tân tiến. Trong khi JVM được tạo ra với mục tiêu khởi đầu là tương hỗ Java, thì ngày này nó còn tương hỗ cho nhiều ngôn từ lập trình hay ngôn từ scripts khác, gồm có Scala, Groovy, và Kotlin. Cuối cùng thật khó để nói rằng JVM không còn Open trong toàn cảnh tăng trưởng của tương lai . Nguồn tìm hiểu thêm : infoworld

Lời kết

Qua bài này các bạn đã phần nào tưởng tượng được bức tranh khái quát về JVM cũng như vai trò của nó trong nền tảng Java. Nếu bài viết có ý nghĩa, bạn đọc hãy để lại phản hồi cũng như nhìn nhận giúp bài viết tốt hơn. Cảm ơn bạn đọc, chúc bạn đọc thành công xuất sắc trên con đường học tập !

0 Shares
Share
Tweet
Pin