
Gi i thi u chung v ngôn ng l p trình Javaớ ệ ề ữ ậ
I.1 Các đ c tr ng c a Javaặ ư ủ
Đ n gi nơ ả
H ng đ i t ngướ ố ượ
Đ c l p ph n c ng và h đi u hànhộ ậ ầ ứ ệ ề
M nhạ
B o m tả ậ
Phân tán
Đa lu ngồ
Đ ngộ
1.1.1 Đ n gi nơ ả
Nh ng ng i thi t k mong mu n phát tri n m t ngôn ng d h c và quen thu c v iữ ườ ế ế ố ể ộ ữ ễ ọ ộ ớ
đa s ng i l p trình. Do v y Java lo i b các đ c tr ng ph c t p c a C và C++ nhố ườ ậ ậ ạ ỏ ặ ư ứ ạ ủ ư
thao tác con tr , thao tác đ nh nghĩa ch ng toán t , … Java không s d ng l nh “goto”ỏ ị ồ ử ử ụ ệ
cũng nh file header (.h). C u trúc “struct” và “union” cũng đ c lo i b kh i Java. ư ấ ượ ạ ỏ ỏ
1.1.2 H ng đ i t ngướ ố ượ
Java đ c thi t k xoay quanh mô hình h ng đ i t ng. Vì v y trong Java, tiêuượ ế ế ướ ố ượ ậ
đi m là d li u và các ph ng pháp thao tác lên d li u đó. D li u và các ph ngể ữ ệ ươ ữ ệ ữ ệ ươ
pháp mô t tr ng thái và cách ng x c a m t đ i t ng trong Java.ả ạ ứ ử ủ ộ ố ượ
1.1.3 Đ c l p ph n c ng và h đi u hànhộ ậ ầ ứ ệ ề
Đây là kh năng m t ch ng trình đ c vi t t i m t máy nh ng có th ch y đ cả ộ ươ ượ ế ạ ộ ư ể ạ ượ
b t kỳ đâu. Chúng đ c th hi n m c mã ngu n và m c nh phân.ấ ượ ể ệ ở ứ ồ ứ ị
m c mã ngu n, ng i l p trình c n mô t ki u cho m i bi n. Ki u d li u trongỞ ứ ồ ườ ậ ầ ả ể ỗ ế ể ữ ệ
Java nh t quán cho t t c các h đi u hành và ph n c ng khác nhau. Java có riêngấ ấ ả ệ ề ầ ứ
m t th vi n các l p c s . Vì v y ch ng trình Java đ c vi t trên m t máy có thộ ư ệ ớ ơ ở ậ ươ ượ ế ộ ể
d ch và ch y t t trên các lo i máy khác mà không c n vi t l i.ị ạ ố ạ ầ ế ạ
Tính đ c l p m c nh phân, m t ch ng trình đã biên d ch có th ch y trên nhi uộ ậ ở ứ ị ộ ươ ị ể ạ ề
n n (ph n c ng, h đi u hành) khác mà không c n d ch l i mã ngu n. Tuy v y c nề ầ ứ ệ ề ầ ị ạ ồ ậ ầ
có ph n m m máy o Java ho t đ ng nh m t trình thông d ch t i máy th c thi.ầ ề ả ạ ộ ư ộ ị ạ ự
1

Đ i v i các ch ng trình vi t b ng C, C++ ho c m t ngôn ng nào khác, trình biênố ớ ươ ế ằ ặ ộ ữ
d ch s chuy n t p l nh thành mã máy hay l nh c a b vi x lý. Nh ng l nh nàyị ẽ ể ậ ệ ệ ủ ộ ử ữ ệ
ph thu c vào CPU hi n t i trên máy b n. Nên khi mu n ch y trên lo i CPU khác,ụ ộ ệ ạ ạ ố ạ ạ
chúng ta ph i biên d ch l i ch ng trình. Hình 1.1 th hi n quá trình đ th c thiả ị ạ ươ ể ệ ể ự
ch ng trình vi t b ng C++ trên các lo i máy khác nhau.ươ ế ằ ạ
Hình 1.2 - D ch ch ng trình Javaị ươ
Môi tr ng phát tri n c a Java đ c chia làm hai ph n: Trình biên d ch và trình thôngườ ể ủ ượ ầ ị
d ch. Không nh C hay C++, trình biên d ch c a Java chuy n mã ngu n thành d ngị ư ị ủ ể ồ ạ
bytecode đ c l p v i ph n c ng mà có th ch y trên b t kỳ CPU nào.ộ ậ ớ ầ ứ ể ạ ấ
Nh ng đ th c thi ch ng trình d i d ng bytecode, t i m i máy c n ph i có trìnhư ể ự ươ ướ ạ ạ ỗ ầ ả
thông d ch c a Java hay còn g i là máy o Java. Máy o Java chuy n bytecode thànhị ủ ọ ả ả ể
mã l nh mà CPU th c thi đ c.ệ ự ượ
2
Mac.
compiler
compiler
compiler
IBM
Sparc
Mac.
Trình biên d chị
Bytecode
Đ c l p n nộ ậ ề
(Platform
independent
)
Trình
thông
d chị
Java
(Java
Interpret
er)
IB
M
Spa
rc
Hình 1.1 - Cách biên d ch truy n th ngị ề ố

1.1.4 M nh mạ ẽ
Java là ngôn ng yêu c u ch t ch v ki u d li u. Ph i khai báo ki u d li u t ngữ ầ ặ ẽ ề ể ữ ệ ả ể ữ ệ ườ
minh khi vi t ch ng trình. Java ki m tra lúc biên d ch và c trong th i gian thôngế ươ ể ị ả ờ
d ch vì v y Java lo i b m t s lo i l i l p trình nh t đ nh.ị ậ ạ ỏ ộ ố ạ ỗ ậ ấ ị
Java không s d ng con tr và các phép toán con tr . Java ki m tra t t c các truyử ụ ỏ ỏ ể ấ ả
nh p đ n m ng, chu i khi th c thi đ đ m b o r ng các truy nh p đó không ra ngoàiậ ế ả ỗ ự ể ả ả ằ ậ
gi i h n kích th c. Java ki m tra s chuy n đ i ki u d li u t d ng này sangớ ạ ướ ể ự ể ổ ể ữ ệ ừ ạ
d ng khác lúc th c thi.ạ ự
Trong các môi tr ng l p trình truy n th ng, l p trình viên ph i t mình c p phát bườ ậ ề ố ậ ả ự ấ ộ
nh . Tr c khi ch ng trình k t thúc thì ph i t gi i phóng b nh đã c p. V n đớ ướ ươ ế ả ự ả ộ ớ ấ ấ ề
n y sinh khi l p trình viên quên gi i phóng b nh đã xin c p tr c đó. Trongả ậ ả ộ ớ ấ ướ
ch ng trình Java, l p trình viên không ph i b n tâm đ n vi c c p phát b nh . Quáươ ậ ả ậ ế ệ ấ ộ ớ
trình c p phát, gi i phóng đ c th c hi n t đ ng, nh d ch v thu nh t nh ng đ iấ ả ượ ự ệ ự ộ ờ ị ụ ặ ữ ố
t ng không còn s d ng n a (garbage collection).ượ ử ụ ữ
C ch b y l i c a Java giúp đ n gi n hóa quá trình x lý l i và h i ph c sau l i.ơ ế ẫ ỗ ủ ơ ả ử ỗ ồ ụ ỗ
1.1.5 B o m tả ậ
Virus là nguyên nhân gây ra s lo l ng trong vi c s d ng máy tính. Tr c khi cóự ắ ệ ử ụ ướ
Java, các l p trình viên ph i quét virus các t p tr c khi t i v hay th c hi n chúng.ậ ả ệ ướ ả ề ự ệ
Thông th ng vi c này cũng không lo i tr hoàn toàn virus. Ngoài ra ch ng trìnhườ ệ ạ ừ ươ
khi th c thi có kh năng tìm ki m và đ c các thông tin nh y c m trên máy c a ng iự ả ế ọ ạ ả ủ ườ
s d ng mà ng i s d ng không h hay bi t.ử ụ ườ ử ụ ề ế
Java cung c p m t môi tr ng qu n lý th c thi ch ng trình. Nó cho r ng không cóấ ộ ườ ả ự ươ ằ
m t đo n mã nào là an toàn c . Và vì v y Java không ch là ngôn ng l p trình thu nộ ạ ả ậ ỉ ữ ậ ầ
túy mà còn cung c p nhi u m c đ ki m soát tính an toàn khi th c thi ch ng trình.ấ ề ứ ể ể ự ươ
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ấ ướ ủ ả ằ ỹ ậ ấ
3

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.ạ ấ ướ ạ ệ ố
1.1.6 Phân tán
Java có th dùng đ xây d ng các ng d ng có th làm vi c trên nhi u ph n c ng,ể ể ự ứ ụ ể ệ ề ầ ứ
h đi u hành và giao di n đ h a. Java đ c thi t k h tr cho các ng d ng ch yệ ề ệ ồ ọ ượ ế ế ỗ ợ ứ ụ ạ
trên m ng. Vì v y chúng đ c s d ng r ng rãi nh là công c phát tri n trênạ ậ ượ ử ụ ộ ư ụ ể
Internet, n i s d ng nhi u ph n n n khác nhau.ơ ử ụ ề ầ ề
1.1.7 Đa lu ngồ
Ch ng trình Java đa lu ng (Multithreading) đ th c thi các công vi c đ ng th i.ươ ồ ể ự ệ ồ ờ
Chúng cũng cung c p gi i pháp đ ng b gi a các lu ng. Đ c tính h tr đa lu ngấ ả ồ ộ ữ ồ ặ ỗ ợ ồ
này cho phép xây d ng các ng d ng trên m ng ch y hi u qu .ự ứ ụ ạ ạ ệ ả
1.1.8 Đ ngộ
Java đ c thi t k nh m t ngôn ng đ ng đ đáp ng cho nh ng môi tr ng m .ượ ế ế ư ộ ữ ộ ể ứ ữ ườ ở
Các ch ng trình Java ch a r t nhi u thông tin th c thi nh m ki m soát và truy nh pươ ứ ấ ề ự ằ ể ậ
đ i t ng lúc ch . Đi u này cho phép kh năng liên k t đ ng mã.ố ượ ạỵ ề ả ế ộ
I.2 Các ki u ch ng trình Javaể ươ
Chúng ta có thể xây dựng các loại chương trình Java như sau:
1.2.1 Applets
Applet là ch ng trình đ c t o ra đ s d ng trên Internet thông qua các trình duy tươ ượ ạ ể ử ụ ệ
h tr Java nh IE hay Netscape. B n có th dùng Java đ xây d ng Applet. Appletỗ ợ ư ạ ể ể ự
4

đ c nhúng bên trong trang Web. Khi trang Web hi n th trong trình duy t, Applet sượ ể ị ệ ẽ
đ c t i v và th c thi t i trình duy t.ượ ả ề ự ạ ệ
1.2.2 ng d ng th c thi qua dòng l nh Ứ ụ ự ệ
Các ch ng trình này ch y t d u nh c l nh và không s d ng giao di n đ h a.ươ ạ ừ ấ ắ ệ ử ụ ệ ồ ọ
Các thông tin nh p xu t đ c th hi n t i d u nh c l nh.ậ ấ ượ ể ệ ạ ấ ắ ệ
1.2.3 ng d ng đ h aỨ ụ ồ ọ
Đây là các ch ng trình Java ch y đ c l p cho phép ng i dùng t ng tác qua giaoươ ạ ộ ậ ườ ươ
di n đ h a.ệ ồ ọ
1.2.4 Servlet
Java thích h p đ phát tri n ng d ng nhi u l p. Applet là ch ng trình đ h a ch yợ ể ể ứ ụ ề ớ ươ ồ ọ ạ
trên trình duy t t i máy tr m. các ng d ng Web, máy tr m g i yêu c u t i máyệ ạ ạ Ở ứ ụ ạ ử ầ ớ
ch . Máy ch x lý và g i k t qu tr l i máy tr m. Các Java API ch y trên máyủ ủ ử ử ế ả ở ạ ạ ạ
ch ch u trách nhi m x lý t i máy ch và tr l i các yêu c u c a máy tr m. Cácủ ị ệ ử ạ ủ ả ờ ầ ủ ạ
Java API ch y trên máy ch này m r ng kh năng c a các ng d ng Java APIạ ủ ở ộ ả ủ ứ ụ
chu n. Các ng d ng trên máy ch này đ c g i là các Servlet, ho c Applet t i máyẩ ứ ụ ủ ượ ọ ặ ạ
ch . X lý Form c a HTML là cách s d ng đ n gi n nh t c a Servlet. Chúng cònủ ử ủ ử ụ ơ ả ấ ủ
có th đ c 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.ủ
1.2.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.ứ ụ ư ị ớ ạ ở ả ậ
I.3 Công c phát tri n và các editor đ biên t p ch ng trình.ụ ể ể ậ ươ
1.3.1 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.ư ớ ề ư ể ơ ả ướ
5