際際滷

際際滷Share a Scribd company logo
PH働NG PHP L畉P TRNH
H働畛NG 畛I T働畛NG
GI畛I THI畛U
GI畛I THI畛U MN H畛C
 M担n h畛c:
PH働NG PHP L畉P TRNH
H働畛NG 畛I T働畛NG
 M達 m担n h畛c: TI189 nh坦m HK1.CQ.02
 S畛 t鱈n ch畛: 4 (3+1)
2
Chi ti畉t bi gi畉ng
 Gi畛i thi畛u v畛 Java
 畛i t動畛ng, L畛p, t鱈nh 坦ng g坦i trong OOP
 K畉 th畛a (Inheritance)
 L畛p tr畛u t動畛ng (Abstract)
 T鱈nh a h狸nh (Polymorphism)
 Collection trong Java
 X畛 l箪 bi畛t l畛 lu畛ng (Exception)
 S董 畛 l畛p (Class Diagram) trong UML
 L畛p l畛ng nhau (Nested class)
 M畉u thi畉t k畉 (Design pattern)
3
Ti li畛u
[1] Janet J. Prichard, Frank M. Carrano, [2011], Data Abstraction and
Problem Solving with JAVA: Walls & Mirrors, 3rd Edition, Pearson
Education, NJ.
[2] Bruce Eckel, [2006], Thinking in Java, 4th Edition, Pearson
Education, NJ.
[3] Cay S. Horstmann, Gary Cornell, [2013], Core Java Volume I -
Fundamentals, 9th Edition, Pearson Education, NJ.
[4] Craig Larman, [2004], Applying UML and Patterns: An Introdution
to Object-Oriented Analysis and Design and Iterative Development,
3rd Edition, Addison Wesley Professional, Boston
4
M達 ngu畛n tham kh畉o
https://introcs.cs.princeton.edu/java/home/
5
T鱈nh i畛m m担n h畛c
 叩nh gi叩 qu叩 tr狸nh 25%
 Tham d畛 l畛p: 10%
 N畛p bi t畉p theo 畛nh k畛 15%
 Ki畛m tra gi畛a k畛 25%
 M担 h狸nh ho叩 v ci 畉t bi to叩n th畛c t畉
 Ki畛m tra cu畛i k畛 50%
 Th畛c hnh: 90 ph炭t
6
KI畛M TRA CU畛I K畛
 Cho m担 t畉 bi to叩n th畛c t畉:
+ Y棚u c畉u thi畉t k畉 s董 畛 l畛p
+ Ph但n t鱈ch v x叩c 畛nh l畛p, l畛p k畉 th畛a, a h狸nh
+ Ci 畉t 畛ng d畛ng hon ch畛nh d畛a tr棚n thi畉t k畉
7
THNG TIN LIN H畛
 畉ng Nh動 Ph炭
 Email: phudn@tdmu.edu.vn
 ST & Zalo: 08888.16786
8
Q & A
9
L畛CH S畛 RA 畛I
C畛A JAVA
11
L畛CH S畛 RA 畛I C畛A JAVA
 Cu畛i nm 1990, James Gosling v c叩c c畛ng
s畛 動畛c c担ng ty Sun Microsystems giao
nhi畛m v畛 x但y d畛ng ph畉n m畛m l畉p tr狸nh cho
c叩c m畉t hng i畛n t畛 d但n d畛ng nh畉m m畛c
鱈ch ci ch動董ng tr狸nh vo c叩c b畛 x畛 l箪 c畛a
c叩c thi畉t b畛 nh動 VCR, l嘆 n動畛ng, PDA
(personal data assistant).
12
L畛CH S畛 RA 畛I C畛A JAVA
 L炭c 畉u Gosling v c叩c c畛ng s畛 畛nh ch畛n ng担n
ng畛 C++ nh動ng th畉y r畉ng C++ c坦 nh畛ng h畉n ch畉.
Ch動董ng tr狸nh vi畉t b畉ng C++ khi chuy畛n sang ch畉y
tr棚n m畛t h畛 th畛ng m叩y c坦 b畛 vi x畛 l箪 kh叩c th狸 嘆i
h畛i ph畉i bi棚n d畛ch l畉i.
 Gosling quy畉t 畛nh x但y d畛ng h畉n m畛t ng担n ng畛
m畛i d畛a tr棚n n畛n ng担n ng畛 C,C++ v 畉t t棚n l
Oak (c但y s畛i, v狸 ph嘆ng lm vi畛c c畛a Gosling nh狸n
ra m畛t c但y s畛i).
 Oak 嘆i h畛i ph畉i 畛c l畉p c畉u tr炭c n畛n (ph畉n c畛ng,
OS) do thi畉t b畛 c坦 th畛 do nhi畛u nh s畉n xu畉t kh叩c
nhau (Platform independent).
13
 1993, Internet v Web b湛ng n畛, Sun chuy畛n Oak
thnh m畛t m担i tr動畛ng l畉p tr狸nh Internet v畛i t棚n d畛
叩n l Java.
 1995: Oak 畛i t棚n v畛i t棚n ch鱈nh th畛c l Java. Java
l t棚n m畛t h嘆n 畉o c坦 tr畛ng nhi畛u c ph棚 m nh坦m
nghi棚n c畛u ph叩t tri畛n 達 tham quan v lm vi畛c.
 M畛c 鱈ch c畛a Java 畛 ph叩t tri畛n 畛ng d畛ng cho c叩c
thi畉t b畛 i畛n t畛 th担ng minh, 畛 t畉o c叩c trang web c坦
n畛i dung 畛ng (applet). Hi畛n nay Java 動畛c s畛
d畛ng 畛 ph叩t tri畛n nhi畛u lo畉i 畛ng d畛ng kh叩c nhau
nh動 c董 s畛 d畛 li畛u, m畉ng, Internet, games, vi畛n
th担ng,
L畛CH S畛 RA 畛I C畛A JAVA
M畛T S畛 畉C TNH
C畛A JAVA
15
M畛T S畛 畉C TNH C畛A JAVA
 董n gi畉n.
 Kh畉 chuy畛n.
 H動畛ng 畛i t動畛ng.
 Ph但n t叩n
 a ti畛u tr狸nh (multithread).
 An ton.
 Bi棚n d畛ch v th担ng d畛ch
 Gi畉i ph坦ng b畛 nh畛 (Garbage Collection)
16
M畛T S畛 畉C TNH C畛A JAVA
 董n gi畉n( simple): Java t動董ng t畛 nh動 C++ nh動ng
b畛 b畛t c叩c 畉c t鱈nh ph畛c t畉p c畛a C++ nh動 qu畉n l箪
b畛 nh畛, pointer, overload to叩n t畛, kh担ng d湛ng
include, b畛 struct, union. Java 動畛c k畉 th畛a t畛
C++, v 動畛c lo畉i b畛 i c叩c t鱈nh nng kh坦 nh畉t c畛a
C++ n棚n java d畛 s畛 d畛ng h董n.
 T鱈nh kh畉 chuy畛n (portable): c畛a java do ch動董ng
tr狸nh bi棚n d畛ch t畉o ra m達 byte (bytecodes) kh担ng
ph畛 thu畛c h畛 th畛ng m叩y s畛 d畛ng. Bytecodes l t畉p
h畛p c叩c c但u l畛nh t動董ng t畛 nh動 l畛nh m達 m叩y
(machine code), n坦 動畛c t畉o ra khi m畛t ch動董ng
tr狸nh Java 動畛c bi棚n d畛ch xong.
17
Source
Code Java
(*.java)
Win9x/WinNT ...
Linux/Unix...
Bytecodes
Java
(*.class)
Java
Compiler
(javac)
Java
Interpreter
(java)
Win32
Linux
Solaris
.
M畛T S畛 畉C TNH C畛A JAVA
Minh h畛a t鱈nh kh畉 chuy畛n
18
M畛T S畛 畉C TNH C畛A JAVA
 T鱈nh h動畛ng 畛i t動畛ng (OO):
 H動畛ng 畛i t動畛ng trong Java t動董ng t畛 nh動 C++
nh動ng Java l m畛t ng担n ng畛 l畉p tr狸nh h動畛ng 畛i
t動畛ng hon ton, kh担ng th畛 vi畉t m畛t 畛ng d畛ng
h動畛ng th畛 t畛c trong Java
 T畉t c畉 m畛i th畛 畛 c畉p 畉n trong Java 畛u li棚n quan
畉n c叩c 畛i t動畛ng 動畛c 畛nh ngh挑a tr動畛c, th畉m ch鱈
hm ch鱈nh (hm main) c畛a m畛t ch動董ng tr狸nh vi畉t
b畉ng Java c滴ng ph畉i 畉t b棚n trong m畛t l畛p.
 H動畛ng 畛i t動畛ng trong Java kh担ng c坦 t鱈nh a k畉
th畛a (multi inheritance) nh動 trong C++ m thay vo
坦 Java 動a ra kh叩i ni畛m interface 畛 h畛 tr畛 t鱈nh a
k畉 th畛a.
19
M畛T S畛 畉C TNH C畛A JAVA
 Ph但n t叩n (distributed): nh畉m 畉n ph但n b畛 畛ng
d畛ng tr棚n m畉ng, 畛ng d畛ng 畛c l畉p platform. C畛 th畛
l Java c坦 h畛 tr畛 c担ng ngh畛 l畉p tr狸nh RMI, CORBA,
JavaBean. C叩c c担ng ngh畛 ny cho ph辿p s畛 d畛ng
l畉i c叩c l畛p 達 t畉o ra, tri畛u g畛i c叩c ph動董ng th畛c
(method) ho畉c c叩c 畛i t動畛ng t畛 m畛t m叩y 畛 xa.
 a ti畛u tr狸nh (multithread): 畉c t鱈nh ny c畛a Java
cho ph辿p t畉o nhi畛u ti畉n tr狸nh, ti畛u tr狸nh c坦 th畛 ch畉y
song song c湛ng m畛t th畛i i畛m v c坦 th畛 t動董ng t叩c
v畛i nhau.
20
M畛T S畛 畉C TNH C畛A JAVA
 T鱈nh an ton (secure): Ki畛m tra an ton code
tr動畛c khi th畛c thi, c坦 nhi畛u m畛c ki畛m tra b畉o m畉t
 M担i tr動畛ng th畛c thi an ton
M畛c 1: M畛c ng担n ng畛, nh畛 t鱈nh bao g坦i d畛 li畛u
c畛a OOP, kh担ng cho ph辿p truy c畉p tr畛c ti畉p b畛 nh畛
m ph畉i th担ng qua method.
M畛c 2: M畛c Compiler, ki畛m tra an ton cho code
tr動畛c khi bi棚n d畛ch.
M畛c 3: M畛c Interpreter, tr動畛c khi bytecode 動畛c
th畛c thi, 動畛c ki畛m tra an ton.
M畛c 4: M畛c Class, c叩c class tr動畛c khi n畉p 動畛c
ki畛m tra an ton.
21
M畛T S畛 畉C TNH C畛A JAVA
 Bi棚n d畛ch v th担ng d畛ch:
 Java l m畛t ng担n ng畛 l畉p tr狸nh c坦 kh畉 nng bi棚n
d畛ch v kh畉 nng th担ng d畛ch.
 Ch動董ng tr狸nh ngu畛n vi畉t b畉ng ng担n ng畛 l畉p tr狸nh
Java c坦 u担i *.java 畉u ti棚n 動畛c bi棚n d畛ch thnh
t畉p tin c坦 u担i *.class v sau 坦 s畉 動畛c tr狸nh th担ng
d畛ch th担ng d畛ch thnh m達 m叩y.
 Java class file c坦 th畛 動畛c d湛ng 畛 b畉t k畛 flatform
no (Write Once Run Anywhere).
 C叩c file ti nguy棚n  tr狸nh bi棚n d畛ch javac  class
file 畛c l畉p thi畉t b畛
 Class file  tr狸nh th担ng d畛ch java  m達 m叩y th畛c
thi, kh担ng c畉n li棚n k畉t (link)
22
Ch動董ng tr狸nh
Java
Compile
r
Ch動董ng tr狸nh Bytecode 畛c
l畉p platform
Java Runtime Interpreter/ JVM th畛c thi
Javabytecode
IBM Macintosh Sparc
M畛T S畛 畉C TNH C畛A JAVA
Minh h畛a bi棚n d畛ch
v th担ng d畛ch
23
M畛T S畛 畉C TNH C畛A JAVA
 Gi畉i ph坦ng b畛 nh畛 (Garbage Collection)
 Java cung c畉p m畛t ti畉n tr狸nh m畛c h畛 th畛ng 畛
theo d探i vi畛c c畉p ph叩t b畛 nh畛
 Garbage Collection
 叩nh d畉u v gi畉i ph坦ng c叩c v湛ng nh畛 kh担ng
c嘆n 動畛c s畛 d畛ng.
 動畛c ti畉n hnh t畛 畛ng.
 C董 ch畉 ho畉t 畛ng ph畛 thu畛c vo c叩c phi棚n
b畉n m叩y 畉o.
CNG NGH畛
JAVA
25
JAVA L M畛T CNG NGH畛
 C担ng ngh畛 Java ph叩t tri畛n m畉nh m畉 nh畛 vo
Sun Microsystem cung c畉p nhi畛u c担ng c畛, th動
vi畛n l畉p tr狸nh phong ph炭 h畛 tr畛 cho vi畛c ph叩t
tri畛n nhi畛u lo畉i 畛ng d畛ng kh叩c nhau.
 Java bao g畛m:
 Ng担n ng畛 l畉p tr狸nh
 M担i tr動畛ng ph叩t tri畛n
 M担i tr動畛ng th畛c thi v tri畛n khai
26
CC D畉NG CNG NGH畛 JAVA
 Desktop applications - J2SE
 Phi棚n b畉n chu畉n  Java 2 Standard Edition.
J2SE h畛 tr畛 vi畉t c叩c 畛ng d畛ng 董n, 畛ng d畛ng
client-server.
 Java Applications: 畛ng d畛ng Java th担ng
th動畛ng tr棚n desktop
 Java Applets: 畛ng d畛ng nh炭ng ho畉t 畛ng
trong tr狸nh duy畛t web
27
CC D畉NG CNG NGH畛 JAVA
 Server applications - J2EE
 N畛n t畉ng Java 2, phi棚n b畉n doanh nghi畛p -
Java 2 Enterprise Edition. H畛 tr畛 ph叩t tri畛n
c叩c 畛ng d畛ng th動董ng m畉i.
 Ch畉y tr棚n m叩y ch畛 l畛n v畛i s畛c m畉nh x畛 l箪 v
dung l動畛ng b畛 nh畛 l畛n, h畛 tr畛 g畉n li畛n v畛i
servlet, jsp v XML.
 Mobile (embedded) applications  J2ME
 Phi棚n b畉n thu nh畛 - Java 2 Micro Edition.
 H畛 tr畛 vi畉t c叩c 畛ng d畛ng tr棚n c叩c thi畉t b畛 di
畛ng, kh担ng d但y, thi畉t b畛 nh炭ng,
28
CC D畉NG 畛NG D畛NG C畛A JAVA
 D湛ng Java ta c坦 th畛 vi畉t c叩c d畉ng 畛ng d畛ng sau:
 畛ng d畛ng 畛c l畉p (console application)
 畛ng d畛ng Applets
 畛ng d畛ng giao di畛n (GUI application)
 畛ng d畛ng Web (Servlet v Jsp)
 畛ng d畛ng nh炭ng (embedded application)
 畛ng d畛ng c董 s畛 d畛 li畛u (database application)
 Games.
29
CC D畉NG 畛NG D畛NG C畛A JAVA
 畛ng d畛ng 畛c l畉p (console application):
 畛ng d畛ng Console l 畛ng d畛ng nh畉p xu畉t 畛
ch畉 畛 vn b畉n t動董ng t畛 nh動 mn h狸nh
Console c畛a h畛 i畛u hnh MS-DOS.
 L畛ai ch動董ng tr狸nh 畛ng d畛ng ny th鱈ch h畛p v畛i
nh畛ng ai b動畛c 畉u lm quen v畛i ng担n ng畛 l畉p
tr狸nh java.
 C叩c 畛ng d畛ng ki畛u Console th動畛ng 動畛c d湛ng
畛 minh h畛a c叩c v鱈 d畛 c董 b畉n li棚n quan 畉n c炭
ph叩p ng担n ng畛, c叩c thu畉t to叩n, v c叩c ch動董ng
tr狸nh 畛ng d畛ng kh担ng c畉n thi畉t 畉n giao di畛n
ng動畛i d湛ng 畛 h畛a.
30
CC D畉NG 畛NG D畛NG C畛A JAVA
 畛ng d畛ng Applets:
 Java Applet l lo畉i 畛ng d畛ng c坦 th畛 nh炭ng v ch畉y
trong trang web c畛a m畛t tr狸nh duy畛t web.
 T畛 khi internet m畛i ra 畛i, Java Applet cung c畉p m畛t
kh畉 nng l畉p tr狸nh m畉nh m畉 cho c叩c trang web.
 Nh動ng g畉n 但y khi c叩c ch動董ng tr狸nh duy畛t web 達
ph叩t tri畛n v畛i kh畉 nng l畉p tr狸nh b畉ng VB Script, Java
Script, HTML, DHTML, XML, c湛ng v畛i s畛 canh
tranh kh畛c li畛t gi畛a Microsoft v Sun 達 lm cho Java
Applet lu m畛. V cho 畉n b但y gi畛 g畉n nh動 c叩c l畉p
tr狸nh vi棚n 畛u kh担ng c嘆n m畉n m v畛i Java Applet
n畛a.
31
CC D畉NG 畛NG D畛NG C畛A JAVA
 畛ng d畛ng giao di畛n (GUI application):
 Vi畛c ph叩t tri畛n c叩c ch動董ng tr狸nh 畛ng d畛ng c坦
giao di畛n ng動畛i d湛ng 畛 h畛a tr畛c quan gi畛ng
nh動 nh畛ng ch動董ng tr狸nh 動畛c vi畉t d湛ng ng担n
ng畛 l畉p tr狸nh VC++ hay Visual Basic 達 動畛c
java gi畉i quy畉t b畉ng th動 vi畛n AWT v JFC.
 JFC (Swing) l th動 vi畛n r畉t phong ph炭 v h畛
tr畛 m畉nh m畉 h董n nhi畛u so v畛i AWT. JFC gi炭p
cho ng動畛i l畉p tr狸nh c坦 th畛 t畉o ra m畛t giao
di畛n tr畛c quan c畛a b畉t k畛 畛ng d畛ng no.
32
CC D畉NG 畛NG D畛NG C畛A JAVA
 畛ng d畛ng Web:
 Java h畛 tr畛 m畉nh m畉 畛i v畛i vi畛c ph叩t tri畛n c叩c
畛ng d畛ng Web th担ng qua c担ng ngh畛 J2EE
(Java 2 Enterprise Edition).
 C担ng ngh畛 J2EE hon ton c坦 th畛 t畉o ra c叩c
畛ng d畛ng Web m畛t c叩ch hi畛u qu畉 kh担ng thua
k辿m c担ng ngh畛 .NET m Microsft ang qu畉ng
c叩o.
 C担ng ngh畛 vi畉t web hi畛n c坦 c畛a Java l Servlet
v Jsp, ngoi ra c嘆n c坦 s畛 h畛 tr畛 c畛a l畉p tr狸nh
Socket, Java Bean, RMI v CORBA, EJB.
33
CC D畉NG 畛NG D畛NG C畛A JAVA
 畛ng d畛ng nh炭ng:
 Java Sun 動a ra c担ng ngh畛 J2ME (The Java
2 Platform, Micro Edition J2ME) h畛 tr畛 ph叩t
tri畛n c叩c ch動董ng tr狸nh, ph畉n m畛m nh炭ng.
 J2ME cung c畉p m畛t m担i tr動畛ng cho nh畛ng
ch動董ng tr狸nh 畛ng d畛ng c坦 th畛 ch畉y 動畛c tr棚n
c叩c thi畉t b畛 c叩 nh但n nh動: i畛n th畛ai di 畛ng
(MIDlet), m叩y t鱈nh b畛 t炭i PDA hay Palm, c滴ng
nh動 c叩c thi畉t b畛 nh炭ng kh叩c.
34
CC D畉NG 畛NG D畛NG C畛A JAVA
 畛ng d畛ng c董 s畛 d畛 li畛u:
 Java c滴ng h畛 tr畛 l畉p tr狸nh k畉t n畛i v t動董ng
t叩c 動畛c v畛i h畉u h畉t c叩c h畛 quan tr畛 CSDL
n畛i ti畉ng nh動 Oracle, SQL Server, MS-
Access, MySQL,
 Games:
 L畉p tr狸nh Games b畉ng Java 動畛c ph叩t tri畛n
m畉nh m畉. D湛ng Java c坦 th畛 vi畉t 動畛c games
cho m叩y destop v c叩c thi畉t b畛 di 畛ng.
35
JDK  JAVA DEVELOPMENT KIT
JDK- Java Development Kit- B畛 c担ng c畛 ph叩t tri畛n 畛ng d畛ng
Java bao g畛m 4 thnh ph畉n: Classes, Compiler,
Debugger, Java Runtime Environment.
 JDK 1.0 1996
 JDK 1.1 1997
 JDK 1.2 1998
 JDK 1.3 2000
 Java 1.4 2002
 Java 5 (1.5) 2004
 Java 6 2006
 JDK 6.18 2010
 Java 7 2011
 JDK 8 2014
 JDK 9 2017
 JDK 10 2018
36
JDK  JAVA DEVELOPMENT KIT
 Bao g畛m:
 javac Ch動董ng tr狸nh d畛ch chuy畛n m達 ngu畛n sang bytecode
 java B畛 th担ng d畛ch: Th畛c thi java application
 appletviewer B畛 th担ng d畛ch: Th畛c thi java applet m
kh担ng c畉n s畛 d畛ng tr狸nh duy畛t nh動 Nestcape, FireFox
hay IE, v.v.
 javadoc B畛 t畉o ti li畛u d畉ng HTML t畛 m達 ngu畛n v ch炭
th鱈ch
 jdb B畛 g畛 l畛i (java debugger)
 javap Tr狸nh d畛ch ng動畛c bytecode
 jar D湛ng 畛 坦ng g坦i l動u tr畛 c叩c module vi畉t b畉ng Java
(t畉o ra file u担i .jar), l ph動董ng ph叩p ti畛n l畛i 畛 ph但n ph畛i
nh畛ng ch動董ng tr狸nh Java.
37
JVM  JAVA VIRTUAL MACHINE
KI畛U D畛CH C畛A CC TRNH BIN D畛CH NGN NG畛 C敵
38
JVM  JAVA VIRTUAL MACHINE
 Tr狸nh bi棚n d畛ch chuy畛n m達 ngu畛n thnh t畉p c叩c
l畛nh kh担ng ph畛 thu畛c vo ph畉n c畛ng c畛 th畛.
 Tr狸nh th担ng d畛ch tr棚n m畛i m叩y chuy畛n t畉p l畛nh
ny thnh ch動董ng tr狸nh th畛c thi
 M叩y 畉o t畉o ra m畛t m担i tr動畛ng 畛 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
QUY TRNH BIN D畛CH V THNG D畛CH C畛A JAVA:
39
Java
Source
(*.java)
Java Compiler
(javac)
Java
Object
(*.class)
Java Virtual Machine
M達 畛i t動畛ng 動畛c x叩c minh
v n畉p vo m叩y 畉o Java
Computer Operating System
Tr狸nh th担ng d畛ch ki畛m so叩t t畉t c畉 c叩c
truy畛n th担ng v畛i OS c畛a m叩y t鱈nh th畛c
Java Interpreter
(java)
Ch動董ng tr狸nh
動畛c x畛 l箪 b畛i
tr狸nh th担ng d畛ch
JVM  JAVA VIRTUAL MACHINE
40
JVM  JAVA VIRTUAL MACHINE
 JVM l m畛t ph畉n m畛m d畛a tr棚n c董 s畛 m叩y t鱈nh
畉o. JVM c滴ng 動畛c xem nh動 l m畛t h畛 i畛u
hnh thu nh畛.
 M叩y 畉o ph畛 thu畛c vo Platform (ph畉n c畛ng, OS),
n坦 cung c畉p m担i tr動畛ng th畛c thi cho Java (畛c
l畉p v畛i platform).
 N坦 thi畉t l畉p cho c叩c m達 Java 達 bi棚n d畛ch c坦 m畛t
c叩i nh狸n trong su畛t (trasparence) v畛 c叩c ph畉n
c畛ng b棚n d動畛i.
41
IDE  INTEGRATED DEVELOPMENT ENVIRONMENT
 IDE: trong ph畉n m畛m m叩y t鱈nh, IDE 畛 ch畛 畉n m畛t b畛
c叩c c担ng c畛 ph畉n m畛m 畛 so畉n th畉o, bi棚n d畛ch, li棚n k畉t,
g畛 r畛i, vv V鱈 d畛 nh動 b畛 Visual Studio c畛a Microsoft.
 IDE gi炭p ph叩t tri畛n 畛ng d畛ng nhanh ch坦ng v hi畛u qu畉
h董n. 董n gi畉n h坦a qu叩 tr狸nh ph叩t tri畛n ph畉n m畛m
 M畛t s畛 IDE dnh cho l畉p tr狸nh Java l:
 JCreator
 NetBeans
 Eclipse
 EditPlus
 Borland Jbuilder
 Java Studio c畛a Sun
Ad

Recommended

Bi gi畉ng l畉p tr狸nh Java c董 b畉n - Java Programming
Bi gi畉ng l畉p tr狸nh Java c董 b畉n - Java Programming
Vntalking Blog
gioi thieu ve java
gioi thieu ve java
Dat Ngo
Gioi thieu ve_java
Gioi thieu ve_java
V滴 Trung 担ng
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棚 Vn
Gt java080102005
Gt java080102005
Ton 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棚n
Tr畉n Thi棚n 畉i
OOP in Java - Ver1.1
OOP in Java - Ver1.1
vdlinh08
Core java 2
Core java 2
. .
Bai01 oop overview
Bai01 oop overview
Nhu畉n L棚 Vn
L畉p tr狸nh h動畛ng 畛i t動畛ng - Program Java
L畉p tr狸nh h動畛ng 畛i t動畛ng - Program Java
thaikhang1410
M01
M01
lehuuphuoc147
Core java 2
Core java 2
Hu畛nh Qu畛c Th畉ng
Print_to_OOP.pdf
Print_to_OOP.pdf
cLong52
L畉p Tr狸nh H動畛ng 畛i T動畛ng trong Java ( Vietnamese )
L畉p Tr狸nh H動畛ng 畛i T動畛ng trong Java ( Vietnamese )
担ng L動董ng
[Cntt] bi gi畉ng java khtn hcm
[Cntt] bi gi畉ng java khtn hcm
Hong Phuoc Nguyen
Giao trinh java 2013
Giao trinh java 2013
B湛i Vn Thu畛c
M畛t s畛 ng担n ng畛 l畉p tr狸nh ph畛 bi畉n hi畛n nay - Popular programming languages n...
M畛t s畛 ng担n ng畛 l畉p tr狸nh ph畛 bi畉n hi畛n nay - Popular programming languages n...
Son Le
OOP_02_Java can ban.pdf
OOP_02_Java can ban.pdf
ssuserd01a5c
LTJAVA_TV_際際滷s.ppt
LTJAVA_TV_際際滷s.ppt
ssuserf603dc1
Lap trinh HDT Java, Object-Oriented Programming in Java
Lap trinh HDT Java, Object-Oriented Programming in Java
vdlinh08
[Cntt] all java
[Cntt] all java
Hong Phuoc Nguyen
S董 l動畛c v畛 Java
S董 l動畛c v畛 Java
i畛p L棚
Giao trinh java co ban tieng viet
Giao trinh java co ban tieng viet
Hello World
Gi叩o Tr狸nh Java C董 B畉n ( Vietnamese)
Gi叩o Tr狸nh Java C董 B畉n ( Vietnamese)
担ng L動董ng
Giao trinh java_can_ban_cho_sinh_vien
Giao trinh java_can_ban_cho_sinh_vien
phan de
Gi叩o tr狸nh java c董 b畉n ti畉ng vi畛t
Gi叩o tr狸nh java c董 b畉n ti畉ng vi畛t
D動董ng Nh畉t
lap-trinh-mang-voi-ngon-ngu-java
lap-trinh-mang-voi-ngon-ngu-java
Truong NGUYEN
878 lap-trinh-mang-voi-ngon-ngu-java-140320051255-phpapp01(1)
878 lap-trinh-mang-voi-ngon-ngu-java-140320051255-phpapp01(1)
Anh Quoc

More Related Content

Similar to 0-Gioi thieu.pdfqwdqwwwwwwwwwwwwwwwwdqwdqw (20)

Bai01 oop overview
Bai01 oop overview
Nhu畉n L棚 Vn
L畉p tr狸nh h動畛ng 畛i t動畛ng - Program Java
L畉p tr狸nh h動畛ng 畛i t動畛ng - Program Java
thaikhang1410
M01
M01
lehuuphuoc147
Core java 2
Core java 2
Hu畛nh Qu畛c Th畉ng
Print_to_OOP.pdf
Print_to_OOP.pdf
cLong52
L畉p Tr狸nh H動畛ng 畛i T動畛ng trong Java ( Vietnamese )
L畉p Tr狸nh H動畛ng 畛i T動畛ng trong Java ( Vietnamese )
担ng L動董ng
[Cntt] bi gi畉ng java khtn hcm
[Cntt] bi gi畉ng java khtn hcm
Hong Phuoc Nguyen
Giao trinh java 2013
Giao trinh java 2013
B湛i Vn Thu畛c
M畛t s畛 ng担n ng畛 l畉p tr狸nh ph畛 bi畉n hi畛n nay - Popular programming languages n...
M畛t s畛 ng担n ng畛 l畉p tr狸nh ph畛 bi畉n hi畛n nay - Popular programming languages n...
Son Le
OOP_02_Java can ban.pdf
OOP_02_Java can ban.pdf
ssuserd01a5c
LTJAVA_TV_際際滷s.ppt
LTJAVA_TV_際際滷s.ppt
ssuserf603dc1
Lap trinh HDT Java, Object-Oriented Programming in Java
Lap trinh HDT Java, Object-Oriented Programming in Java
vdlinh08
[Cntt] all java
[Cntt] all java
Hong Phuoc Nguyen
S董 l動畛c v畛 Java
S董 l動畛c v畛 Java
i畛p L棚
Giao trinh java co ban tieng viet
Giao trinh java co ban tieng viet
Hello World
Gi叩o Tr狸nh Java C董 B畉n ( Vietnamese)
Gi叩o Tr狸nh Java C董 B畉n ( Vietnamese)
担ng L動董ng
Giao trinh java_can_ban_cho_sinh_vien
Giao trinh java_can_ban_cho_sinh_vien
phan de
Gi叩o tr狸nh java c董 b畉n ti畉ng vi畛t
Gi叩o tr狸nh java c董 b畉n ti畉ng vi畛t
D動董ng Nh畉t
lap-trinh-mang-voi-ngon-ngu-java
lap-trinh-mang-voi-ngon-ngu-java
Truong NGUYEN
878 lap-trinh-mang-voi-ngon-ngu-java-140320051255-phpapp01(1)
878 lap-trinh-mang-voi-ngon-ngu-java-140320051255-phpapp01(1)
Anh Quoc
L畉p tr狸nh h動畛ng 畛i t動畛ng - Program Java
L畉p tr狸nh h動畛ng 畛i t動畛ng - Program Java
thaikhang1410
Print_to_OOP.pdf
Print_to_OOP.pdf
cLong52
L畉p Tr狸nh H動畛ng 畛i T動畛ng trong Java ( Vietnamese )
L畉p Tr狸nh H動畛ng 畛i T動畛ng trong Java ( Vietnamese )
担ng L動董ng
[Cntt] bi gi畉ng java khtn hcm
[Cntt] bi gi畉ng java khtn hcm
Hong Phuoc Nguyen
M畛t s畛 ng担n ng畛 l畉p tr狸nh ph畛 bi畉n hi畛n nay - Popular programming languages n...
M畛t s畛 ng担n ng畛 l畉p tr狸nh ph畛 bi畉n hi畛n nay - Popular programming languages n...
Son Le
OOP_02_Java can ban.pdf
OOP_02_Java can ban.pdf
ssuserd01a5c
LTJAVA_TV_際際滷s.ppt
LTJAVA_TV_際際滷s.ppt
ssuserf603dc1
Lap trinh HDT Java, Object-Oriented Programming in Java
Lap trinh HDT Java, Object-Oriented Programming in Java
vdlinh08
S董 l動畛c v畛 Java
S董 l動畛c v畛 Java
i畛p L棚
Giao trinh java co ban tieng viet
Giao trinh java co ban tieng viet
Hello World
Gi叩o Tr狸nh Java C董 B畉n ( Vietnamese)
Gi叩o Tr狸nh Java C董 B畉n ( Vietnamese)
担ng L動董ng
Giao trinh java_can_ban_cho_sinh_vien
Giao trinh java_can_ban_cho_sinh_vien
phan de
Gi叩o tr狸nh java c董 b畉n ti畉ng vi畛t
Gi叩o tr狸nh java c董 b畉n ti畉ng vi畛t
D動董ng Nh畉t
lap-trinh-mang-voi-ngon-ngu-java
lap-trinh-mang-voi-ngon-ngu-java
Truong NGUYEN
878 lap-trinh-mang-voi-ngon-ngu-java-140320051255-phpapp01(1)
878 lap-trinh-mang-voi-ngon-ngu-java-140320051255-phpapp01(1)
Anh Quoc

0-Gioi thieu.pdfqwdqwwwwwwwwwwwwwwwwdqwdqw

  • 1. PH働NG PHP L畉P TRNH H働畛NG 畛I T働畛NG GI畛I THI畛U
  • 2. GI畛I THI畛U MN H畛C M担n h畛c: PH働NG PHP L畉P TRNH H働畛NG 畛I T働畛NG M達 m担n h畛c: TI189 nh坦m HK1.CQ.02 S畛 t鱈n ch畛: 4 (3+1) 2
  • 3. Chi ti畉t bi gi畉ng Gi畛i thi畛u v畛 Java 畛i t動畛ng, L畛p, t鱈nh 坦ng g坦i trong OOP K畉 th畛a (Inheritance) L畛p tr畛u t動畛ng (Abstract) T鱈nh a h狸nh (Polymorphism) Collection trong Java X畛 l箪 bi畛t l畛 lu畛ng (Exception) S董 畛 l畛p (Class Diagram) trong UML L畛p l畛ng nhau (Nested class) M畉u thi畉t k畉 (Design pattern) 3
  • 4. Ti li畛u [1] Janet J. Prichard, Frank M. Carrano, [2011], Data Abstraction and Problem Solving with JAVA: Walls & Mirrors, 3rd Edition, Pearson Education, NJ. [2] Bruce Eckel, [2006], Thinking in Java, 4th Edition, Pearson Education, NJ. [3] Cay S. Horstmann, Gary Cornell, [2013], Core Java Volume I - Fundamentals, 9th Edition, Pearson Education, NJ. [4] Craig Larman, [2004], Applying UML and Patterns: An Introdution to Object-Oriented Analysis and Design and Iterative Development, 3rd Edition, Addison Wesley Professional, Boston 4
  • 5. M達 ngu畛n tham kh畉o https://introcs.cs.princeton.edu/java/home/ 5
  • 6. T鱈nh i畛m m担n h畛c 叩nh gi叩 qu叩 tr狸nh 25% Tham d畛 l畛p: 10% N畛p bi t畉p theo 畛nh k畛 15% Ki畛m tra gi畛a k畛 25% M担 h狸nh ho叩 v ci 畉t bi to叩n th畛c t畉 Ki畛m tra cu畛i k畛 50% Th畛c hnh: 90 ph炭t 6
  • 7. KI畛M TRA CU畛I K畛 Cho m担 t畉 bi to叩n th畛c t畉: + Y棚u c畉u thi畉t k畉 s董 畛 l畛p + Ph但n t鱈ch v x叩c 畛nh l畛p, l畛p k畉 th畛a, a h狸nh + Ci 畉t 畛ng d畛ng hon ch畛nh d畛a tr棚n thi畉t k畉 7
  • 8. THNG TIN LIN H畛 畉ng Nh動 Ph炭 Email: phudn@tdmu.edu.vn ST & Zalo: 08888.16786 8
  • 10. L畛CH S畛 RA 畛I C畛A JAVA
  • 11. 11 L畛CH S畛 RA 畛I C畛A JAVA Cu畛i nm 1990, James Gosling v c叩c c畛ng s畛 動畛c c担ng ty Sun Microsystems giao nhi畛m v畛 x但y d畛ng ph畉n m畛m l畉p tr狸nh cho c叩c m畉t hng i畛n t畛 d但n d畛ng nh畉m m畛c 鱈ch ci ch動董ng tr狸nh vo c叩c b畛 x畛 l箪 c畛a c叩c thi畉t b畛 nh動 VCR, l嘆 n動畛ng, PDA (personal data assistant).
  • 12. 12 L畛CH S畛 RA 畛I C畛A JAVA L炭c 畉u Gosling v c叩c c畛ng s畛 畛nh ch畛n ng担n ng畛 C++ nh動ng th畉y r畉ng C++ c坦 nh畛ng h畉n ch畉. Ch動董ng tr狸nh vi畉t b畉ng C++ khi chuy畛n sang ch畉y tr棚n m畛t h畛 th畛ng m叩y c坦 b畛 vi x畛 l箪 kh叩c th狸 嘆i h畛i ph畉i bi棚n d畛ch l畉i. Gosling quy畉t 畛nh x但y d畛ng h畉n m畛t ng担n ng畛 m畛i d畛a tr棚n n畛n ng担n ng畛 C,C++ v 畉t t棚n l Oak (c但y s畛i, v狸 ph嘆ng lm vi畛c c畛a Gosling nh狸n ra m畛t c但y s畛i). Oak 嘆i h畛i ph畉i 畛c l畉p c畉u tr炭c n畛n (ph畉n c畛ng, OS) do thi畉t b畛 c坦 th畛 do nhi畛u nh s畉n xu畉t kh叩c nhau (Platform independent).
  • 13. 13 1993, Internet v Web b湛ng n畛, Sun chuy畛n Oak thnh m畛t m担i tr動畛ng l畉p tr狸nh Internet v畛i t棚n d畛 叩n l Java. 1995: Oak 畛i t棚n v畛i t棚n ch鱈nh th畛c l Java. Java l t棚n m畛t h嘆n 畉o c坦 tr畛ng nhi畛u c ph棚 m nh坦m nghi棚n c畛u ph叩t tri畛n 達 tham quan v lm vi畛c. M畛c 鱈ch c畛a Java 畛 ph叩t tri畛n 畛ng d畛ng cho c叩c thi畉t b畛 i畛n t畛 th担ng minh, 畛 t畉o c叩c trang web c坦 n畛i dung 畛ng (applet). Hi畛n nay Java 動畛c s畛 d畛ng 畛 ph叩t tri畛n nhi畛u lo畉i 畛ng d畛ng kh叩c nhau nh動 c董 s畛 d畛 li畛u, m畉ng, Internet, games, vi畛n th担ng, L畛CH S畛 RA 畛I C畛A JAVA
  • 14. M畛T S畛 畉C TNH C畛A JAVA
  • 15. 15 M畛T S畛 畉C TNH C畛A JAVA 董n gi畉n. Kh畉 chuy畛n. H動畛ng 畛i t動畛ng. Ph但n t叩n a ti畛u tr狸nh (multithread). An ton. Bi棚n d畛ch v th担ng d畛ch Gi畉i ph坦ng b畛 nh畛 (Garbage Collection)
  • 16. 16 M畛T S畛 畉C TNH C畛A JAVA 董n gi畉n( simple): Java t動董ng t畛 nh動 C++ nh動ng b畛 b畛t c叩c 畉c t鱈nh ph畛c t畉p c畛a C++ nh動 qu畉n l箪 b畛 nh畛, pointer, overload to叩n t畛, kh担ng d湛ng include, b畛 struct, union. Java 動畛c k畉 th畛a t畛 C++, v 動畛c lo畉i b畛 i c叩c t鱈nh nng kh坦 nh畉t c畛a C++ n棚n java d畛 s畛 d畛ng h董n. T鱈nh kh畉 chuy畛n (portable): c畛a java do ch動董ng tr狸nh bi棚n d畛ch t畉o ra m達 byte (bytecodes) kh担ng ph畛 thu畛c h畛 th畛ng m叩y s畛 d畛ng. Bytecodes l t畉p h畛p c叩c c但u l畛nh t動董ng t畛 nh動 l畛nh m達 m叩y (machine code), n坦 動畛c t畉o ra khi m畛t ch動董ng tr狸nh Java 動畛c bi棚n d畛ch xong.
  • 18. 18 M畛T S畛 畉C TNH C畛A JAVA T鱈nh h動畛ng 畛i t動畛ng (OO): H動畛ng 畛i t動畛ng trong Java t動董ng t畛 nh動 C++ nh動ng Java l m畛t ng担n ng畛 l畉p tr狸nh h動畛ng 畛i t動畛ng hon ton, kh担ng th畛 vi畉t m畛t 畛ng d畛ng h動畛ng th畛 t畛c trong Java T畉t c畉 m畛i th畛 畛 c畉p 畉n trong Java 畛u li棚n quan 畉n c叩c 畛i t動畛ng 動畛c 畛nh ngh挑a tr動畛c, th畉m ch鱈 hm ch鱈nh (hm main) c畛a m畛t ch動董ng tr狸nh vi畉t b畉ng Java c滴ng ph畉i 畉t b棚n trong m畛t l畛p. H動畛ng 畛i t動畛ng trong Java kh担ng c坦 t鱈nh a k畉 th畛a (multi inheritance) nh動 trong C++ m thay vo 坦 Java 動a ra kh叩i ni畛m interface 畛 h畛 tr畛 t鱈nh a k畉 th畛a.
  • 19. 19 M畛T S畛 畉C TNH C畛A JAVA Ph但n t叩n (distributed): nh畉m 畉n ph但n b畛 畛ng d畛ng tr棚n m畉ng, 畛ng d畛ng 畛c l畉p platform. C畛 th畛 l Java c坦 h畛 tr畛 c担ng ngh畛 l畉p tr狸nh RMI, CORBA, JavaBean. C叩c c担ng ngh畛 ny cho ph辿p s畛 d畛ng l畉i c叩c l畛p 達 t畉o ra, tri畛u g畛i c叩c ph動董ng th畛c (method) ho畉c c叩c 畛i t動畛ng t畛 m畛t m叩y 畛 xa. a ti畛u tr狸nh (multithread): 畉c t鱈nh ny c畛a Java cho ph辿p t畉o nhi畛u ti畉n tr狸nh, ti畛u tr狸nh c坦 th畛 ch畉y song song c湛ng m畛t th畛i i畛m v c坦 th畛 t動董ng t叩c v畛i nhau.
  • 20. 20 M畛T S畛 畉C TNH C畛A JAVA T鱈nh an ton (secure): Ki畛m tra an ton code tr動畛c khi th畛c thi, c坦 nhi畛u m畛c ki畛m tra b畉o m畉t M担i tr動畛ng th畛c thi an ton M畛c 1: M畛c ng担n ng畛, nh畛 t鱈nh bao g坦i d畛 li畛u c畛a OOP, kh担ng cho ph辿p truy c畉p tr畛c ti畉p b畛 nh畛 m ph畉i th担ng qua method. M畛c 2: M畛c Compiler, ki畛m tra an ton cho code tr動畛c khi bi棚n d畛ch. M畛c 3: M畛c Interpreter, tr動畛c khi bytecode 動畛c th畛c thi, 動畛c ki畛m tra an ton. M畛c 4: M畛c Class, c叩c class tr動畛c khi n畉p 動畛c ki畛m tra an ton.
  • 21. 21 M畛T S畛 畉C TNH C畛A JAVA Bi棚n d畛ch v th担ng d畛ch: Java l m畛t ng担n ng畛 l畉p tr狸nh c坦 kh畉 nng bi棚n d畛ch v kh畉 nng th担ng d畛ch. Ch動董ng tr狸nh ngu畛n vi畉t b畉ng ng担n ng畛 l畉p tr狸nh Java c坦 u担i *.java 畉u ti棚n 動畛c bi棚n d畛ch thnh t畉p tin c坦 u担i *.class v sau 坦 s畉 動畛c tr狸nh th担ng d畛ch th担ng d畛ch thnh m達 m叩y. Java class file c坦 th畛 動畛c d湛ng 畛 b畉t k畛 flatform no (Write Once Run Anywhere). C叩c file ti nguy棚n tr狸nh bi棚n d畛ch javac class file 畛c l畉p thi畉t b畛 Class file tr狸nh th担ng d畛ch java m達 m叩y th畛c thi, kh担ng c畉n li棚n k畉t (link)
  • 22. 22 Ch動董ng tr狸nh Java Compile r Ch動董ng tr狸nh Bytecode 畛c l畉p platform Java Runtime Interpreter/ JVM th畛c thi Javabytecode IBM Macintosh Sparc M畛T S畛 畉C TNH C畛A JAVA Minh h畛a bi棚n d畛ch v th担ng d畛ch
  • 23. 23 M畛T S畛 畉C TNH C畛A JAVA Gi畉i ph坦ng b畛 nh畛 (Garbage Collection) Java cung c畉p m畛t ti畉n tr狸nh m畛c h畛 th畛ng 畛 theo d探i vi畛c c畉p ph叩t b畛 nh畛 Garbage Collection 叩nh d畉u v gi畉i ph坦ng c叩c v湛ng nh畛 kh担ng c嘆n 動畛c s畛 d畛ng. 動畛c ti畉n hnh t畛 畛ng. C董 ch畉 ho畉t 畛ng ph畛 thu畛c vo c叩c phi棚n b畉n m叩y 畉o.
  • 25. 25 JAVA L M畛T CNG NGH畛 C担ng ngh畛 Java ph叩t tri畛n m畉nh m畉 nh畛 vo Sun Microsystem cung c畉p nhi畛u c担ng c畛, th動 vi畛n l畉p tr狸nh phong ph炭 h畛 tr畛 cho vi畛c ph叩t tri畛n nhi畛u lo畉i 畛ng d畛ng kh叩c nhau. Java bao g畛m: Ng担n ng畛 l畉p tr狸nh M担i tr動畛ng ph叩t tri畛n M担i tr動畛ng th畛c thi v tri畛n khai
  • 26. 26 CC D畉NG CNG NGH畛 JAVA Desktop applications - J2SE Phi棚n b畉n chu畉n Java 2 Standard Edition. J2SE h畛 tr畛 vi畉t c叩c 畛ng d畛ng 董n, 畛ng d畛ng client-server. Java Applications: 畛ng d畛ng Java th担ng th動畛ng tr棚n desktop Java Applets: 畛ng d畛ng nh炭ng ho畉t 畛ng trong tr狸nh duy畛t web
  • 27. 27 CC D畉NG CNG NGH畛 JAVA Server applications - J2EE N畛n t畉ng Java 2, phi棚n b畉n doanh nghi畛p - Java 2 Enterprise Edition. H畛 tr畛 ph叩t tri畛n c叩c 畛ng d畛ng th動董ng m畉i. Ch畉y tr棚n m叩y ch畛 l畛n v畛i s畛c m畉nh x畛 l箪 v dung l動畛ng b畛 nh畛 l畛n, h畛 tr畛 g畉n li畛n v畛i servlet, jsp v XML. Mobile (embedded) applications J2ME Phi棚n b畉n thu nh畛 - Java 2 Micro Edition. H畛 tr畛 vi畉t c叩c 畛ng d畛ng tr棚n c叩c thi畉t b畛 di 畛ng, kh担ng d但y, thi畉t b畛 nh炭ng,
  • 28. 28 CC D畉NG 畛NG D畛NG C畛A JAVA D湛ng Java ta c坦 th畛 vi畉t c叩c d畉ng 畛ng d畛ng sau: 畛ng d畛ng 畛c l畉p (console application) 畛ng d畛ng Applets 畛ng d畛ng giao di畛n (GUI application) 畛ng d畛ng Web (Servlet v Jsp) 畛ng d畛ng nh炭ng (embedded application) 畛ng d畛ng c董 s畛 d畛 li畛u (database application) Games.
  • 29. 29 CC D畉NG 畛NG D畛NG C畛A JAVA 畛ng d畛ng 畛c l畉p (console application): 畛ng d畛ng Console l 畛ng d畛ng nh畉p xu畉t 畛 ch畉 畛 vn b畉n t動董ng t畛 nh動 mn h狸nh Console c畛a h畛 i畛u hnh MS-DOS. L畛ai ch動董ng tr狸nh 畛ng d畛ng ny th鱈ch h畛p v畛i nh畛ng ai b動畛c 畉u lm quen v畛i ng担n ng畛 l畉p tr狸nh java. C叩c 畛ng d畛ng ki畛u Console th動畛ng 動畛c d湛ng 畛 minh h畛a c叩c v鱈 d畛 c董 b畉n li棚n quan 畉n c炭 ph叩p ng担n ng畛, c叩c thu畉t to叩n, v c叩c ch動董ng tr狸nh 畛ng d畛ng kh担ng c畉n thi畉t 畉n giao di畛n ng動畛i d湛ng 畛 h畛a.
  • 30. 30 CC D畉NG 畛NG D畛NG C畛A JAVA 畛ng d畛ng Applets: Java Applet l lo畉i 畛ng d畛ng c坦 th畛 nh炭ng v ch畉y trong trang web c畛a m畛t tr狸nh duy畛t web. T畛 khi internet m畛i ra 畛i, Java Applet cung c畉p m畛t kh畉 nng l畉p tr狸nh m畉nh m畉 cho c叩c trang web. Nh動ng g畉n 但y khi c叩c ch動董ng tr狸nh duy畛t web 達 ph叩t tri畛n v畛i kh畉 nng l畉p tr狸nh b畉ng VB Script, Java Script, HTML, DHTML, XML, c湛ng v畛i s畛 canh tranh kh畛c li畛t gi畛a Microsoft v Sun 達 lm cho Java Applet lu m畛. V cho 畉n b但y gi畛 g畉n nh動 c叩c l畉p tr狸nh vi棚n 畛u kh担ng c嘆n m畉n m v畛i Java Applet n畛a.
  • 31. 31 CC D畉NG 畛NG D畛NG C畛A JAVA 畛ng d畛ng giao di畛n (GUI application): Vi畛c ph叩t tri畛n c叩c ch動董ng tr狸nh 畛ng d畛ng c坦 giao di畛n ng動畛i d湛ng 畛 h畛a tr畛c quan gi畛ng nh動 nh畛ng ch動董ng tr狸nh 動畛c vi畉t d湛ng ng担n ng畛 l畉p tr狸nh VC++ hay Visual Basic 達 動畛c java gi畉i quy畉t b畉ng th動 vi畛n AWT v JFC. JFC (Swing) l th動 vi畛n r畉t phong ph炭 v h畛 tr畛 m畉nh m畉 h董n nhi畛u so v畛i AWT. JFC gi炭p cho ng動畛i l畉p tr狸nh c坦 th畛 t畉o ra m畛t giao di畛n tr畛c quan c畛a b畉t k畛 畛ng d畛ng no.
  • 32. 32 CC D畉NG 畛NG D畛NG C畛A JAVA 畛ng d畛ng Web: Java h畛 tr畛 m畉nh m畉 畛i v畛i vi畛c ph叩t tri畛n c叩c 畛ng d畛ng Web th担ng qua c担ng ngh畛 J2EE (Java 2 Enterprise Edition). C担ng ngh畛 J2EE hon ton c坦 th畛 t畉o ra c叩c 畛ng d畛ng Web m畛t c叩ch hi畛u qu畉 kh担ng thua k辿m c担ng ngh畛 .NET m Microsft ang qu畉ng c叩o. C担ng ngh畛 vi畉t web hi畛n c坦 c畛a Java l Servlet v Jsp, ngoi ra c嘆n c坦 s畛 h畛 tr畛 c畛a l畉p tr狸nh Socket, Java Bean, RMI v CORBA, EJB.
  • 33. 33 CC D畉NG 畛NG D畛NG C畛A JAVA 畛ng d畛ng nh炭ng: Java Sun 動a ra c担ng ngh畛 J2ME (The Java 2 Platform, Micro Edition J2ME) h畛 tr畛 ph叩t tri畛n c叩c ch動董ng tr狸nh, ph畉n m畛m nh炭ng. J2ME cung c畉p m畛t m担i tr動畛ng cho nh畛ng ch動董ng tr狸nh 畛ng d畛ng c坦 th畛 ch畉y 動畛c tr棚n c叩c thi畉t b畛 c叩 nh但n nh動: i畛n th畛ai di 畛ng (MIDlet), m叩y t鱈nh b畛 t炭i PDA hay Palm, c滴ng nh動 c叩c thi畉t b畛 nh炭ng kh叩c.
  • 34. 34 CC D畉NG 畛NG D畛NG C畛A JAVA 畛ng d畛ng c董 s畛 d畛 li畛u: Java c滴ng h畛 tr畛 l畉p tr狸nh k畉t n畛i v t動董ng t叩c 動畛c v畛i h畉u h畉t c叩c h畛 quan tr畛 CSDL n畛i ti畉ng nh動 Oracle, SQL Server, MS- Access, MySQL, Games: L畉p tr狸nh Games b畉ng Java 動畛c ph叩t tri畛n m畉nh m畉. D湛ng Java c坦 th畛 vi畉t 動畛c games cho m叩y destop v c叩c thi畉t b畛 di 畛ng.
  • 35. 35 JDK JAVA DEVELOPMENT KIT JDK- Java Development Kit- B畛 c担ng c畛 ph叩t tri畛n 畛ng d畛ng Java bao g畛m 4 thnh ph畉n: Classes, Compiler, Debugger, Java Runtime Environment. JDK 1.0 1996 JDK 1.1 1997 JDK 1.2 1998 JDK 1.3 2000 Java 1.4 2002 Java 5 (1.5) 2004 Java 6 2006 JDK 6.18 2010 Java 7 2011 JDK 8 2014 JDK 9 2017 JDK 10 2018
  • 36. 36 JDK JAVA DEVELOPMENT KIT Bao g畛m: javac Ch動董ng tr狸nh d畛ch chuy畛n m達 ngu畛n sang bytecode java B畛 th担ng d畛ch: Th畛c thi java application appletviewer B畛 th担ng d畛ch: Th畛c thi java applet m kh担ng c畉n s畛 d畛ng tr狸nh duy畛t nh動 Nestcape, FireFox hay IE, v.v. javadoc B畛 t畉o ti li畛u d畉ng HTML t畛 m達 ngu畛n v ch炭 th鱈ch jdb B畛 g畛 l畛i (java debugger) javap Tr狸nh d畛ch ng動畛c bytecode jar D湛ng 畛 坦ng g坦i l動u tr畛 c叩c module vi畉t b畉ng Java (t畉o ra file u担i .jar), l ph動董ng ph叩p ti畛n l畛i 畛 ph但n ph畛i nh畛ng ch動董ng tr狸nh Java.
  • 37. 37 JVM JAVA VIRTUAL MACHINE KI畛U D畛CH C畛A CC TRNH BIN D畛CH NGN NG畛 C敵
  • 38. 38 JVM JAVA VIRTUAL MACHINE Tr狸nh bi棚n d畛ch chuy畛n m達 ngu畛n thnh t畉p c叩c l畛nh kh担ng ph畛 thu畛c vo ph畉n c畛ng c畛 th畛. Tr狸nh th担ng d畛ch tr棚n m畛i m叩y chuy畛n t畉p l畛nh ny thnh ch動董ng tr狸nh th畛c thi M叩y 畉o t畉o ra m畛t m担i tr動畛ng 畛 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 QUY TRNH BIN D畛CH V THNG D畛CH C畛A JAVA:
  • 39. 39 Java Source (*.java) Java Compiler (javac) Java Object (*.class) Java Virtual Machine M達 畛i t動畛ng 動畛c x叩c minh v n畉p vo m叩y 畉o Java Computer Operating System Tr狸nh th担ng d畛ch ki畛m so叩t t畉t c畉 c叩c truy畛n th担ng v畛i OS c畛a m叩y t鱈nh th畛c Java Interpreter (java) Ch動董ng tr狸nh 動畛c x畛 l箪 b畛i tr狸nh th担ng d畛ch JVM JAVA VIRTUAL MACHINE
  • 40. 40 JVM JAVA VIRTUAL MACHINE JVM l m畛t ph畉n m畛m d畛a tr棚n c董 s畛 m叩y t鱈nh 畉o. JVM c滴ng 動畛c xem nh動 l m畛t h畛 i畛u hnh thu nh畛. M叩y 畉o ph畛 thu畛c vo Platform (ph畉n c畛ng, OS), n坦 cung c畉p m担i tr動畛ng th畛c thi cho Java (畛c l畉p v畛i platform). N坦 thi畉t l畉p cho c叩c m達 Java 達 bi棚n d畛ch c坦 m畛t c叩i nh狸n trong su畛t (trasparence) v畛 c叩c ph畉n c畛ng b棚n d動畛i.
  • 41. 41 IDE INTEGRATED DEVELOPMENT ENVIRONMENT IDE: trong ph畉n m畛m m叩y t鱈nh, IDE 畛 ch畛 畉n m畛t b畛 c叩c c担ng c畛 ph畉n m畛m 畛 so畉n th畉o, bi棚n d畛ch, li棚n k畉t, g畛 r畛i, vv V鱈 d畛 nh動 b畛 Visual Studio c畛a Microsoft. IDE gi炭p ph叩t tri畛n 畛ng d畛ng nhanh ch坦ng v hi畛u qu畉 h董n. 董n gi畉n h坦a qu叩 tr狸nh ph叩t tri畛n ph畉n m畛m M畛t s畛 IDE dnh cho l畉p tr狸nh Java l: JCreator NetBeans Eclipse EditPlus Borland Jbuilder Java Studio c畛a Sun