You are on page 1of 50

NHP MN JAVA

BI 1

TNG QUAN NGN NG JAVA

PHN 1

LCH S RA I
CA JAVA

LCH S RA I CA JAVA

Cui nm 1990, James Gosling v cc cng


s c cng ty Sun Microsystems giao
nhim v xy dng phn mm lp trnh cho
cc mt hng in t dn dng nhm mc
ch ci chng trnh vo cc b x l ca
cc thit b nh VCR, l nng, PDA
(personal data assistant).
3

LCH S RA I CA JAVA
Lc u Gosling v cc cng s nh chn ngn
ng C++ nhng thy rng C++ c nhng hn ch.
Chng trnh vit bng C++ khi chuyn sang chy
trn mt h thng my c b vi x l khc th i
hi phi bin dch li.
Gosling quyt nh xy dng hn mt ngn ng
mi da trn nn ngn ng C,C++ v t tn l
Oak (cy si, v phng lm vic ca Gosling nhn
ra mt cy si).
Oak i hi phi c lp cu trc nn (phn cng,
OS) do thit b c th do nhiu nh sn xut khc
nhau (Platform independent).
4

LCH S RA I CA JAVA
1993, Internet v Web bng n, Sun chuyn Oak
thnh mt mi trng lp trnh Internet vi tn d
n l Java.
1995: Oak i tn vi tn chnh thc l Java. Java
l tn mt hn o c trng nhiu c ph m nhm
nghin cu pht trin tham quan v lm vic.
Mc ch ca Java pht trin ng dng cho cc
thit b in t thng minh, to cc trang web c
ni dung ng (applet). Hin nay Java c s
dng pht trin nhiu loi ng dng khc nhau
nh c s d liu, mng, Internet, games, vin
thng,
5

PHN 2

MT S C TNH
CA JAVA

MT S C TNH CA JAVA

n gin.
Kh chuyn.
Hng i tng.
Phn tn
a tiu trnh (multithread).
An ton.
Bin dch v thng dch
Gii phng b nh (Garbage Collection)

MT S C TNH CA JAVA
n gin (simple): Java tng t nh C++ nhng
b bt cc c tnh phc tp ca C++ nh qun l
b nh, pointer, overload ton t, khng dng
include, b struct, union. Java c k tha t C+
+, v c loi b i cc tnh nng kh nht ca
C++ nn java d s dng hn.
Tnh kh chuyn (portable): ca java do chng
trnh bin dch to ra m byte (bytecodes) khng
ph thuc h thng my s dng. Bytecodes l tp
hp cc cu lnh tng t nh lnh m my
(machine code), n c to ra khi mt chng
trnh Java c bin dch xong.
8

MT S C TNH CA JAVA
Minh ha tnh kh chuyn

MT S C TNH CA JAVA
Tnh hng i tng (OO):
Hng i tng trong Java tng t nh C++
nhng Java l mt ngn ng lp trnh hng i
tng hon ton, khng th vit mt ng dng
hng th tc trong Java
Tt c mi th cp n trong Java u lin quan
n cc i tng c nh ngha trc, thm ch
hm chnh (hm main) ca mt chng trnh vit
bng Java cng phi t bn trong mt lp.
Hng i tng trong Java khng c tnh a k
tha (multi inheritance) nh trong C++ m thay vo
Java a ra khi nim interface h tr tnh a
k tha.
10

MT S C TNH CA JAVA
Phn tn (distributed): nhm n phn b ng
dng trn mng, ng dng c lp platform. C th
l Java c h tr cng ngh lp trnh RMI, CORBA,
JavaBean. Cc cng ngh ny cho php s dng
li cc lp to ra, triu gi cc phng thc
(method) hoc cc i tng t mt my xa.
a tiu trnh (multithread): c tnh ny ca Java
cho php to nhiu tin trnh, tiu trnh c th chy
song song cng mt thi im v c th tng tc
vi nhau.
11

MT S C TNH CA JAVA
Tnh an ton (secure): Kim tra an ton code
trc khi thc thi, c nhiu mc kim tra bo mt
Mi trng thc thi an ton
Mc 1: Mc ngn ng, nh tnh bao gi d liu
ca OOP, khng cho php truy cp trc tip b nh
m phi thng qua method.
Mc 2: Mc Compiler, kim tra an ton cho code
trc khi bin dch.
Mc 3: Mc Interpreter, trc khi bytecode c
thc thi, c kim tra an ton.
Mc 4: Mc Class, cc class trc khi np c
kim tra an ton.
12

MT S C TNH CA JAVA
Bin dch v thng dch:

Java l mt ngn ng lp trnh c kh nng bin


dch v kh nng thng dch.
Chng trnh ngun vit bng ngn ng lp trnh
Java c ui *.java u tin c bin dch thnh
tp tin c ui *.class v sau s c trnh thng
dch thng dch thnh m my.
Java class file c th c dng bt k flatform
no (Write Once Run Anywhere).
Cc file ti nguyn trnh bin dch javac class
file c lp thit b
Class file trnh thng dch java m my thc
thi, khng cn lin kt (link)
13

MT S C TNH CA JAVA
Minh ha bin dch
v thng dch

Chng trnh
Java
Compile
r
Chng trnh Bytecode c
lp platform

Java Runtime Interpreter/ JVM thc thi


Javabytecode
IBM

Macintosh

Sparc
14

MT S C TNH CA JAVA
Gii phng b nh (Garbage Collection)
Java cung cp mt tin trnh mc h thng
theo di vic cp pht b nh
Garbage Collection
nh du v gii phng cc vng nh khng
cn c s dng.
c tin hnh t ng.
C ch hot ng ph thuc vo cc phin
bn my o.
15

PHN 3

CNG NGH
JAVA

JAVA L MT CNG NGH


Cng ngh Java pht trin mnh m nh vo
Sun Microsystem cung cp nhiu cng c, th
vin lp trnh phong ph h tr cho vic pht
trin nhiu loi ng dng khc nhau.
Java bao gm:
Ngn ng lp trnh
Mi trng pht trin
Mi trng thc thi v trin khai

17

CC DNG CNG NGH JAVA


Desktop applications - J2SE
Phin bn chun Java 2 Standard Edition.
J2SE h tr vit cc ng dng n, ng dng
client-server.
Java Applications: ng dng Java thng
thng trn desktop
Java Applets: ng dng nhng hot ng
trong trnh duyt web
18

CC DNG CNG NGH JAVA


Server applications - J2EE

Nn tng Java 2, phin bn doanh nghip Java 2 Enterprise Edition. H tr pht trin
cc ng dng thng mi.
Chy trn my ch ln vi sc mnh x l v
dung lng b nh ln, h tr gn lin vi
servlet, jsp v XML.

Mobile
J2ME

(embedded)

applications

Phin bn thu nh - Java 2 Micro Edition.


H tr vit cc ng dng trn cc thit b 19di

CC DNG NG DNG CA JAVA


Dng Java ta c th vit cc dng ng dng sau:

ng dng c lp (console application)


ng dng Applets
ng dng giao din (GUI application)
ng dng Web (Servlet v Jsp)
ng dng nhng (embedded application)
ng dng c s d liu (database application)
Games.
20

CC DNG NG DNG CA JAVA


ng dng c lp (console application):
ng dng Console l ng dng nhp xut
ch vn bn tng t nh mn hnh
Console ca h iu hnh MS-DOS.
Lai chng trnh ng dng ny thch hp vi
nhng ai bc u lm quen vi ngn ng lp
trnh java.
Cc ng dng kiu Console thng c dng
minh ha cc v d c bn lin quan n c
php ngn ng, cc thut ton, v cc chng
trnh ng dng khng cn thit n giao din
ngi dng ha.
21

CC DNG NG DNG CA JAVA


ng dng Applets:

Java Applet l loi ng dng c th nhng v chy


trong trang web ca mt trnh duyt web.
T khi internet mi ra i, Java Applet cung cp mt
kh nng lp trnh mnh m cho cc trang web.
Nhng gn y khi cc chng trnh duyt web
pht trin vi kh nng lp trnh bng VB Script, Java
Script, HTML, DHTML, XML, cng vi s canh
tranh khc lit gia Microsoft v Sun lm cho Java
Applet lu m. V cho n by gi gn nh cc lp
trnh vin u khng cn mn m vi Java Applet
na.
22

CC DNG NG DNG CA JAVA


ng dng giao din (GUI application):
Vic pht trin cc chng trnh ng dng c
giao din ngi dng ha trc quan ging
nh nhng chng trnh c vit dng ngn
ng lp trnh VC++ hay Visual Basic c
java gii quyt bng th vin AWT v JFC.
JFC (Swing) l th vin rt phong ph v h
tr mnh m hn nhiu so vi AWT. JFC gip
cho ngi lp trnh c th to ra mt giao
din trc quan ca bt k ng dng no.
23

CC DNG NG DNG CA JAVA


ng dng Web:
Java h tr mnh m i vi vic pht trin cc
ng dng Web thng qua cng ngh J2EE
(Java 2 Enterprise Edition).
Cng ngh J2EE hon ton c th to ra cc
ng dng Web mt cch hiu qu khng thua
km cng ngh .NET m Microsft ang qung
co.
Cng ngh vit web hin c ca Java l Servlet
v Jsp, ngoi ra cn c s h tr ca lp trnh
Socket, Java Bean, RMI v CORBA, EJB.
24

CC DNG NG DNG CA JAVA


ng dng nhng:
Java Sun a ra cng ngh J2ME (The Java
2 Platform, Micro Edition J2ME) h tr pht
trin cc chng trnh, phn mm nhng.
J2ME cung cp mt mi trng cho nhng
chng trnh ng dng c th chy c trn
cc thit b c nhn nh: in thai di ng
(MIDlet), my tnh b ti PDA hay Palm, cng
nh cc thit b nhng khc.

25

CC DNG NG DNG CA JAVA


ng dng c s d liu:
Java cng h tr lp trnh kt ni v tng
tc c vi hu ht cc h quan tr CSDL
ni ting nh Oracle, SQL Server, MSAccess, MySQL,

Games:
Lp trnh Games bng Java c pht trin
mnh m. Dng Java c th vit c games
cho my destop v cc thit b di ng.
26

JDK JAVA DEVELOPMENT KIT


JDK- Java Development Kit- B cng c pht trin
ng dng Java bao gm 4 thnh phn: ClasseS,
Compiler, Debugger, Java Runtime Environment.
JDK 1.0
JDK 1.1
JDK 1.2
JDK 1.3
Java 1.4
Java 5 (1.5)
Java 6
Java 7

1996
1997
1998
2000
2002
2004
2006
Hin nay

Ghi ch: sau ny JDK cn c gi l SDK (Java SDK - Software Development Kit) 27

JDK JAVA DEVELOPMENT KIT


Bao gm:

javac Chng trnh dch chuyn m ngun sang bytecode


java B thng dch: Thc thi java application
appletviewer B thng dch: Thc thi java applet m
khng cn s dng trnh duyt nh Nestcape, FireFox hay
IE, v.v.
javadoc B to ti liu dng HTML t m ngun v ch
thch
jdb B g li (java debugger)
javap Trnh dch ngc bytecode
jar Dng ng gi lu tr cc module vit bng Java
(to ra file ui .jar), l phng php tin li phn phi
nhng chng trnh Java.
28

JVM JAVA VIRTUAL MACHINE


KIU DCH CA CC TRNH BIN DCH NGN NG C

29

JVM JAVA VIRTUAL MACHINE


QUY TRNH BIN DCH V THNG DCH CA JAVA:

Trnh bin dch chuyn m ngun thnh tp cc


lnh khng ph thuc vo phn cng c th.
Trnh thng dch trn mi my chuyn tp lnh
ny thnh chng trnh thc thi
My o to ra mt mi trng thc thi cc
lnh bng cch:
Np cc file .class
Qun l b nh
Dn rc
30

JVM JAVA VIRTUAL MACHINE


Java
Source
(*.java)

Java Compiler
(javac)

Java
Object
(*.class)

M i tng c xc minh
v np vo my o Java
Chng trnh
c x l bi
trnh thng dch

Java Virtual Machine


Java Interpreter
(java)
Trnh thng dch kim sot tt c cc
truyn thng vi OS ca my tnh thc
Computer Operating System
31

JVM JAVA VIRTUAL MACHINE


JVM l mt phn mm da trn c s my tnh
o. JVM cng c xem nh l mt h iu hnh
thu nh.
My o ph thuc vo Platform (phn cng, OS),
n cung cp mi trng thc thi cho Java (c
lp vi platform).
N thit lp cho cc m Java bin dch c mt
ci nhn trong sut (transparence) v cc phn
cng bn di.
32

IDE INTEGRATED DEVELOPMENT ENVIRONMENT


IDE: trong phn mm my tnh, IDE ch n mt b
cc cng c phn mm son tho, bin dch, lin kt,
g ri, vv V d nh b Visual Studio ca Microsoft.
IDE gip pht trin ng dng nhanh chng v hiu qu
hn. n gin ha qu trnh pht trin phn mm
Mt s IDE dnh cho lp trnh Java l:
JCreator
NetBeans
Eclipse
EditPlus
Borland Jbuilder
Java Studio ca Sun

33

PHN 4

HNG DN
CI T

CC PHN MM CN CHUN B
JDK 1.6 (jdk-6u11-windows-i586-p)
JDK DOC 1.6 (jdk-6u10-docs)
http://java.sun.com/javase/downloads/index.jsp
JCreator 4.5
http://www.jcreator.com/download.htm
Nu khng dng mt IDE nh JCreator son
tho, dch v thc thi th ta c th dng trnh son
tho vn bn nh NotePad son tho.

35

TRNH T CI T
Nn ci t theo trnh t sau:
Ci JDK 1.6
Thit lp bin mi trng PATH, CLASPATH
Ci JDK Doc 1.6
JCreator 4.5
Thit lp cho JCreator ch vo b JDK Doc 1.6 ci
t

36

CI JDK 1.6
Phn ny hng dn ci trong h iu hnh Windows XP
(i vi cc h iu hnh khc ca hng Microsoft th
cch ci cng tng t).
To th mc C:\Java ci. Nu khng th JDK ci
ngm nh vo C:\Program Files\Java\jdk1.6.0_11
Nhp p vo source JDK 1.6 ci.
Thit lp bin mi trng PATH ch n th mc BIN ca
th mc m ta mi ci JDK.
Thit lp bin mi trng CLASSPATH ch n th mc
cha cc lp ca ngi dng. T bn JDK 1.4 v sau, ta
khng cn quan tm n bin CLASSPATH na.
37

THIT LP BIN MI TRNG PATH

Trong Windows XP, nhp Start/run g vo sysedit. Trong ca s AUTOEXEC.BAT


g chui set PATH= ch n th mc BIN ca JDK mi ci t.
V d: set PATH=C:\Program Files\Java\jdk1.6.0_11\bin
Sau save v ng ca s sysedit li ri khi ng li my.

38

KIM TRA KT QU CI JDK

M cmd ca WindowsXP, g hai lnh java ri javac. Nu c kt qu nh sau th vic


ci t JDK thnh cng

39

CI T JDK DOC
JDK Doc l l ti liu tr gip tra cu cc lp v cc phng thc ca Java.
JDK Doc cng tr gip tra hm v lp khi son tho trong JCreator. Source ca
JDK Doc dng file nn. Ta tin hnh gii nn n vo cng th mc ci JDK,
kt qu c th mc docs nh sau:

40

CI T JCREATOR 4.5
Sau khi download source JCreator v ci t n xong, nh tin hnh b kha.

41

CI T JCREATOR 4.5

JDK Doc tr gip tra hm v lp khi son tho trong JCreator, ta phi cu hnh nh sau:
Configure/Options/JDK Profiles/Chn th mc ci Java/Chn th Document/Nhp nt
Add/Chn th mc docs ca JDK Doc/OK.

42

PHN 5

VIT MT CHNG TRNH


N GIN

VIT BNG JCREATOR


Dng JCreator vit v thc thi chng trnh c tn l HelloWorldApp

BC 1: TO MT EMPTY PROJECT
Trn menu ca JCreator chn File/New/Project/Empty Project/Next

44

VIT BNG JCREATOR


t tn cho project Name.
Chn th mc cha project Location. Nhn Finish.

45

VIT BNG JCREATOR


BC 2: TO CLASS MI TN HelloWorldApp TRONG PROJECT MI TO
Ch : trong Java, tn file cha mt class phi trng vi tn ca class.
Chn File/New/Class (hoc nhp phi vo tn Project ri chn Add/New Class)

Nhp vo tn ca
class ri nhp Finish

46

VIT BNG JCREATOR


BC 3: SON THO M NGUN, DCH V THC THI

Dch (F7)

Ca s
Workspace
Ca s
son tho m ngun

Ca s xut kt qu dch
(dch thnh cng hoc c li)

Dng chng
trnh ang chy

Thc thi
(F5)

Ca s Output xut
kt qu chy chng trnh

47

VIT BNG NotePad

Lu tr vi tn HelloWorld.java- tn lp l tn file

Ch : Tn file .java c tnh cht case-sensitive

48

VIT BNG NotePad


M cmd ca WindowsXP ln.
G lnh javac dch v lnh java thc thi chng trnh,
nh sau:
C:\PROGRA~1\JavaSoft\JRE\1.2\bin>javac e:\BaiGiang2004\java\HelloWorld.java
e:\BaiGiang2004\java\HelloWorld.java:1: ';' expected.
import java.io.*
^

Li thiu du chm phy, code trn sa

1 error

E:\BaiGiang2004\Java>javac HelloWorld.java
E:\BaiGiang2004\Java>java HelloWorld
Hello World From Java !
E:\BaiGiang2004\Java>

Hoc bin dch vi th mc hin hnh l


th mc cha source code .
Bin dch thnh cng v chy ng dng

49

HT

CHNG 1

You might also like