Lập trình Java - 3

dùng để xử lý dữ liệu, thực thi các giao dịch và thường được thực thi thông qua máy chủ Web.

e) Ứ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.

1.1.4. Máy ảo Java

Máy ảo là một phần mềm mô phỏng một máy tính thật. 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 và có một hệ điều hành ảo. Người ta có thể xem nó như một máy tính thật. 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ó thể bạn quan tâm!

Xem toàn bộ 267 trang tài liệu này.

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ộ.

Khi máy ảo Java(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.

a) 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”.

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.

b) 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à:

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à 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.

1.1.5. Bộ công cụ phát triển JDK

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). Từ khi phát triển phiên bản đầu tiên từ năm 1995 đến nay, bộ công cụ Java đã được phát triển qua nhiều phiên bản và cũng có nhiều sự thay đổi, sau đây là một số phiên bản đã được phát hành:

JDK 1.0

JDK 1.1 (19 tháng 2, 1997)

JDK 1.1.5 (Pumpkin) 03 tháng 12, 1997

JDK 1.1.6 (Abigail) 24 tháng 4, 1998

JDK 1.1.7 (Brutus) 28 tháng 9, 1998

JDK 1.1.8 (Chelsea) 08 tháng 4, 1999

J2SE 1.2 (Playground) 08 tháng 12, 1998

J2SE 1.2.1 (không có) 30 tháng 3, 1999

J2SE 1.2.2 (Cricket) 08 tháng 7, 1999

J2SE 1.3 (Kestrel) 08 tháng 5, 2000

J2SE 1.3.1 (Ladybird) 17 tháng 5, 2001

J2SE 1.4.0 (Merlin) 06 tháng 02, 2002

J2SE 1.4.1 (Hopper) 16 tháng 9, 2002

J2SE 1.4.2 (Mantis) 26 tháng 6, 2003

J2SE 5 (1.5.0) (Tiger) 30 tháng 9, 2004

Java SE 6(còn gọi là Mustang), được công bố 11 tháng 12 năm 2006. Các bản cập nhật 2 và 3 được đưa ra vào năm 2007, bản cập nhật 4 đưa ra tháng 1 năm 2008.

JDK 6.18, 2010

Java SE 7(còn gọi là Dolphin), được bắt đầu từ tháng 8 năm 2006 và công bố ngày 28 tháng 7 năm 2011.

Hiện tại đang phát triển và thử nghiệm bản Java JDK 8.

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: Trình biên dịch, 'javac' Cú pháp:

javac [options] sourcecodename.java

Trình thông dịch, 'java'

Cú pháp:

java [options] classname

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

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 Chương trình tìm lỗi - Debug, „jdb‟ Cú pháp:

jdb [options] sourcecodename.java hay

jdb -host -password [options] sourcecodename.java

Chương trình xem Applet , „appletviewer‟

Cú pháp:

appletviewer [options] url

Java Core API

Nhân Java API được thay thế bởi phiên bản JFC 1.1. Một số package thông dụng được:

java.lang

Chứa các lớp quan trọng nhất của ngôn ngữ Java. Chúng bao gồm các kiểu dữ liệu cơ bản như ký tự, số nguyên,… Chúng cũng chứa các lớp làm nhiệm vụ xử lý lỗi và các lớp vào ra chuẩn. Một vài lớp quan trọng khác như String hay StringBuffer.

java.applet

Đây là package nhỏ nhất chứa một mình lớp Applet. Các Applet nhúng trong trang Web hay chạy trong appletviewer đều thừa kế từ lớp này.

java.awt

Package này được gọi là Abstract Window Toolkit (AWT). Chúng chứa các lớp dùng để tạo giao diện đồ họa. Một số lớp bên trong là: Button, GridBagLayout, Graphics.

java.io

Cung cấp thư viện vào ra chuẩn. Chúng cho phép tạo và quản lý dòng dữ liệu theo nhiều cách.

java.util

Package này cung cấp một số công cụ hữu ích. Một vài lớp của package này là: Date, Hashtable, Stack, Vector và StringTokenizer.

java.net

Cung cấp khả năng giao tiếp với máy từ xa. Cho phép tạo và kết nối tới Socket hoặc URL.

java.awt.event

Chứa các lớp, giao diện dùng để xử lý các sự kiện trong chương trình như chuột, bàn phím.

java.rmi

Công cụ để gọi hàm từ xa. Chúng cho phép tạo đối tượng trên máy khác và sử dụng các đối tượng đó trên máy cục bộ.

java.security

Cung cấp các công cụ cần thiết để mã hóa và đảm bảo tính an toàn của dữ liệu truyền giữa máy trạm và máy chủ.

java.sql

Package này chứa Java DataBase Connectivity (JDBC), dùng để truy xuất cơ sở dữ liệu quan hệ như Oracle, SQL Server,....

1.1.6. Cài đặt JDK

Để cài đặt bộ công cụ Java Development Kit (JDK) thực hiện theo 3 bước sau:

1) Tải bộ công cụ về máy tính cá nhân

Bộ công cụ JDK của Sun System là một bộ công cụ miễn phí, có thể download trực tiếp từ hãng về qua địa chỉ website:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

Tùy theo cấu hình của máy tính và phiên bản hệ điều hành mà có thể lựa chọn gói phần mềm phù hợp, rồi download về máy tính.

Ví dụ 1.1: Máy tính chạy hệ điều hành Windows 7 bản 64 bit ta thực hiện như

sau:


Bước 1: Mở trình duyệt Web và truy nhậpvào địa chỉ sau: http://www.oracle.com/technetwork/java/javase/downloads/index.html

Hình 1 3 Trang web tải bộ công cụ Java Bước 2 Kích chọn biểu tượng Java 1

Hình 1.3. Trang web tải bộ công cụ Java

Bước 2: Kích chọn biểu tượng Java Download như hình sau:


Hình 1 4 Biểu tượng Java Download Bước 3 Kích chọn AcceptLicense Agreement Hình 1 5 2

Hình 1.4. Biểu tượng Java Download

Bước 3: Kích chọn AcceptLicense Agreement


Hình 1 5 Lựa chọn bản quyền Bước 4 Lựa chọn gói jdk 7u45 windows x64 exe rồi 3

Hình 1.5. Lựa chọn bản quyền

Bước 4: Lựa chọn góijdk-7u45-windows-x64.exe rồi tải về máy như hình sau:



Hình 1.6. Bộ JDK cho Windows bản 64 bit

2) Cài đặt JDK


Sau khi đã tải được file chương trình về máy tính, chạy file chương trình đãdownload được và thực hiện theo các chỉ dẫn của chương trình cho đến khi hoàn thành thì sẽ được chương trình JDK cài trên máy tính.

Ví dụ 1.2: Hướng các bước cài đặt JDK cho Windows 7 64 bit

Bước 1: Chạy file jdk-7u45-windows-x64.exe đã tải về máy tính được màn hình Setup như sau:


Hình 1.7. Màn hình cài đặt đầu tiên

Bước 2: Kích chuột vào Next để tiếp tục cài đặt, khi đó được màn hình custom setup như hình sau:


Hình 1 8 Màn hình Custom Setup Bước 3 Lựa chọn các thành phần cài đặt trong 5

Hình 1.8. Màn hình Custom Setup

Bước 3:Lựa chọn các thành phần cài đặt trong Feature và lựa chọn thư mục chứa chương trình cài đặt trong mục Install to, sau đó chọn Next để tiếp tục cài đặt sẽ được màn hình Description Folder


Hình 1 9 Màn hình Description Folder 6

Hình 1.9. Màn hình Description Folder

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 15/07/2022