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 kng s d ng l nh “goto
cũng nh file header (.h). C u tc “struct” “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 hình h ng đ i t ng. v y trong Java, tiêuượ ế ế ướ ượ
đi m d li u các ph ng pháp thao tác lên d li u đó. D li u các ph ng ươ ươ
pháp mô t tr ng thái và 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 kh năng m t ch ng trình đ c vi t t i m t máy nh ng th ch y đ c ươ ượ ế ư ượ
b t kỳ đâu. Cng đ c th hi n m c mã ngu n 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 ph n c ng khác nhau. Java 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 kc mà không c n vi t l i. ế
nh đ c l p m c nh phân, m t ch ng trình đã biên d ch th ch y trên nhi u ươ
n n (ph n c ng, h đi u hành) khác không c n d ch l i ngu n. Tuy v y c n
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 . 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 kc nhau.ươ ế
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: Tnh bn 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 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 trìnhư ươ ướ
thông d ch c a Java hay còn g i 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
nh 1.1 - Cách biên d ch truy n th ng
1.1.4 M nh m
Java 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 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 c phép toán con tr . Java ki m tra t t 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 ngi ế
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 kc 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 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 kngn 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 i và h i ph c sau l i.ơ ế ơ
1.1.5 B o m t
Virus nguyên nhân gây ra s lo l ng trong vi c s d ng y nh. Tr c khi ướ
Java, các l p trình viên ph i quét virus c t p tr c khi t i v hay th c hi n chúng. ướ
Thông th ng vi c 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 th c thi ch ng trình. Nó cho r ng không ườ ươ
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à n cung c p nhi u m c đ ki m soát tính an tn 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. Cng 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 y không cho phép truy xu t b nh tr c ti p. cũng ngăn ch n kng cho truy ế
xu t tng tin n ngoài kích th c c a m ng b ng k thu t tràn cũng cung c p ướ
3
k thu t d n c trong b nh . Các đ c tr ng này t o cho Java an toàn t i đa và ư
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ã an toàn, 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. Cng 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 l p 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 Pn tán
Java th ng đ xây d ng các ng d ng 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 y chúng đ c s d ng r ng rãi nh 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 ng vi c đ ng th i.ươ
Chúng cũng cung c p gi i pháp đ ng b gi a c lu ng. Đ c tính h tr đa lu ng
y cho pp 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 ngc 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 dng các loi 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 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 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 c ch ng trình Java ch y đ c l p cho phép ng i ng t ng 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 g i k t qu tr l i máy tr m. Các Java API ch y trên y ế
ch ch u trách nhi m x t i máy ch tr l i các 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 c Servlet, ho c Applet t i y ượ
ch . X Form c a HTML ch s d ng đ n gi n nh t c a Servlet. Chúng còn ơ
th đ c dùng đ x d li u, th c thi c giao d ch 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 th ế ơ
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 tên 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