http://www.ebook.edu.vn 1
Chương 2
Gii thiu ngôn ng lp trình Java
1. Gii thiu công ngh Java
1.1 Lch s phát trin
Lch s phát trin ca Java bt đầu năm 1991 khi SUN tiến hành các d án lp trình cho
vi x lý dùng trong các thiết b đin t khác nhau. C++ không đáp ng đưc các yêu
cu này vì C++ cho đem mã ngun t máy này sang máy khác nhưng sau khi biên dch
li hoàn toàn ph thuc vào tng b vi x lý c th. Trong khi đó b vi x lý dùng trong
các thiết b đin t rt đa dng và có vòng đời khá ngn ngi. Nếu ta thay đổi b x
dn đến cn phi thay đổi trình biên dch C++, điu này gây lên tn kém. SUN đã thiết
kế mt ngôn ng lp trình mi có tính kh chuyn cao hơn đó chính là Java. Java là tên
địa phương nơi xut x ca mt loi cà phê ngon ni tiếng.
Java được chính thc công b năm 1995 và ngay lp tc đã to lên mt trào lưu
mi trên toàn thế gii và t đó đến nay vn to được sc cun hút mnh m. Bi vì
Java không ch đơn thun là mt ngôn ng lp trình mà nó là gii pháp cho nhiu vn
đề.
1.2. Cu trúc ca máy o Java (Java Virtual Machine)
Chương trình ng dng hot động bng cách s dng các đối tượng ca Java (Java
Object). Máy o Java to thành mt cu ni gia trình ng dng viết bng Java và h
điu hành.
Máy o Java bao gm các thành phn sau :
Trình np lp (Class Loader): đọc bytecode t đĩa hoc t kết ni mng.
Trình kim tra lp (Class Verifier): Kim tra các lp s không sinh ra các li nh
hưởng ti h thng khi thc thi.
Trình thc thi (Execution Unit): s thc hin các lnh được quy định trong tng
bytecode.
Trong b công c Java, tp tin java.exe chính là máy o Java.
1.3 Các đặc trưng ca Java
Java là mt môi trường độc lp (Independent Platform)
Do cu trúc ca Java nên ta có th son tho chương trình trên bt k h thng nào.
Sau khi đã được biên dch thành tp tin lp (*.class) ng dng có th thc thi bt k
h thng nào. Đó là đặc tính mà các ngôn ng khác không có.
Chương trình Java: tp hp các đối tượng
Máy o Java
H điu hành
http://www.ebook.edu.vn 2
Java là mt ngôn ng lp trình hướng đối tượng thun túy (Pure Object
Oriented Programming)
Java là mt ngôn ng lp trình hướng đối tượng thun túy, mi th trong Java đều là
đối tượng.
Java là mt ngôn ng có tính kh chuyn (Portibility)
Java có tính kh chuyn đối vi c mã ngun và bn thân mã biên dch (bytecode)
Java là môi trường x lý phân tán (Distributed Enviroments)
Bytecode không ph thuc vào h thng vì vy bytecode có th nm phân tán trên
mng. Vic liên kết vi thư vin ch được thc hin vào lúc chy chương trình do vy
mã byte thường gn nh. Chương trình Java được np dn mt cách linh hot nên
không gây quá ti cho mng. Ngoài ra, Java còn cho phép xđa tuyến đon. Cơ chế
truyn thông đip thun tin cho vic t chc mng.
Java là môi trường an toàn
Khi phát trin các ng dng phân tán thì mt trong nhng vn đề được quan tâm hàng
đầu là an toàn h thng. Java được thiết kế để đảm bo an toàn cho người dùng Java
trên mng. Java có bn tng bo an:
Tng 1: Mc ngôn ng và trình biên dch. Java không có kiu con tr. Trình biên dch
kim tra kiu rt cht ch. Mi chuyn đổi kiu đều phi được thc hin mt cách tường
minh. Trình biên dch Java t chi sinh ra mã byte nếu mã ngun không tuân th
nghiêm ngt các quy tc an toàn.
Tng 2: Trình np lp (Class Loader) Có kh năng phân bit nhng lp đến t mng và
nhng lp np t h thng. Nh kh năng phân bit như vy lp đưc np qua mng
được khng chế cht ch, không được phép thc hin các thao tác mc thp.
Tng 3: Trình kim tra mã byte. Trình này s kim tra mã byte vào lúc chy chương
trình bo đảm chương trình Java đã được biên dch mt cách đúng đắn. Khi thc hin
s không gây li nh hưởng ti h thng cũng như không đụng chm ti d liu riêng
tư trên máy khách.
Tng 4: Trình bo an. Kim tra mã byte vào lúc chy nhm bo đảm mã đang xét không
vi phm qui tc an toàn đã được thiết lp. Các thao tác ca ng dng được xem là
kh năng gây nguy him như đọc, xóa tp đều phi được Trình bo an cho phép.
Java cung cp cho người lp trình mt thư vin khng l
Java cung cp cho người lp trình mt thư vin khng l các hàm chun, gi là core
API. Các hàm chun này được đặt trong các gói.
Java có cơ chế qun lý b nh t động
Qun lý b nh là mt trong nhng vn đề phc tp đối vi C và C++. Khi thc hin
chương trình người lp trình chu trách nhim khi to các vùng nh, sau khi dùng phi
gii phóng các vùng nh này. Ch cn mt li nh có th làm cn kit tài nguyên dn
đến treo h thng.
Java đã loi b gánh nng này cho người lp trình. Các vùng nh được t động gii
phóng nếu như nó không tham chiếu đến bt k đối tượng nào đang hot động
Chi phí phát trin ng dng bng Java thp
http://www.ebook.edu.vn 3
Khi phát trin ng dng da trên công ngh Java thì s có rt nhiu công c phát trin
và dch v được cung cp min phí.
1.4. Các n bn Java
J2SE ( Java 2 Platform, Second Edition)
Đây là n bn chun, bao gm mt môi trường thi gian chy và mt tp hp các API
để xây dng mt lot các ng dng khác nhau t applet, cho ti các ng dng độc lp
chy trên các nn khác nhau, ng dng cho client cho các ng dng doanh nghip khác
nhau.
J2EE (Java 2 Platform, Enterprise Edition (J2EE)
J2EE là nn tng để xây dng các ng dng phía server.
J2ME (Java 2 Platform, Micro Edition )
n bn này cho phép xây dng các ng dng Java cho các “vi thiết b” (các thiết b
màn hình hin th và h tr b nh ti thiu, như đin thoi di động và các thiết b tr
giúp cá nhân).
1.5. Công c phát trin
SUN cung cp mt s tin ích cho phép biên dch bt li và to tài liu cho mt ng
dng Java. JDK bao gm:
javac: B biên dch để chuyn mã ngun thành bytecode.
java: B thông dch để thc thi các ng dng Java trc tiếp t tp tin lp.
apppletviewer: Thc thi Java Applet t tài liu html.
1.6. Các kiu ng dng trong Java
Có hai kiu ng dng
ng dng độc lp (Standalone Applicaiton) Cho phép lp trình như các ngôn
ng lp trình khác như Pascal, C.
ng dng ký sinh (Applet) Cho phép to ra chương trình liên kết vi các văn bn
Web và được khi động bi trình duyt h tr Java.
Để thy được s khác bit gia hai kiu ng dng nói trên chúng ta có th xem nhng
s khác bit v đặc trưng ca hai kiu ng dng bng dưới đây:
ng dng độc lp Java Applet
Khai báo lp con ca bt k lp nào
trong các gói thư vin các lp
Phi là lp con ca Applet
Giao din đồ ha Tùy chn Do trình duyt Web quyết
định
Yêu cu b nh B nh ti thiu B nh dành cho c trình
duyt và applet đó
Cách np chương trình Np bng dòng lnh Thông qua trang Web
D liu vào Thông qua các tham s trên Các tham s đặt trong tp
http://www.ebook.edu.vn 4
dòng lnh HTML gm địa ch, kích th-
c ca trình duyt
Cách thc thc hin Mi hot động được bt đầu và
kết thúc main() nh- trong
C/C++
Gi các hàm: init(), start(),
stop(), destroy(), paint()
Kiu ng dng ng dng trên các máy ch
Server. Công c phát trin phn
mm, - ng dng trên các máy
khách
Các ng dng trên Web
Bng 2.1
1.7. Cài đặt chương trình dch Java và các công c
Để cài đặt Java J2SDK ta cn ti v b J2SDK ti trang http://www.sun.com ,
trang này cp nht nhng phiên bn mi nht ca Java. Sau đó ta ti v b công c
son tho Edit Plus ti địa ch http://www.editplus.com .
Các bước cài đặt Java
Bước 1: Cài đặt J2SDK. Sau khi cài đặt xong, Java được cài đặt ti thư mc:
C:\Program Files\Java. Trong thư mc này có hai thư mc con là: jdk1.5.0_01 và
jre1.5.0_01.
Công c phát trin nm trong thư mc:
C:\Program Files\Java\jdk1.5.0_01\bin: Bao gm các công c cho phép ta phát
trin, thc thi, g ri và son tho các chương trình được viết bng ngôn ng
lp trình Java.
Môi trường thi gian chy (Runtime Environment)
Nm trong thư mc con JRE. Nó bao gm mt máy o Java, các thư vin lp, và
các tp tin h tr vic x lý các chương trình được viết bng ngôn ng lp trình
Java.
Các thư vin
Nm trong thư mc con lib. Các thư vin lp và các tp tin b tr cn cho các
công c phát trin...
Các ng dng và applet demo
Nm trong thư mc demo. Thư mc này bao gm các ví d, mã ngun lp trình
cho Java/
Bước 2: Thiết lp các biến môi trường
Biến môi trường path
Trên desktop ta kích chut phi vào biu tượng My Computer, sau đó chn th
Advanced, nháy chut vào nút lnh Enviroment Variable, xut hin ca s cho phép ta
thiết lp biến môi trường như sau:
http://www.ebook.edu.vn 5
Hình 2.1
Nháy vào nút lnh New để nhp vào thông tin v biến môi trường
Hình 2.2
Sau đó nháy chut vào nút lnh OK để hoàn thành
Thiết lp biến môi trường classpath cũng tiến hành tương t