www.updatesofts.com
2.3.5 Ứng dụng cơ sở dữ liệu
Các ứng dụng này sử dụng JDBC API để kết nối tới cơ sở dữ liệu. Chúng có thể là Applet
hay ứng dụng, nhưng Applet bị giới hạn bởi tính bảo mật.
2.4 Máy ảo Java (JVM-Java Virtual Machine)
Máy ảo Java là trái tim của ngôn ngữ Java. Môi trường Java bao gồm năm phần tử sau:
Ngôn ngữ
Ðịnh nghĩa Bytecode
Các thư viện lớp Java/Sun
Máy ảo Java (
JVM
)
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.
2.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 pháp.
Các toán hạng của mã bytecode.
Các tham số truyền cho phương pháp.
Các biến cục bộ.
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.
2.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 nguyên thủy để 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