
1
1
Chương 1- Tng quan vJAVA
Mc tiêu
(1) Hiu nhng ñcñim và li ích ca Java
(2) Hiu cơchthc thi ca Java
(3) Hiu cơchbiên dch và chy 1 chương trình Java
(4) Hiu cu trúc cơbn ca mt chương trình Java
2
Ni dung chương 1
1.1- Lch sca Java
1.2- Nhng ñcñim cơbn ca Java
1.3- Máy o Java- JVM
1.4- Môi trưng lp trình Java
1.5- Chương trình Java ñu tiên
1.7- Tóm tt
1.8- Trc nghim và bài tp

2
3
1.1- Lch sca Java
• Năm 1990, James Gosling, Bill Joy, Patrick Naughton(Sun
Microsystem) phát trin ngôn ngOak nhm mcñích cài
chương trình vào các bxlý ca các thit bnhưVCR, lò
nưng, PDA (personal data assistant), Oak ñòi hi:
-Đc lp cu trúc nn (phn cng, OS)
do thit bcó thdo
nhiu nhà sn xut khác nhau (Platform independent)
- Phi tin cy tuytñi (extremely reliable)
- Nhgn, chc chn (compact)
• 1993, TV tương tác và PDA tht bi, Internet và Web bùng
n , Sun chuyn Oak thành mt môi trưng lp trình
Internet vi tên dán là Java.
• 1994, HotJava Browser ca Sun xut hin (vit bng Java
ch!sau vài tháng)minh ha thmnh ca các applet
cũng nhưkhnăng phát trin nhanh mtng dng ca
Java.
4
Lch sJava (tt)
• Cùng vi sbùng n ca Internet, Java tr#thành phn
mmưu thtrong vic phát trinng dng chy trên
internet.
• Tuy nhiên, nhng bn Java ñu chưañ mnh theo
yêu cu ca ngưi sdng. Thí d: Đ$ ha trong bn
Java 1.0 thô và vng vhơn so viñ$ ha khi ñưc x
lý bng C hoc ngôn ngkhác.
• Tuy lúc ñu Java chưa thành công trong vic xây dng
các ng dng mc ngưi dùng, Java v%n là ngôn ng
rt thông dng mc doanh nghip, các ng dng mc
trung gian như: Lưu trtrc tuyn, xlý giao tác,
giao tip vi database,… và càng thông dng trên
nhng cu trúc nn nh(small platform) như ñin
thoi di ñng, PDA.

3
5
Java là gì?
• Là mt ngôn ngOOP ñyñ, không thvit 1 ng
dng hưng thtc trong Java.
• Có thgii các hbài toán nhưnhng ngôn nglp
trình khác.
• Cho phép to Application hoc Applet.
• Applet là nhng chương trình nhchy trong tài liu
HTML viñiu kin trình duyt có h&trJava (nhưIE,
Netscape Navigator, HotJava,…)
• Sdng 2 cơch: Interpreter | Compiler
• Write code one, run it anywhere, anytime, forever
6
1.2- Đcñim ca Java
•Đơn gin( simple).
Tương tnhưC++ nhưng bbt các
ñc tính phc tp ca C++ như: qun lý bnh, pointer,
overload toán t, không dùng include, bstruct, union
• Hưng ñi tưng (OO).
Mi thtrong Java là ñi
tưng
• Phân tán (Distributed).
Nhmñn phân b ng dng
trên mng, ng dng ñc lp platform.
• Mnh (Robust).
Đnh kiu mnh, tưng minh, kim tra
lúc biên dch và kim tra khi thông dch trưc khi thc thi
Gii hnñưc l&i; kim tra truy xut phn tca mng, chu&i
lúc thc thi, kim tra ép kiu run-time. Có trình gom rác –
garbage collection- programmer không cn phi lo toan ñn
vic hyñi tưng.

4
7
Đcñim ca Java (tt)
• Bo mt (Secure):
Kim tra an toàn code trưc
khi thc thi, có nhiu mc kim tra bo mt
Môi trưng thc thi an toàn
Mc 1: Mc ngôn ng: Nhtính bao gói dliu
ca OOP, không cho phép truy cp trc tip b
nhmà phi thông qua method.
Mc 2: Mc Compiler, kim tra an toàn cho code
trưc khi biên dch.
Mc 3: Mc Interpreter, trưc khi bytecode ñưc
thc thi, ñưc kim tra an toàn.
Mc 4: Mc Class, các class trưc khi npñưc
kim tra an toàn.
8
Đcñim ca Java (tt)
• Tính tương thích
khchuyn
(Portability)
Chương trình
Java
Compiler
Chương trình Bytecode ñc
lp platform
Java Runtime Interpreter/ JVM thc thi
Javabytecode
IBM Macintosh SparcIntel

5
9
Đcñim ca Java (tt)
• Thc thi dng thông dch:
(Interpretive execution)
Ch!thch! ñưc dch sang lnh máy lúc thc thi
Chương trình ñc lp platform Write Once Run Anywhere
(WORA)
(1) Các file tài nguyên trình biên dch javac class file ñc
lp thit b
(2) Class file trình thông dch java mã máy thc thi, không
cn liên kt (link)
Li ích
(1) Java class file có th ñưc dùng #bt kỳflatform nào.
(2) Tính module hóa cao, dùng bnhtt hơn vi class file hơn
là file thc thi vì class file
10
Đcñim ca Java (tt)
• Hiu sut cao (high performance):
bytecode native machine code d(dàng nhJust-in-time
compiler.
•Đa lu$ng (multithreading)
Cho phép lp trình ña lu$ng (nhiu chương trình ñ$ng
hành nhlp Thread : kh#i to, ngưng 1 lu$ng, kim tra
trng thái ca lu$ng)
thread: mt lu$ng thc thi ca CPU là 1 chương trình
• Linh ñng (dynamic):
Cho phép tương thích vi s
thay ñ i ca môi trưng, Trong CT java có các thông tin
run-time Kim tra truy xut lp an toán, an toàn ñ
liên kt caùc lpvào CT dynamic