Java overview
Trang 5/66
1. Giới thiệu
Java is an island of Indonesia and the site of its capital city, Jakarta.
Do not lose time here. Please go ahead and read my report right now. ☺
2. Một số vấn đề chung về Java
2.1. Ngôn ngữ Java
2.1.1. Lịch sử phát triển
Java được Sun MicroSystems giới thiệu lần đầu vào tháng 6 năm 1995 và nhanh chóng trở thành
một ngôn ngữ lập trình chuyên nghiệp.
Sơ khởi của Java là dự án "Oak", thiết kế một ngôn ngữ lập trình để điều khiển các thiết bị điện tử
do James Gosling và các đồng nghiệp tại Sun phụ trách. Được xây dựng trên nền tảng của C/C++
sau khi bỏ đi các đặc tính phức tạp, Java là ngôn ngữ hướng đối tượng thuần túy và độc lập với hệ
nền, đặc biệt phù hợp với việc xây dựng các hệ thống hoạt động trên môi trường internet.
Java đi từ chỗ một ngôn ngữ lập trình đã trở thành một nền tảng công nghệ. Cùng với .NET của
MicroSoft, Java trở thành một trong hai công nghệ chủ yếu cho việc phát triển phần mềm hiện nay.
Các phiên bản chính thức được phát hành của Java (từ Wiki):
• JDK 1.1.4 (Sparkler) September 12, 1997
JDK 1.1.5 (Pumpkin) December 3, 1997
JDK 1.1.6 (Abigail) April 24, 1998
JDK 1.1.7 (Brutus) September 28, 1998
JDK 1.1.8 (Chelsea) April 8, 1999
• J2SE 1.2 (Playground) December 4, 1998
J2SE 1.2.1 (none) March 30, 1999
J2SE 1.2.2 (Cricket) July 8, 1999
• J2SE 1.3 (Kestrel) May 8, 2000
J2SE 1.3.1 (Ladybird) May 17, 2001
• J2SE 1.4.0 (Merlin) February 13, 2002
J2SE 1.4.1 (Hopper) September 16, 2002
J2SE 1.4.2 (Mantis) June 26, 2003
• J2SE 5.0 (1.5.0) (Tiger) September 29, 2004
.
Java overview
Trang 7/66
2.1.4. Sự phát triển của Java
Java vẫn đang chiếm thị phần lớn nhất, nhưng có sự đi lên rất mạnh mẽ của các ngôn ngữ khác.
Chuẩn bị phát triển ứng dụng với Java
2.1.5.
• J2SDK
• Thiết lập biến môi trường
• IDEs, Editor (
Phần 2.2)
• Các tiện ích, công cụ (
Phần 2.3)
2.1.6. Tổ chức chương trình
(v)
Tổ chức cấu trúc của ứng dụng (BluePrints, Jakarta)
Tổ chức code trong một lớp
2.2. IDEs thông dụng
2.2.1. Vai trò của IDEs
Các môi trường phát triển tích hợp thường bao gồm:
Một trình soạn thảo mã (source code editor): dùng để viết mã, hỗ trợ tính năng tự động sinh
mã (code generator).
•
Trình biên dịch (compiler) và/hoặc trình thông dịch (interpreter). •
Java overview
Trang 8/66
• Công cụ xây dựng tự động: khi sử dụng sẽ biên dịch (hoặc thông dịch) mã nguồn, thực hiện
liên kết (linking), và có thể chạy chương trình một cách tự động.
Development
Studio
IBM
6.0.1 /
January 31,
2006
Windows
$1500 (Standard),
$4500 (Advanced
Edition)
JBuilder Borland
6 (2006) /
September,
2005
[6]
Cross-platform
Free (Foundation),
$499 (Developer),
$3,500 (Enterprise)
- Phiên bản free
( Foundation) chỉ hỗ
trợ các tính năng
căn bản nhất
JDeveloper Oracle
10 g
(10.1.3) /
January,
2006
Cross-platform Free
Ruby, SQL,…)
Eclipse
Eclipse
Foundation
3.2.1 /
September
21, 2006
Cross-platform Free
- Tính năng ban đầu
còn hạn chế
- Nhưng có rất
nhiều plugin hỗ trợ:
MyEclipse, M7,…
JCreator
Xinox
Software
4.00.026 /
16 October
2006
Windows
Free (JCreator LE),
$69 (JCreator Pro)
- Phù hợp cho phát
triển ứng dụng nhỏ
Ngoài các IDEs mạnh, hỗ trợ nhiều tính năng, cũng có thể sử dụng các trình soạn thảo (Editors)
đơn giản hỗ trợ sinh mã, đánh dấu mã, cú pháp mẫu, biên dịch, chạy ứng dụng,… Các Editor thông
dụng: TextPad, JEdit, EditPlus.
2.2.3. Lựa chọn IDEs
Xu hướng phổ biến hiện nay là lựa chọn các IDEs mã nguồn mở: Eclipse, NetBeans, JDeveloper
2.3. Các tiện ích, công cụ hỗ trợ
dùng Ant (thêm sự lựa chọn).
/*
/>Java overview
Trang 11/66
*/
2.3.3. Test tools
Chi tiết hơn tại
Phần 2.8
• JUnit:Test framework nổi tiếng của Java. Các test framework khác đều dựa vào JUnit. JUnit
được tích hợp cho hầu hết các IDE thông dụng như Eclipse, JBuilder, JDeveloper,
NetBeans, ...
• HttpUnit: Dưa trên JUnit dùng để test web-tier như html, jsp,...
2.4. Đóng gói, tạo lập bộ cài đặt ứng dụng Java
Tùy theo từng loại hình ứng dụng: Desktop, Web, Enterprise, Mobile (Phần 3) mà có các cách đóng
gói ứng dụng khác nhau:
Loại ứng dụng File đóng gói Công cụ đóng gói Triển khai ứng dụng
Desktop JAR file
- Tạo file JAR bằng các
chương trình nén phổ biến:
WinRar, WinZip,... Chú ý cấu
trúc file JAR (META-INF)
- IDE hỗ trợ
- Chương trình installer
thương mại chuyển nghiệp:
InstallAnywhere, iInstallShield,
nstall4j,...
- Chương trình installer miễn
phí: IzPack
- Chạy như file .EXE thông
• Ở mức đầu tiên, dữ liệu và các phương thức được đóng gói bên trong lớp. Chúng chỉ được
truy xuất thông qua các giao diện mà lớp cung cấp. Java không hỗ trợ con trỏ vì vậy không
cho phép truy xuất bộ nhớ trực tiếp. Nó cũng ngăn chặn không cho truy xuất thông tin bên
ngoài kích thước của mảng bằng kỹ thuật tràn và cũng cung cấp kỹ thuật dọn rác trong bộ
nhớ. Các đặc trưng này tạo cho Java an toàn tối đa và có khả năng cơ động cao.
• Trong lớp thứ hai, trình biên dịch kiểm soát để đảm bảo mã là an toàn, và tuân theo các
nguyên tắc của Java.
• Lớp thứ ba được đảm bảo bởi trình thông dịch. Chúng kiểm tra xem bytecode có đảm bảo
các qui tắc an toàn trước khi thực thi.
• Lớp thứ tư kiểm soát việc nạp các lớp vào bộ nhớ để giám sát việc vi phạm giới hạn truy
xuất trước khi nạp vào hệ thống.
Java platform cung cấp một tập các hàm API đảm bảo tính bảo mật của các ứng dụng Java bao
gồm: Mã hóa (cryptography), Hạ tầng mã khóa công khai (public key infrastructure), Chứng thực
(authentication), Bảo mật trên đường truyển (secure communication) và Điều khiển truy nhập
(access control).
2.5.2. Mã hóa
Java Platform cung cấp một nền tảng với nhiều hàm chức năng dịch vụ cho việc truy cập và sử
dụng mã hóa:
• Các giải thuật mã hóa: RSA, MD5
• Mã hóa hệ thống message
• Chữ ký số
• Mã hóa password
• Mã hóa đối xứng
• Sinh mã ngẫu nhiên
• ...
Package: java.security, javax.crypto
2.5.3. Hạ tầng mã khóa công khai
Hạ tầng mã hóa công khai (Public Key Infrastructure - PKI) là một giải pháp bảo mật có nhiều tối ưu
so với phương pháp bảo mật đối xứng, PKI có liên quan mật thiết tới chữ ký số.
Java Platform cung cấp hai công cụ built-in cho các thao tác với khóa, chứng thực và lưu trữ khóa:
2.5.6. Điều khiển truy nhập
Điều khiển truy cập trong các ứng dụng Java được chia thành bốn nội dung:
1. ClassAccess
Quy tắc truy cập vào các thành phần trong các lớp: public, protected, private, no-defined
Modifier Class Package Subclass World
public Y Y Y Y
protected Y Y Y N
no modifier
Y Y N N
private Y N N N
2. Permission
3. Policy
4. Domain
2.6. Database
(Tập trung vào Driver)
Có sẵn các connector driver cho hầu hết các loại Database.