1
1
Chương 1- Tng quan vJAVA
Mc tiêu
(1) Hiu nhng ñcñim li ích ca Java
(2) Hiu cơchthc thi ca Java
(3) Hiu cơchbiên dch 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- m tt
1.8- Trc nghim 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 bx 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 b 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 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ô vng vhơn so viñ$ ha khi ñưc x
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 ngôn ng
rt thông dng mc doanh nghip, các ng dng mc
trung gian như: Lưu trtrc tuyn, x giao tác,
giao tip vi database, 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ì?
mt ngôn ngOOP ñyñ, không thvit 1 ng
dng hưng thtc trong Java.
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 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
nh 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áy thc thi, không
cn liên kt (link)
Li ích
(1) Java class file có th ñưc dùng #bt kflatform nào.
(2) Tính module hóa cao, dùng bnhtt hơn vi class file hơn
file thc thi 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 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