Tải bản đầy đủ
1 Tìm hiểu chung về Java

1 Tìm hiểu chung về Java

Tải bản đầy đủ

-

Máy ảo Java: JVM

-

Bộ công cụ phát triển: J2SDK

-

Các đặc tả chi tiết kĩ thuật (specifications)

-

Ngôn ngữ lập trình (programming language)

-

Các công nghệ đi kèm như JSP, Servlet, EJB, JDBC, JNDI, JMX, RMI…

và framework như Struts, Spring, JSF, Hibernate, JavaFX ...
Nhũng ưu điểm của java :
• Đơn giản (simple): Java đơn giản vì, mặc dù dựa trên cơ sở C++ nhưng Sun đã

cẩn thận lược bỏ các tính năng khó nhất của C++ để làm cho ngôn ngữ này dễ
sử dụng hơn. Là một ngôn ngữ lập trình hoàn toàn mới, nó buộc phải có dáng
vẻ và sự cảm nhận tương tự như các ngôn ngữ phổ biến hiện hành đồng thời
đòi hỏi khoảng thời gian huấn luyện lại tối thiểu và thân thiện hơn với người
dùng. Do đơn giản, ngôn ngữ này cũng rất nhỏ - nên nhớ rằng từ đầu nó đã
được xây dựng để dùng cho điện tử dân dụng như đầu chạy bằng video và hộp
điều khiển từ xa, những thiết bị có không gian lưu trữ rất hạn chế.
• Hướng đối tượng (Object Oriented): Hướng đối tượng trong Java tương tự như

C++ nhưng Java là một ngôn ngữ lập trình hướng đối tượng hoàn toàn. Tất cả
mọi thứ đề cập đến trong Java đều liên quan đến các đối tượng được định
nghĩa trước, thậm chí hàm chính của một chương trình viết bằng Java (đó là
hàm main) cũng phải đặt bên trong một lớp. Hướng đối tượng trong Java
không có tính đa kế thừa (multi inheritance) như trong C++ mà thay vào đó
Java đưa ra khái niệm interface để hỗ trợ tính đa kế thừa.
• Hiểu mạng (network-savvy): Java được lập ra để hoạt động trên mạng và có các
thủ tục để có thể quản lý các giao thức mạng như TCP/IP, FTP và HTTP. Nói
cách khác, Java được xây dựng để thực hiện hoàn toàn thích hợp trên Internet.
Chương trình Java thậm chí có thể xâm nhập vào các đối thượng khác thông
qua Internet bằng cách sử dụng URL (địa chỉ Web) để định vị chúng.

8

• Mạnh mẽ (robust): Khả năng mạnh phải phù hợp với thiết kế của ngôn ngữ, và

hướng nó vào việc khắc phục những hư hỏng bộ nhớ và đảm bảo tính toán vẹn
dữ liệu. Ví dụ, Java có tính năng "automatic garbage collection" (tự động thu
gom rác) - có nghĩa là bộ nhớ được giải phóng một cách tự động - nên lập
trình viên không phải bận tâm về việc quản lý bộ nhớ và nhờ đó ít có xu
hướng làm những việc gây hỏng bộ nhớ.
• An toàn (secure): Khả năng hướng mạng của Java tự động đưa ra yêu cầu về an
toàn. Đặc tính an toàn của ngôn ngữ lập trình này bắt nguồn từ việc nó có
những phần hạn chế được cài sẵn nhằm đề phòng các chương trình Java thực
hiện những chức năng như ghi vào ổ cứng của người dùng hay cho phép virus
từ mạng hoặc từ môi trường phân tán thâm nhập vào.
• Độc lập với cấu trúc (architecture neutral): Đây là thuộc tính đặc sắc nhất của
Java. Java được tạo ra với tiêu chí "Viết (code) một lần, thực thi khắp nơi"
("Write Once, Run Anywhere" (WORA)). Tính năng biên dịch một lần và
chạy nhiều nền có thể đạt được nhờ just-in-time compiler (JIT), chuyển mã
bytecode của Java sang mã máy khi chương trình đang chạy. Chương trình
phần mềm viết bằng Java có thể chạy trên mọi nền tảng (platform) khác nhau
thông qua một môi trường thực thi với điều kiện có máy ảo java thích hợp hỗ
trợ nền tảng đó. Môi trường thực thi của Sun Microsystems hiện hỗ trợ Sun
Solaris, Linux, Mac OS, FreeBSD , Windows và nhiều hệ thống cài đặt trên
các thiết bị di động.
• Di động (portable): Đối với một phạm vi rộng, Java là loại có thể di chuyển nhờ
khả năng độc lập với hệ máy. Đồng thời, các loại dữ liệu, giao diện, cũng như
dáng vẻ và cảm nhận của Java đều giống nhau trên mọi hệ máy. Hệ thống các
thành phần của java cũng có tính di động cao - nó được viết bằng Java.
• Thông dịch (Interpreter): Java là một ngôn ngữ lập trình vừa biên dịch vừa
thông dịch. Chương trình nguồn viết bằng ngôn ngữ lập trình Java có đuôi
*.java đầu tiên được biên dịch thành tập tin có đuôi *.class và sau đó sẽ được
trình thông dịch thông dịch thành mã máy. Để chạy Java bytecode, cần cài đặt
JRE (Java Runtime Environment). JRE cung cấp các thư viện cơ bản, Java
Virtual Machine, plugin cho trình duyệt, và những thứ khác.

9

• Tốc độ cao (high perfprmance): Khi Sun Microsystems mô tả Java có tốc độ

cao, có lẽ họ muốn nói về mã bytecode được thông dịch hiệu quả như thế nào
( Java thường chạy nhanh hơn những ngôn ngữ lập trình thông dịch khác
như Python, Perl, PHP...). Về tốc độ các applet hay chương trình Java thì nói
chung đều chậm hơn các chương trình Java thì nói chung đều chậm hơn các
chương trình được biên dịch viết bằng C++, vì chương trình này đã được tối
ưu hoá từ trước cho hệ máy nhất định. Java đã phải trả giá về hiệu suất cho
tính không phụ thuộc hệ của nó.
• Đa luồng (multithreaded): Đa luồng có nghĩa là ngôn ngữ Java cho phép xây
dựng trình ứng dụng, trong đó, nhiều quá trình có thể xảy ra đồng thời. Tính
đa luồng cho phép các nhà lập trình có thể biên soạn phần mềm đáp ứng tốt
hơn, tương tác tốt hơn, và thực hiện theo thời gian thực.
• Tính động (dynamic): Java động vì nó được thiết kế để đáp ứng với môi trường
tác nghiệp luôn trong tình trạng thay đổi. Khi có yêu cầu mới xuất hiện trên
thị trường, các loại đối tượng mới có thể được bổ sung vào ngay.
1.2 Tổng quan về J2ME
1.2.1 Lịch sử phát triển của J2ME
J2ME được phát triển từ kiến trúc Java Card, Embeded Java và Personal
Java của phiên bản Java 1.1. Đến sự ra đời của Java 2 thì Sun quyết định thay
thế Personal Java và đươc gọi với tên mới là Java 2 Micro Edition, hay viết tắt
là J2ME. Đúng với tên gọi, J2ME là nền tảng cho các thiết bị có tính chất nhỏ,
gọn.

10

Hình 1.1 : Các phiên bản của J2ME
1.2.2 Kiến trúc của J2ME

Hình 1.2 : Kiến trúc của J2ME
Giới thiệu các thành phần trong nền tảng J2ME:
Định nghĩa về Configuration (Cấu hình): là đặc tả định nghĩa một môi
trường phần mềm cho một dòng các thiết bị được phân loại bởi tập hợp các đặc
tính, ví dụ như :
• Kiểu và số lượng bộ nhớ
• Kiểu và tốc độ bộ vi xử lý
• Kiểu mạng kết nối
Do đây là đặc tả nên các nhà sản xuất thiết bị như Samsung, Nokia … bắt
buộc phải thực thi đầy đủ các đặc tả do Sun qui định để các lập trình viên có thể
dựa vào môi trường lập trình nhất quán và thông qua sự nhất quán này, các ứng
dụng được tạo ra có thể mang tính độc lập thiết bị cao nhất có thể. Ví dụ như
một lập trình viên viết chương trình game cho điện thoại Samsung thì có thể sửa
đổi chương trình của mình một cách tối thiểu nhất để có thể chạy trên điện
thọai Nokia..

11