Lập trình cơ bản với Java Tác giả: PGS.TS Trần Văn Lăng, Ths. Chu Nguyên Hoàng Minh Giúp các bạn tiếp cần gần hơn với bộ môn lập trình để trở thành một Lập trình viên suất sắc Lập trình cơ bản với Java Tác giả: PGS.TS Trần Văn Lăng, Ths. Chu Nguyên Hoàng Minh Giúp các bạn tiếp cần gần hơn với bộ môn lập trình để trở thành một Lập trình viên suất sắc
Trang 11
Môn học: Lập trình cơ bản với Java Chương I: Ngôn ngữ và công nghệ Java
ThS
Mục đính – Yêu cầu:
Sau khi học xong bài này sinh viên sẽ nắm được:
Lịch sử phát triển ngôn ngữ Java
Đặc điểm ngôn ngữ Java
Công nghệ Java
Một số công cụ phát triển ứng dụng với ngôn ngữ Java
Số tiết lên lớp: 4
Bảng phân chia thời lượng:
Trọng tâm bài giảng:
Đặc điểm của ngôn ngữ Java
Công nghệ Java
Công cụ phát triển
Trang 22
1.1 Lịch sử phát triển Java ([1] trang 1)
Sun ic o y em được biế đến như là mộ nhà n u h n cứng c c m m iệc ng hệ đi u h nh I , và h iển h n m m đặc biệ n i iếng hệ đi u h nh Solaris, hệ hống in m ng NFS (Network File System)
m Sun ic o y em bắ đ u h c hiện n c n gọi een nh m h iển h n m m ong c c hiế bị điện ử n ụng me o ing chuy n gi nh
h n m m m ng được gi o ch nhiệm h c hiện n
n đ u o ing ử ụng C để iế h n m m đi u hiển cho hiế bị như C ( i eo C e e eco e ) PDA (Pe on Digi A i n ) hưng ng y u đ
o ing h hiện ng C h ng h i ng n ngữ h ch hợ cho c ng iệc n y
g n ngữ C đủ m m o để đi u hiển hệ hống nhưng n i g y những i n đến eo hệ hống ộ c ch chi iế hơn C m nh c iế đến i nguy n hệ hống
y u c u ngư i nh h i m nh u n c c i nguy n n y Đi u n y o h nh mộ
o c n h ng cho C h nh mộ c ng cụ iế c c h n m m c độ in c y c o nh ương h ch ớn đặc biệ ong iệc đi u hiển c c hiế bị điện ử n ụng
o ing gi i uyế n đ n y b ng c ch o mộ ng n ngữ nh mới c n
g n ngữ n y c c h giống C nhưng b u c c nh n ng nguy hiểm như uy c c iế i nguy n hệ hống c c h o n ới con được hiế
ới mục đ ch o nh ương h ch c o (ch y n nhi u o i chi h c nh u) gi c c nh
n u c hể h y đ i iểu h n cứng m h ng h i iế i h n m m ước đ
Khi ng n ngữ ư ng h nh Wo Wi e Web cũng đ ng bước o h i ỳ
h iển m nh mẽ c c chuy n gi củ Sun h y ng đ y cũng ng n ngữ đặc biệ
h ch hợ cho In e ne o n m 4 họ đã đư Web unne mộ nh uyệ Web
iế b ng ( u n y đ i n h nh Ho ) m 5 đ i n h nh ( o
ng ới mộ nhãn hiệu hương hẩm đã đ ng ) được nh i n i SunWo 5
Từ đ nh nh ch ng h iển được em mộ chuẩn c ng nghiệ cho In e ne
m nhi u nh n u h n m m cũng như h n cứng đứng đ u hế giới
đã mu b n uy n c ng nghệ ừ Sun như A obe o n I c ome i
ic o o o e c e Sym n ec C c hãng n y ẽ ế hợ o c c n hẩm
Trang 33
S o rc e
C o e J a v a
(* ja v a )
W in 9 x /W in N T .
L in u x /U n ix
B y te c o e s
J a v a (* c la s )
W in 3
L in u x
S o la ris
…
củ họ như: c c h n m m hệ đi u h nh c ng cụ h iển
1.2 Các đặc trưng của Java ([1] trang 2)
Đơn gi n (Sim e)
Hướng đối ượng ( bjec ien e )
Độc h n cứng hệ đi u h nh (Po b e)
nh ( obu )
o m (Secu e)
Phân tán (Distributed)
Đ uồng ( u i h e e )
Động (Dyn mic)
Đơn giản
hững ngư i hiế ế mong muốn h iển mộ ng n ngữ học uen huộc
ới đ ố ngư i nh Do y o i b c c đặc ưng hức củ C C như
h o c con h o c định nghĩ chồng o n ử (o e o o e o ing)… h ng
ử ụng ệnh “go o” cũng như i e he e ( h) C u c uc union cũng được o i b
h i
Hướng đối tượng
được hiế ế o y u nh m h nh hướng đối ượng y ong i u điểm ữ iệu c c hương hức h o c n ữ iệu đ Dữ iệu c c hương hức
m ng h i c ch ứng ử củ mộ đối ượng ong
Độc lập phần cứng và hệ điều hành (Tính khả chuyển)
Trang 44
Đ y h n ng mộ chương nh được iế i mộ m y nhưng c hể ch y được
b ỳ đ u Ch ng được hể hiện mức mã nguồn mức nhị h n
Ở mức mã nguồn ngư i nh c n m iểu cho m i biến Kiểu ữ iệu ong
nh u n cho c c c hệ đi u h nh h n cứng h c nh u c i ng mộ hư iện c c ớ cơ y chương nh được iế n mộ m y c hể ịch ch y
ơn u n c c o i m y h c m h ng c n iế i
T nh độc mức nhị h n mộ chương nh đã bi n ịch c hể ch y n nhi u
n n ( h n cứng hệ đi u h nh) h c m h ng c n ịch i mã nguồn Tuy y c n c
ph n m m m y o ( ẽ đ c đến h n u) ho động như mộ nh h ng ịch i
m y h c hi
Đối ới c c chương nh iế b ng C C hoặc mộ ng n ngữ n o h c nh bi n ịch ẽ chuyển ệnh h nh mã m y (m chine co e) h y ệnh củ bộ i ử hững ệnh n y hụ huộc o CP hiện i n m y b n n hi muốn ch y n o i CP
h c ch ng h i bi n ịch i chương nh
i ư ng h iển củ được chi m h i h n: T nh bi n ịch nh h ng ịch Kh ng như C h y C nh bi n ịch củ chuyển mã nguồn h nh ng
by eco e độc ới h n cứng m c hể ch y n b ỳ CP n o
hưng để h c hi chương nh ưới ng by eco e i m i m y c n h i c nh h ng ịch củ h y còn gọi m y o y o chuyển by eco e h nh mã ệnh
m CP h c hi được
Mạnh mẽ
Java ng n ngữ y u c u chặ chẽ iểu ữ iệu Ph i h i b o iểu ữ iệu
ư ng minh hi iế chương nh iểm c bi n ịch c ong h i gi n h ng ịch y o i b mộ mộ ố o i i nh nh định
h ng ử ụng con c c h o n con iểm c c c uy nh đến m ng chu i hi h c hi để đ m b o ng c c uy nh đ h ng ngo i giới h n
ch hước iểm chuyển đ i iểu ữ iệu ừ ng n y ng ng h c c h c
Trang 55
thi
T ong c c m i ư ng nh uy n hống nh i n h i m nh c h
bộ nhớ T ước hi chương nh ế h c h h i gi i h ng bộ nhớ đã c n đ n y inh hi nh i n u n gi i h ng bộ nhớ đã in c ước đ T ong chương nh
nh i n h ng h i b n m đến iệc c h bộ nhớ Qu nh c h gi i
h ng con được h c hiện động nh bộ hu gom những đối ượng h ng còn ử ụng nữ (g b ge co ec ion)
Cơ chế b y i củ gi đơn gi n h nh ử i hồi hục u i
Bảo mật
i u e nguy n nh n g y o ắng ong iệc ử ụng m y nh T ước hi
c c c nh i n h i u i u c c ệ ước hi i h y h c hiện chúng
Th ng hư ng iệc n y cũng h ng o i ừ ho n o n i u go i chương nh hi
h c hi c h n ng m iếm đọc c c h ng in nh y c m n m y củ ngư i ử ụng
m ngư i ử ụng h ng h h y biế
cung c mộ m i ư ng u n h c hi chương nh cho ng h ng
c mộ đo n mã n o n o n c y h ng chỉ ng n ngữ nh hu n
u m còn cung c nhi u mức để iểm o nh n o n hi h c hi chương nh
Ở mức đ u i n ữ iệu c c hương hức được đ ng g i b n ong ớ Ch ng chỉ được uy u h ng u c c gi o iện m ớ cung c h ng h ợ con
y h ng cho h uy u bộ nhớ c iế cũng ng n chặn h ng cho uy u
h ng in b n ngo i ch hước củ m ng b ng ỹ hu n cũng cung c ỹ hu
ọn c ong bộ nhớ C c đặc ưng n y o cho n o n ối đ c h n ng cơ động c o
T ong mức hứ h i nh bi n ịch iểm o để đ m b o mã n o n u n heo c c nguy n ắc củ
ức hứ b được đ m b o b i nh h ng ịch Ch ng iểm em by eco e c
đ m b o c c uy ắc n o n ước hi h c hi
ức hứ ư iểm o iệc n c c ớ o bộ nhớ để gi m iệc i h m giới
h n uy u ước hi n o hệ hống
Trang 66
Phân tán
c hể ng để y ng c c ứng ụng c hể m iệc n nhi u h n cứng
hệ đi u h nh gi o iện đồ họ được hiế ế h ợ cho c c ứng ụng ch y n
m ng y ch ng được ử ụng ộng ãi như c ng cụ h iển n In e ne nơi ử ụng nhi u n n ng khác nhau
Đa luồng (đa tuyến đoạn)
Chương nh đ uồng ( u i h e ing) để h c hi c c c ng iệc đồng h i
Ch ng cũng cung c gi i h đồng bộ giữ c c uồng Đặc nh h ợ đ uồng n y cho
h y ng c c ứng ụng n m ng hiệu u
Động
mộ ng n ngữ động hơn C hoặc C được hiế ế để h ch hợ ới
m i ư ng m Thư iện c hể được b ung ng c c hương hức mới c c huộc
nh C c chương nh chứ nhi u h ng in h c hi nh m iểm o uy nh đối ượng c ch ỵ Đi u n y cho h h n ng i n ế mã động
1.3 Kiến trúc của Java ([1] trang 6, [2] trang 2)
Cũng như c c ng n ngữ nh h c c n mộ nh ịch để chuyển đ i mã nguồn ng ứng ụng h c hi được C c nh bi n ịch h ng hư ng như ic o o
i u C cho Win ow ẽ bi n ịch chương nh ng mã ệnh h c hiện n mộ o i
h n cứng nh định n o đ ch y ưới hệ đi u h nh Win ow T i i nh bi n ịch
i chuyển chương nh nguồn h nh “ng n ngữ m y” củ m y o ( i u chine) gọi y eCo e C c y eCo e n y c hể ch y được n mọi
o i m y mi n ong m y đã hiế m y o y o ớ ung gi n giữ
nh ứng ụng hệ đi u h nh
Java API (Application programming
Interface) JVM (Java Virtual Machine)
Java Platform
Trang 7
7
Operating System: Unix, Linux, Windows,
Macintosh, OS/2
y o được hiế b i h n m m chứ h ng h i h n cứng Sun
ic o y em mộ ố c ng y điện ử h c đ ng iến h nh nghi n cứu h iển chi Pico nh m mục đ ch o m y o b ng h n cứng C c chi n y cho h đư
o c c hiế bị điện ử mộ c ch ng hơn đồng h i m ng ốc độ ối đ cho
c c iế b ng h n m m
ộ DK ( De e o men Ki ) o Sun cung c :
Java Versions Release Dates Version Release
Date
Code Name
JDK 1.0 1996-01-23 Oak? Java first released to the
public
Java version 1.1 1997-02-18 Sparkler
JDK 1.1.4 1997-09-12 Sparkler
JDK 1.1.5 1997-12-03 Pumpkin
JDK 1.1.6 1998-04-24 Abigail
JDK 1.1.7 1998-09-28 Brutus
JDK 1.1.8 1999-04-08 Chelsea
J2SE 1.2 1998-12-04 Playground
J2SE 1.2.1 1999-03-30 (none)
J2SE 1.2.2 1999-07-08 Cricket
J2SE 1.3 2000-05-08 Kestrel
J2SE 1.3.1 2001-05-17 Ladybird
J2SE 1.4.0 2002-02-13 Merlin
J2SE 1.4.1 2002-09-16 Hopper (Grasshopper)
Trang 88
J2SE 1.4.2 2003-06-26 Mantis
J2SE 1.5.0
(5.0 to salesmen)
2004-09-29 Tiger
J2SE 1.5.1 Never Dragonfly, Dragon
J2SE 6.0 (1.6.0) 2006-12-12 Mustang
J2SE 7.0 (1.7.0) 2011 Dolphin
C c nh iện ch củ DK ong hư mục I b o gồm:
- j c: ộ bi n ịch m nhiệm ụ chuyển mã nguồn ng y eCo e
- j : ộ h ng ịch h c hi c c ứng ụng c iế ừ in ớ
- e iewe : ộ nh h ng ịch h c hi c c A e ừ in HT
- j oc: T o i iệu ng HT ừ mã nguồn c ng ới c c ch h ch b n ong
- j b ( Debuge ): Cho h b n h c hiện ừng òng ong chương nh đặ c c điểm ừng ( e oin ) em gi ị c c biến
- j h: T o in He e củ C cho h C gọi h m hoặc ngược i
- j : T nh ịch ngược j hiển hị c c h m ữ iệu củ mộ in ớ c
- j : Kế hợ n n nhi u in củ ứng ụng h nh mộ in hồ ơ j
Từ 4 n h ợ 3 m i ư ng:
- S n E i ion: chuẩn nh cho h u hế m i ư ng h iển ứng ụng Java
- En e i e E i ion: cho m i ư ng h ợ iến c Web D b e E …
- obi e: i ư ng hư iện ng cho nh c c hiế bị đi u hiển như
đồ gi ụng điện ho i i động…
Trang 99
1.4 Công nghệ và ứng dụng ([2] trang 4)
1.4.1 Công nghệ Java
Công nghệ Java phát triển m nh mẽ nh vào Sun Microsystem cung c p nhi u công cụ hư iệ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
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 h ng hư ng trên desktop
Java Applets: ứng dụng nhúng ho động trong trình duyệt web
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 hương m i
Ch y trên máy chủ lớn với sức m nh xử ung ượ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ị i động, không dây, thiết bị nh ng …
1.4.2 Ứ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ơ dữ liệu (database application)
Games
Ứng dụng độc lập (console application):
Trang 1010
Ứng dụng Console là ứng dụng nh p xu t chế độ n b n ương như m n h nh Console của hệ đi u hành MS-DOS
Lọ i chương nh ứng dụng này thích hợp với những i bước đ u làm quen với ngôn ngữ
l p trình java
Các ứng dụng kiểu Console hư ng được ng để minh họa các ví dụ cơ b n liên
u n đến cú pháp ngôn ngữ, các thu o n c c chương nh ứng dụng không c n thiết đến giao diện ngư i ng đồ họa
Ứ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 đ i, Java Applet cung c p một kh n ng p trình m nh mẽ cho các trang web
hưng g n đ y hi c c chương nh uyệ web đã h iển với kh n ng p trình
b ng Sc i Sc i HT DHT … cùng với s canh tranh khốc liệt giữ ic o o Sun đã m cho A e u m cho đến bây gi g n như c c p
nh i n đ u h ng còn “mặn m ” ới Java Applet nữa
Ứng dụng giao diện (GUI application):
Việc phát triển c c chương nh ứng dụng có giao diện ngư i ng đồ họa tr c quan giống như những chương nh được viết dùng ngôn ngữ l p trình VC++ hay Visual
ic đã được java gi i quyết b ng hư iện AWT và JFC
FC (Swing) hư iện r t phong phú và h trợ m nh mẽ hơn nhi u so với AWT
FC gi 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 nào
Ứ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 hoàn toàn 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ệ ET m ic o đ ng u ng cáo