Xem Jvm trong kinh doanh là gì 2024
Cấu trúc của file .class.
Các phần tử tạo cho Java thành công là:
Ðịnh nghĩa Bytecode.
Cấu trúc của file .class.
Máy ảo Java (JVM).
Khả năng cơ động của file .class cho phép các chương trình Java viết một lần
nhưng chạy ở bất kỳ đâu. Khả năng này có được nhờ sự giúp đỡ của máy ảo
Java.
5.4.1 Máy ảo Java là gì ?
Máy ảo là một phần mềm dựa trên cơ sở máy tính ảo. Nó có tập hợp các lệnh
logic để xác định các hoạt động của máy tính. Người ta có thể xem nó như một
hệ điều hành thu nhỏ. Nó thiết lập các lớp trừu tượng cho: Phần cứng bên dưới,
hệ điều hành, mã đã biên dịch.
Trình biên dịch chuyển mã nguồn thành tập các lệnh của máy ảo mà không phụ
thuộc vào phần cứng cụ thể. Trình thông dịch trên mỗi máy sẽ chuyển tập lệnh
này thành chương trình thực thi. Máy ảo tạo ra một môi trường bên trong để
thực thi các lệnh bằng cách:
Nạp các file .class.
Quản lý bộ nhớ .
Dọn “rác”.
Việc không nhất quán của phần cứng làm cho máy ảo phải sử dụng ngăn xếp để
lưu trữ các thông tin sau:
Các “Frame” chứa các trạng thái của các phương thức.
Các toán hạng của mã bytecode.
Các tham số truyền cho phương thức.
Các biến cục bộ.
49
Khi JVM thực thi mã, một thanh ghi cục bộ có tên “Program Counter” được sử
dụng. Thanh ghi này trỏ tới lệnh đang thực hiện. Khi cần thiết, có thể thay đổi
nội dung thanh ghi để đổi hướng thực thi của chương trình. Trong trường hợp
thông thường thì từng lệnh một nối tiếp nhau sẽ được thực thi.
Một khái niệm thông dụng khác trong Java là trình biên dịch “Just In Time-JIT”.
Các trình duyệt thông dụng như Netscape hay IE đều có JIT bên trong để tăng
tốc độ thực thi chương trình Java. Mục đích chính của JIT là chuyển tập lệnh
bytecode thành mã máy cụ thể cho từng loại CPU. Các lệnh này sẽ được lưu trữ
và sử dụng mỗi khi gọi đến.
5.4.2 Quản lý bộ nhớ và dọn rác:
Trong C, C++ hay Pascal người lập trình sử dụng phương pháp trực tiếp để cấp
phát và thu hồi bộ nhớ ở vùng “Heap”. Heap là vùng bộ nhớ lớn được phân chia
cho tất cả các luồng.
Để quản lý Heap, bộ nhớ được theo dõi qua các danh sách sau:
Danh sách các vùng nhớ chưa sử dụng.
Danh sách các vùng đã cấp.
Khi có một yêu cầu về cấp phát bộ nhớ, hệ thống xem xét trong danh sách chưa
cấp phát để lấy ra khối bộ nhớ đầu tiên có kích cỡ sát nhất với lượng bộ nhớ cần
thiết . Kỹ thuật cấp phát này giảm tối thiểu việc phân mảnh của heap.
“Coalescing” là kỹ thuật khác cũng giảm thiểu việc phân mảnh của heap bằng
cách gom lại các vùng nhớ chưa dùng liền nhau thành một khối lớn hơn. Còn kỹ
thuật sắp xếp lại các phần đã dùng để tạo vùng nhớ chưa sử dụng lớn hơn gọi
là”Compaction”.
50
Java sử dụng hai heap riêng biệt cho cấp phát vùng nhớ tĩnh và vùng nhớ động.
Một heap (heap tĩnh) chứa các định nghĩa về lớp, các hằng và danh sách các
phương thức. Heap còn lại (heap động) được chia làm hai phần được cấp phát
theo hai chiều ngược nhau. Một bên chứa đối tượng còn một bên chứa con trỏ
trỏ đến đối tượng đó.
“Handle” là cấu trúc bao gồm hai con trỏ. Một trỏ đến bảng phương thức của đối
tượng, con trỏ thứ hai trỏ đến chính đối tượng đó. Chú ý rằng khi “compaction”
cần cập nhật lại giá trị con trỏ của cấu trúc “handle”.
Thuật toán dọn rác có thể áp dụng cho các đối tượng đặt trong heap động. Khi
có yêu cầu về bộ nhớ, trình quản lý heap trước tiên kiểm tra danh sách bộ nhớ
chưa cấp phát. Nếu không tìm thấy khối bộ nhớ nào phù hợp (về kích cỡ) thì
trình dọn rác sẽ được kích hoạt khi hệ thống rỗi. Nhưng khi đòi hỏi bộ nhớ cấp
bách thì trình dọn rác sẽ được kích hoạt ngay.
Trình dọn rác gọi phương thức finalize của đối tượng trước khi dọn dẹp đối
tượng. Hàm này sẽ dọn dẹp các tài nguyên bên ngoài như các file đang mở.
Công việc này không được trình dọn rác thực thi.
5.4.3 Quá trình kiểm tra file .class:
Việc kiểm tra được áp dụng cho tất cả các file .class sắp được nạp lên bộ nhớ để
đảm bảo tính an toàn. Trình “Class Loader” sẽ kiểm tra tất cả các file .class
không thuộc hệ điều hành với mục đích giám sát sự tuân thủ các nghi thức để
phát hiện các file .class có nguy cơ gây hư hỏng đến bộ nhớ, hệ thống file cục
bộ, mạng hoặc hệ điều hành. Quá trình kiểm tra sẽ xem xét tổng thể tính nguyên
vẹn của một lớp.
File .class bao gồm ba phần logic là:
51
Bytecode.
Thông tin về Class như phương thức, giao diện và các giá trị hằng số
được tập hợp trong quá trình biên dịch.
Các thuộc tính về lớp.
Các thông tin của file .class được xem xét riêng rẽ trong các bảng sau:
Bảng Field chứa các thuộc tính.
Bảng Method chứa các hàm của class.
Bảng Interface và và các hằng số.
Quá trình kiểm tra file .class được thực hiện ở bốn mức:
Mức đầu tiên thực hiện việc kiểm tra cú pháp để đảm bảo tính cấu trúc và
tính toàn vẹn cú pháp của file .class được nạp.
Mức thứ hai sẽ xem xét file .class để đảm bảo các file này không vi phạm
các nguyên tắc về sự nhất quán ngữ nghĩa.
Mức thứ ba sẽ kiểm tra bytecode. Trong bước này sẽ kiểm tra số thông số
truyền vào phương thức, khả năng truy xuất sai chỉ số của mảng, chuỗi,
biểu thức.
Mức thứ tư sẽ kiểm tra trong thời gian thực thi để giám sát các việc còn
lại mà ba bước trên chưa làm. Ví dụ như liên kết tới các lớp khác trong
khi thực thi, hay kiểm tra quyền truy xuất. Nếu mọi điều thỏa mãn, lớp sẽ
được khởi tạo.
5.5 Bộ công cụ phát triển JDK (Java Development Kit)
Sun Microsystem đưa ra ngôn ngữ lập trình Java qua sản phẩm có tên là Java
Development Kit (JDK). Ba phiên bản chính là:
Java 1.0 – Sử dụng lần đầu vào năm 1995.
Java 1.1 Ðưa ra năm 1997 vớI nhiều ưu điểm hơn phiên bản trước.
Java 2 Phiên bản mới nhất.
52
JDK bao gồm Java Plug-In, chúng cho phép chạy trực tiếp Java Applet hay
JavaBean bằng cách dùng JRE thay cho sử dụng môi trường thực thi mặ c định
của trình duyệt.
JDK chứa các công cụ sau:
5.5.1 Trình biên dịch, javac
Cú pháp:
javac [options] sourcecodename.java
5.5.2 Trình thông dịch, java
Cú pháp:
java [options] classname
5.5.3 Trình dịch ngược, javap
javap dịch ngược bytecode và in ra thông tin về các thuộc tính (các trường), các
phương thức của một lớp.
Cú pháp:
javap [options] classname
5.5.4 Công cụ sinh tài liệu, javadoc
Tiện ích này cho phép ta tạo ra tệp HTML dựa trên các lời giải thích trong mã
chương trình (phần nằm trong cặp dấu /*…. */).
Cú pháp:
javadoc [options] sourcecodename.java
5.5.5 Chương trình tìm lỗi Debug, jdb
Cú pháp:
53
Bạn đang tìm hiểu bài viết: Jvm trong kinh doanh là gì 2024
HỆ THỐNG CỬA HÀNG TRÙM SỈ QUẢNG CHÂU
Điện thoại: 092.484.9483
Zalo: 092.484.9483
Facebook: https://facebook.com/giatlathuhuongcom/
Website: Trumsiquangchau.com
Địa chỉ: Ngõ 346 Nam Dư, Trần Phú, Hoàng Mai, Hà Nội.