SlideShare a Scribd company logo
Chương 2: Nh p môn Java 23
Chương 2
NH P MÔN JAVA
M c tiêu
N m ư c các c trưng c a Java
Các lo i chương trình vi t b ng Java
Ð nh nghĩa v máy o Java (Java Virtual Machine)
Các n i dung c a JDK (Java Development Kit)
Sơ lư c các c trưng m i c a Java 2
2.1 Gi i thi u Java
Java là m t ngôn ng l p trình ư c Sun Microsystems gi i thi u vào tháng 6
năm 1995. T ó, nó ã tr thành m t công c l p trình c a các l p trình
viên chuyên nghi p. Java ư c xây d ng trên n n t ng c a C và C++. Do
v y nó s d ng các cú pháp c a C và các c trưng hư ng i tư ng c a
C++.
Vào năm 1991, m t nhóm các k sư c a Sun Microsystems có ý nh thi t k
m t ngôn ng l p trình i u khi n các thi t b i n t như Tivi, máy gi t,
lò nư ng, … M c dù C và C++ có kh năng làm vi c này nhưng trình biên
d ch l i ph thu c vào t ng lo i CPU.
Trình biên d ch thư ng ph i t n nhi u th i gian xây d ng nên r t t. Vì
v y m i lo i CPU có m t trình biên d ch riêng là r t t n kém. Do ó nhu
c u th c t òi h i m t ngôn ng ch y nhanh, g n, hi u qu và c l p thi t
b t c là có th ch y trên nhi u lo i CPU khác nhau, dư i các môi trư ng khác
nhau. “Oak” ã ra i và vào năm 1995 ư c i tên thành Java. M c dù m c
tiêu ban u không ph i cho Internet nhưng do c trưng không ph thu c
thi t b nên Java ã tr thành ngôn ng l p trình cho Internet.
2.1.1 Java là gì
Java là ngôn ng l p trình hư ng i tư ng, do v y không th dùng Java
vi t m t chương trình hư ng ch c năng. Java có th gi i quy t h u h t các
công vi c mà các ngôn ng khác có th làm ư c.
Java là ngôn ng v a biên d ch v a thông d ch. u tiên mã ngu n ư c biên
d ch b ng công c JAVAC chuy n thành d ng ByteCode. Sau ó ư c th c
thi trên t ng lo i máy c th nh chương trình thông d ch. M c tiêu c a các
nhà thi t k Java là cho phép ngư i l p trình vi t chương trình m t l n nhưng
có th ch y trên b t c ph n c ng c th .
Ngày nay, Java ư c s d ng r ng rãi vi t chương trình ch y trên
Internet. Nó là ngôn ng l p trình hư ng i tư ng c l p thi t b , không
ph thu c vào h i u hành. Nó không ch dùng vi t các ng d ng ch y
ơn l hay trong m ng mà còn xây d ng các trình i u khi n thi t b cho
i n tho i di ng, PDA, …
2.2 Các c trưng c a Java
24 Core 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
2.2.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
(operator overloading),… 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.
2.2.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.
2.2.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 trơn tru 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 (s c p n ph n sau) ho t
ng như m t trình thông d ch t i máy th c thi.
H ình 2.1 Cách biên d ch truy n th ng
Macintosh
compiler
compiler
compiler
IBM
Sparc
Chương 2: Nh p môn Java 25
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 (machine code),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 2.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 2.2 Quá trình th c thi chương trình vi t b ng Java trên các lo i máy
khác nhau.
Hình 2.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.2.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 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 . Qúa 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 qúa trình x lý l i và h i ph c sau
Macintosh
Trình biên d ch
Bytecode
c l p n n
(Platform
independent)
Trình
thông
d ch
Java
(Java
Interpreter)
IBM
Sparc
26 Core Java
l i.
2.2.5 B o m t
Viruses 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 tuý 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 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.
2.2.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 n n t ng khác nhau.
2.2.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 này này cho phép xây d ng các ng d ng trên m ng ch y hi u qu .
2.2.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ã.
Chương 2: Nh p môn Java 27
2.3 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:
2.3.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 ư 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.
2.3.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.
2.3.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.
2.3.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.
2.3.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.
2.4 Máy o Java (JVM-Java Virtual Machine)
Máy o Java là trái tim c a ngôn ng Java. Môi trư ng Java bao g m năm
ph n t sau:
Ngôn ng
Ð nh nghĩa Bytecode
Các thư vi n l p Java/Sun
Máy o Java (JVM)
C u trúc c a file .class
Các ph n t t o cho Java thành công là
Ð nh nghĩa Bytecode
C u trúc c a file .class
Máy o Java (JVM)
Kh năng cơ ng c a file .class cho phép các chương trình Java vi t m t l n
nhưng ch y b t kỳ âu. Kh năng này có ư c nh s giúp c a máy o
Java.
28 Core Java
2.4.1 Máy o Java là gì ?
Máy o là m t ph n m m d a trên cơ s máy tính o. 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. Ngư i ta có th xem nó như
m t h i u hành thu nh . 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á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 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.
2.4.2 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ương 2: Nh p môn Java 29
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.
2.4.3 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à 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.
2.5 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.
Java 2 – Phiên b n m i nh t
30 Core Java
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:
2.5.1 Trình biên d ch, 'javac'
Cú pháp:
javac [options] sourcecodename.java
2.5.2 Trình thông d ch, 'java'
Cú pháp:
java [options] classname
2.5.3 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
2.5.4 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
2.5.5 Chương trình tìm l i - Debug, 'jdb‘
Cú pháp:
jdb [options] sourcecodename.java
hay
jdb -host -password [options] sourcecodename.java
2.5.6 Chương trình xem Applet , 'appletviewer‘
Cú pháp:
appletviewer [options] url
2.6 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:
2.6.1 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.
2.6.2 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.
Chương 2: Nh p môn Java 31
2.6.3 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.
2.6.4 java.io
Cung c p thư vi n vào ra chu . Chúng cho phép t o và qu n lý dòng d li u
theo nhi u cách.
2.6.5 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.
2.6.6 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.
2.6.7 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.
2.6.8 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 .
2.6.9 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 .
2.6.10 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,....
2.7 Các c trưng m i c a Java 2
Các phiên b n trư c c a Java ch thích h p vi t các ng d ng nh trên
Web hơn là xây d ng các ng d ng ch y trên m ng m nhi m toàn b
các công vi c c a c a m t công ty ho c h th ng phân tán. Java 2 áp ng
yêu c u này. M t vài c trưng c a chúng là:
- Swing
ây là m t t p các l p và giao di n m i dùng t o giao di n ng d ng
h a "Look and Feel".
- Kéo và th
ây là kh năng di chuy n thông tin gi a các ng d ng hay các ph n khác
nhau c a chương trình.
- Java 2D API
Ch a t p h p các l p h tr cho nh và h a hai chi u.
- Java sound
T p h p hoàn toàn m i các l p c trưng v âm thanh c a Java.
- RMI
RMI (Remote Method Invocation) cho phép các ng d ng g i các phương
th c c a i tư ng t i máy khác và cho phép giao ti p v i chúng.
32 Core Java
Tóm t t
Java là ngôn ng biên d ch và thông d ch
Các c trưng c a Java
ơn gi n
Hư ng i tư ng
c l p ph n c ng
M nh
B o m t
Phân tán
a lu ng
ng
Máy o Java
Java Development Kit
Các c trưng m i c a Java 2
Ki m tra s ti n b
1. B n có th vi t các chương trình d ng th t c b ng Java. úng/Sai
2. Java là ngôn ng có ki u d li u ch t ch . úng/Sai
3. ...........................là chương trình Java ch y c l p, và s d ng giao
di n h a ngư i s d ng nh p d li u.
4. ...........................s d ng JDBC API k t n i cơ s d li u.
5. ..........................hi u m t dòng các l nh máy tính tr u tư ng.
6. Coalescing và Compaction là gì?
7. L nh ............... ư c s d ng d ch file mã ngu n .java.
8. L p ......... ph i là l p cha c a các applet, applet là chương có th nhúng
vào trang Web hay ch y b ng Java AppletViewer.
Bài t p
1. Cài t Java 2
2. Gõ các l nh sau t i d u nh c và li t kê các tham s khác nhau c a chúng:
javac
java

More Related Content

Viewers also liked

Developing critical skills1
Developing critical skills1Developing critical skills1
Developing critical skills1Ali Moghaddam
 
โครงงานเสพติด (ใหม่)
โครงงานเสพติด (ใหม่)โครงงานเสพติด (ใหม่)
โครงงานเสพติด (ใหม่)
Pear Pimnipa
 
ยาเสพติด บทที่1
ยาเสพติด บทที่1ยาเสพติด บทที่1
ยาเสพติด บทที่1
Pear Pimnipa
 
บทที่2
บทที่2 บทที่2
บทที่2
Pear Pimnipa
 
โครงงานยาเสพติด
โครงงานยาเสพติดโครงงานยาเสพติด
โครงงานยาเสพติด
Pear Pimnipa
 

Viewers also liked (6)

บทที่ 1
บทที่ 1บทที่ 1
บทที่ 1
 
Developing critical skills1
Developing critical skills1Developing critical skills1
Developing critical skills1
 
โครงงานเสพติด (ใหม่)
โครงงานเสพติด (ใหม่)โครงงานเสพติด (ใหม่)
โครงงานเสพติด (ใหม่)
 
ยาเสพติด บทที่1
ยาเสพติด บทที่1ยาเสพติด บทที่1
ยาเสพติด บทที่1
 
บทที่2
บทที่2 บทที่2
บทที่2
 
โครงงานยาเสพติด
โครงงานยาเสพติดโครงงานยาเสพติด
โครงงานยาเสพติด
 

Similar to Core java 2

Ebook lập trình Java hướng đối tượng (Tiếng việt)
Ebook lập trình Java hướng đối tượng (Tiếng việt)Ebook lập trình Java hướng đối tượng (Tiếng việt)
Ebook lập trình Java hướng đối tượng (Tiếng việt)
Duy Lê Văn
 
Core java 2
Core java 2Core java 2
Core java 2. .
 
Gt java080102005
Gt java080102005Gt java080102005
Gt java080102005
Toàn Trần Mạnh
 
Giáo trình java Đại Học Sư Phạm Kỹ Thuật Hưng Yên
Giáo trình java Đại Học Sư Phạm Kỹ Thuật Hưng YênGiáo trình java Đại Học Sư Phạm Kỹ Thuật Hưng Yên
Giáo trình java Đại Học Sư Phạm Kỹ Thuật Hưng YênTrần Thiên Đại
 
Bài giảng lập trình Java cơ bản - Java Programming
Bài giảng lập trình Java cơ bản - Java ProgrammingBài giảng lập trình Java cơ bản - Java Programming
Bài giảng lập trình Java cơ bản - Java Programming
Vntalking Blog
 
Android program 6167
Android program 6167Android program 6167
Android program 6167
PhongSPKT
 
tao file exe cho chuong trinh viet bang ngon ngu java
 tao file exe cho chuong trinh viet bang ngon ngu java tao file exe cho chuong trinh viet bang ngon ngu java
tao file exe cho chuong trinh viet bang ngon ngu javanamcntt_nd
 
Bài 2: J2EE - Lập Trình Mạng Nâng Cao
Bài 2: J2EE - Lập Trình Mạng Nâng CaoBài 2: J2EE - Lập Trình Mạng Nâng Cao
Bài 2: J2EE - Lập Trình Mạng Nâng Cao
Tuan Nguyen
 
878 lap-trinh-mang-voi-ngon-ngu-java-140320051255-phpapp01(1)
878 lap-trinh-mang-voi-ngon-ngu-java-140320051255-phpapp01(1)878 lap-trinh-mang-voi-ngon-ngu-java-140320051255-phpapp01(1)
878 lap-trinh-mang-voi-ngon-ngu-java-140320051255-phpapp01(1)
Anh Quoc
 
lap-trinh-mang-voi-ngon-ngu-java
lap-trinh-mang-voi-ngon-ngu-javalap-trinh-mang-voi-ngon-ngu-java
lap-trinh-mang-voi-ngon-ngu-java
Truong NGUYEN
 
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệuTài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Anh Duong Pham
 
Lap trinhthietbididongvoij2me
Lap trinhthietbididongvoij2meLap trinhthietbididongvoij2me
Lap trinhthietbididongvoij2mehaiokman
 
Lap trinh thiet bi di dong voi j2me
Lap trinh thiet bi di dong voi j2meLap trinh thiet bi di dong voi j2me
Lap trinh thiet bi di dong voi j2mecậu buồn Vì Ai
 
1 laptrinhthietbididongvoij2me
1 laptrinhthietbididongvoij2me1 laptrinhthietbididongvoij2me
1 laptrinhthietbididongvoij2meGiang Nguyễn
 
OOP in Java - Ver1.1
OOP in Java -  Ver1.1OOP in Java -  Ver1.1
OOP in Java - Ver1.1
vdlinh08
 
Gioi thieu ve_java
Gioi thieu ve_javaGioi thieu ve_java
Gioi thieu ve_java
Vũ Trung Đông
 
gioi thieu ve java
gioi thieu ve javagioi thieu ve java
gioi thieu ve java
Dat Ngo
 

Similar to Core java 2 (20)

Ebook lập trình Java hướng đối tượng (Tiếng việt)
Ebook lập trình Java hướng đối tượng (Tiếng việt)Ebook lập trình Java hướng đối tượng (Tiếng việt)
Ebook lập trình Java hướng đối tượng (Tiếng việt)
 
Core java 2
Core java 2Core java 2
Core java 2
 
Gt java080102005
Gt java080102005Gt java080102005
Gt java080102005
 
Giáo trình java Đại Học Sư Phạm Kỹ Thuật Hưng Yên
Giáo trình java Đại Học Sư Phạm Kỹ Thuật Hưng YênGiáo trình java Đại Học Sư Phạm Kỹ Thuật Hưng Yên
Giáo trình java Đại Học Sư Phạm Kỹ Thuật Hưng Yên
 
Bài giảng lập trình Java cơ bản - Java Programming
Bài giảng lập trình Java cơ bản - Java ProgrammingBài giảng lập trình Java cơ bản - Java Programming
Bài giảng lập trình Java cơ bản - Java Programming
 
Android program 6167
Android program 6167Android program 6167
Android program 6167
 
tao file exe cho chuong trinh viet bang ngon ngu java
 tao file exe cho chuong trinh viet bang ngon ngu java tao file exe cho chuong trinh viet bang ngon ngu java
tao file exe cho chuong trinh viet bang ngon ngu java
 
Bài 2: J2EE - Lập Trình Mạng Nâng Cao
Bài 2: J2EE - Lập Trình Mạng Nâng CaoBài 2: J2EE - Lập Trình Mạng Nâng Cao
Bài 2: J2EE - Lập Trình Mạng Nâng Cao
 
878 lap-trinh-mang-voi-ngon-ngu-java-140320051255-phpapp01(1)
878 lap-trinh-mang-voi-ngon-ngu-java-140320051255-phpapp01(1)878 lap-trinh-mang-voi-ngon-ngu-java-140320051255-phpapp01(1)
878 lap-trinh-mang-voi-ngon-ngu-java-140320051255-phpapp01(1)
 
lap-trinh-mang-voi-ngon-ngu-java
lap-trinh-mang-voi-ngon-ngu-javalap-trinh-mang-voi-ngon-ngu-java
lap-trinh-mang-voi-ngon-ngu-java
 
Chuong 09 vb
Chuong 09   vbChuong 09   vb
Chuong 09 vb
 
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệuTài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
 
Lap trinhthietbididongvoij2me
Lap trinhthietbididongvoij2meLap trinhthietbididongvoij2me
Lap trinhthietbididongvoij2me
 
Lap trinh thiet bi di dong voi j2me
Lap trinh thiet bi di dong voi j2meLap trinh thiet bi di dong voi j2me
Lap trinh thiet bi di dong voi j2me
 
1 laptrinhthietbididongvoij2me
1 laptrinhthietbididongvoij2me1 laptrinhthietbididongvoij2me
1 laptrinhthietbididongvoij2me
 
Java2 studyguide 2012
Java2 studyguide 2012Java2 studyguide 2012
Java2 studyguide 2012
 
OOP in Java - Ver1.1
OOP in Java -  Ver1.1OOP in Java -  Ver1.1
OOP in Java - Ver1.1
 
Gioi thieu ve_java
Gioi thieu ve_javaGioi thieu ve_java
Gioi thieu ve_java
 
gioi thieu ve java
gioi thieu ve javagioi thieu ve java
gioi thieu ve java
 
Quan ly bo nho
Quan ly bo nhoQuan ly bo nho
Quan ly bo nho
 

Core java 2

  • 1. Chương 2: Nh p môn Java 23 Chương 2 NH P MÔN JAVA M c tiêu N m ư c các c trưng c a Java Các lo i chương trình vi t b ng Java Ð nh nghĩa v máy o Java (Java Virtual Machine) Các n i dung c a JDK (Java Development Kit) Sơ lư c các c trưng m i c a Java 2 2.1 Gi i thi u Java Java là m t ngôn ng l p trình ư c Sun Microsystems gi i thi u vào tháng 6 năm 1995. T ó, nó ã tr thành m t công c l p trình c a các l p trình viên chuyên nghi p. Java ư c xây d ng trên n n t ng c a C và C++. Do v y nó s d ng các cú pháp c a C và các c trưng hư ng i tư ng c a C++. Vào năm 1991, m t nhóm các k sư c a Sun Microsystems có ý nh thi t k m t ngôn ng l p trình i u khi n các thi t b i n t như Tivi, máy gi t, lò nư ng, … M c dù C và C++ có kh năng làm vi c này nhưng trình biên d ch l i ph thu c vào t ng lo i CPU. Trình biên d ch thư ng ph i t n nhi u th i gian xây d ng nên r t t. Vì v y m i lo i CPU có m t trình biên d ch riêng là r t t n kém. Do ó nhu c u th c t òi h i m t ngôn ng ch y nhanh, g n, hi u qu và c l p thi t b t c là có th ch y trên nhi u lo i CPU khác nhau, dư i các môi trư ng khác nhau. “Oak” ã ra i và vào năm 1995 ư c i tên thành Java. M c dù m c tiêu ban u không ph i cho Internet nhưng do c trưng không ph thu c thi t b nên Java ã tr thành ngôn ng l p trình cho Internet. 2.1.1 Java là gì Java là ngôn ng l p trình hư ng i tư ng, do v y không th dùng Java vi t m t chương trình hư ng ch c năng. Java có th gi i quy t h u h t các công vi c mà các ngôn ng khác có th làm ư c. Java là ngôn ng v a biên d ch v a thông d ch. u tiên mã ngu n ư c biên d ch b ng công c JAVAC chuy n thành d ng ByteCode. Sau ó ư c th c thi trên t ng lo i máy c th nh chương trình thông d ch. M c tiêu c a các nhà thi t k Java là cho phép ngư i l p trình vi t chương trình m t l n nhưng có th ch y trên b t c ph n c ng c th . Ngày nay, Java ư c s d ng r ng rãi vi t chương trình ch y trên Internet. Nó là ngôn ng l p trình hư ng i tư ng c l p thi t b , không ph thu c vào h i u hành. Nó không ch dùng vi t các ng d ng ch y ơn l hay trong m ng mà còn xây d ng các trình i u khi n thi t b cho i n tho i di ng, PDA, … 2.2 Các c trưng c a Java
  • 2. 24 Core 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 2.2.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 (operator overloading),… 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. 2.2.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. 2.2.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 trơn tru 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 (s c p n ph n sau) ho t ng như m t trình thông d ch t i máy th c thi. H ình 2.1 Cách biên d ch truy n th ng Macintosh compiler compiler compiler IBM Sparc
  • 3. Chương 2: Nh p môn Java 25 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 (machine code),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 2.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 2.2 Quá trình th c thi chương trình vi t b ng Java trên các lo i máy khác nhau. Hình 2.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.2.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 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 . Qúa 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 qúa trình x lý l i và h i ph c sau Macintosh Trình biên d ch Bytecode c l p n n (Platform independent) Trình thông d ch Java (Java Interpreter) IBM Sparc
  • 4. 26 Core Java l i. 2.2.5 B o m t Viruses 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 tuý 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 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. 2.2.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 n n t ng khác nhau. 2.2.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 này này cho phép xây d ng các ng d ng trên m ng ch y hi u qu . 2.2.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ã.
  • 5. Chương 2: Nh p môn Java 27 2.3 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: 2.3.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 ư 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. 2.3.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. 2.3.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. 2.3.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. 2.3.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. 2.4 Máy o Java (JVM-Java Virtual Machine) Máy o Java là trái tim c a ngôn ng Java. Môi trư ng Java bao g m năm ph n t sau: Ngôn ng Ð nh nghĩa Bytecode Các thư vi n l p Java/Sun Máy o Java (JVM) C u trúc c a file .class Các ph n t t o cho Java thành công là Ð nh nghĩa Bytecode C u trúc c a file .class Máy o Java (JVM) Kh năng cơ ng c a file .class cho phép các chương trình Java vi t m t l n nhưng ch y b t kỳ âu. Kh năng này có ư c nh s giúp c a máy o Java.
  • 6. 28 Core Java 2.4.1 Máy o Java là gì ? Máy o là m t ph n m m d a trên cơ s máy tính o. 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. Ngư i ta có th xem nó như m t h i u hành thu nh . 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á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 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. 2.4.2 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
  • 7. Chương 2: Nh p môn Java 29 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. 2.4.3 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à 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. 2.5 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. Java 2 – Phiên b n m i nh t
  • 8. 30 Core Java 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: 2.5.1 Trình biên d ch, 'javac' Cú pháp: javac [options] sourcecodename.java 2.5.2 Trình thông d ch, 'java' Cú pháp: java [options] classname 2.5.3 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 2.5.4 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 2.5.5 Chương trình tìm l i - Debug, 'jdb‘ Cú pháp: jdb [options] sourcecodename.java hay jdb -host -password [options] sourcecodename.java 2.5.6 Chương trình xem Applet , 'appletviewer‘ Cú pháp: appletviewer [options] url 2.6 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: 2.6.1 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. 2.6.2 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.
  • 9. Chương 2: Nh p môn Java 31 2.6.3 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. 2.6.4 java.io Cung c p thư vi n vào ra chu . Chúng cho phép t o và qu n lý dòng d li u theo nhi u cách. 2.6.5 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. 2.6.6 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. 2.6.7 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. 2.6.8 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 . 2.6.9 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 . 2.6.10 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,.... 2.7 Các c trưng m i c a Java 2 Các phiên b n trư c c a Java ch thích h p vi t các ng d ng nh trên Web hơn là xây d ng các ng d ng ch y trên m ng m nhi m toàn b các công vi c c a c a m t công ty ho c h th ng phân tán. Java 2 áp ng yêu c u này. M t vài c trưng c a chúng là: - Swing ây là m t t p các l p và giao di n m i dùng t o giao di n ng d ng h a "Look and Feel". - Kéo và th ây là kh năng di chuy n thông tin gi a các ng d ng hay các ph n khác nhau c a chương trình. - Java 2D API Ch a t p h p các l p h tr cho nh và h a hai chi u. - Java sound T p h p hoàn toàn m i các l p c trưng v âm thanh c a Java. - RMI RMI (Remote Method Invocation) cho phép các ng d ng g i các phương th c c a i tư ng t i máy khác và cho phép giao ti p v i chúng.
  • 10. 32 Core Java Tóm t t Java là ngôn ng biên d ch và thông d ch Các c trưng c a Java ơn gi n Hư ng i tư ng c l p ph n c ng M nh B o m t Phân tán a lu ng ng Máy o Java Java Development Kit Các c trưng m i c a Java 2 Ki m tra s ti n b 1. B n có th vi t các chương trình d ng th t c b ng Java. úng/Sai 2. Java là ngôn ng có ki u d li u ch t ch . úng/Sai 3. ...........................là chương trình Java ch y c l p, và s d ng giao di n h a ngư i s d ng nh p d li u. 4. ...........................s d ng JDBC API k t n i cơ s d li u. 5. ..........................hi u m t dòng các l nh máy tính tr u tư ng. 6. Coalescing và Compaction là gì? 7. L nh ............... ư c s d ng d ch file mã ngu n .java. 8. L p ......... ph i là l p cha c a các applet, applet là chương có th nhúng vào trang Web hay ch y b ng Java AppletViewer. Bài t p 1. Cài t Java 2 2. Gõ các l nh sau t i d u nh c và li t kê các tham s khác nhau c a chúng: javac java