Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin Tr ng i H c Sài Gòn

Khoa Công Ngh Thông Tin -- - - - - --

án môn h c:

Seminar Công Ngh Ph n M m 
tài: Ngôn Ng Lp Trình Java

GVHD: ThS. Cao Thái Ph ng Thanh Th c Hi n: L ng An Vinh 3107410206 Hoàng V oàn 3107410152 Hu nh ng Th o Ti n 3107410198

Seminar Công Ngh Phn Mm Tìm Hiu Java

Trang 1

2001 Trang 2 Seminar Công Ngh Phn Mm Tìm Hiu Java . Linux.1. 1999 J2SE 1.2 (Cricket) 8 tháng 7. bao g m ông James Gosling. 1998 JDK 1. Mac OS. h ng i t ng và quen thu c". 1999 J2SE 1.subby Sau khi Oracle mua l i công ty Sun Microsystems n m 2009-2010.1. h d nh ngôn ng ó thay cho C++. c th c thi v i "hi u su t cao".. 1997 JDK 1. HP. m t s công ty. Công ty Sun Microsystems ang gi b n quy n và phát tri n Java th ng xuyên. Run Anywhere" (WORA)). th c thi kh p n i" ("Write Once.2. phân lu ng và n ng ng". 1998 JDK 1.2 (Playground) 4 tháng 12. nh ng các tính n ng gi ng Objective C.7 (Brutus) 28 tháng 9. B.4 (Sparkler) 12 tháng 9. Ngoài ra. Ch ng trình ph n m m vi t b ng Java có th ch y trên m i n n t ng (platform) khác nhau thông qua m t môi tr ng th c thi v i i u ki n có môi tr ng th c thi thích h p h tr n n t ng ó. V sau Java c c h tr trên h u h t các trình duy t nh Internet Explorer (Microsoft). 2.1 (không có) 30 tháng 3. hai ngôn ng ó ch gi ng tên và lo i cú pháp nh C. . 1998 J2SE 1.1 (Ladybird) 17 tháng 5.. Java c s d ng ch y u trên môi tr ng m ng. do bên ngoài c quan c a ông Gosling có tr ng nhi u lo i cây này). c "ki n trúc trung l p và di ng". Firefox (Mozilla). 4.6 (Abigail) 24 tháng 4. 1999 J2SE 1.2. Không nên l n l n Java v i JavaScript. AIX & z/OS. FreeBSD & Windows..8 (Chelsea) 8 tháng 4. c "th hi n. r i nó tr nên n i ti ng khi Netscape tuyên b t i h i th o SunWorld n m 1995 là trình duy t Navigator c a h s h tr Java. IBM. Ban u ngôn ng này c g i là Oak (có ngh a là cây s i.1. 1997 JDK 1.3. internet. 3. Java c t o ra vào n m 1991 do m t s k s Sun. Nh ng chi ti t v ngôn ng .1. m t ph n c a D án Xanh (Green Project).5 (Pumpkin) 3 tháng 12. Gi i thi u v Java Java c kh i u b i James Gosling và b n ng nghi p Sun Microsystems n m 1991.1. t ch c c ng nh cá nhân khác c ng phát tri n môi tr ng th c thi Java cho nh ng h i u hành khác nh BEA. Nó s Nó s Nó s Nó s Nó s Ph ng châm c a Java Có 5 m c tiêu chính trong vi c xây d ng ngôn ng Java: c " n gi n..3 (Kestrel) 8 tháng 5. Safari (Apple). c "m nh m và an toàn". Oracle ã mô t h là "ng i qu n lý công ngh Java v i cam k t không ng ng b i d ng m t c ng ng tham gia và minh b ch".Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin I. Môi tr ng th c thi c a Sun Microsystems hi n h tr Sun Solaris. 2000 J2SE 1. máy o và API c a Java c gi b i C ng ng Java (do Oracle qu n lý). Java c t o ra v i tiêu chí "Vi t (code) m t l n. A. Trong ó áng nói n nh t là IBM Java Platform h tr Windows. Linux. 1. y y y y y y y y y y Các phiên b n Java ã phát hành: JDK 1. 5. Java c phát hành vào n m 1994.

0) (Tiger) 29 tháng 9.4.4. Các b n c p nh t 2 và 3 c a ra vào n m 2007. thông tin chính t i http://java.Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin y y y y y J2SE 1.0 (Merlin) 13 tháng 2.com/javase/6/ .4.18. 2003 J2SE 5 (1. 2004 Java SE 6 (còn g i là Mustang).5.sun.1 (Hopper) 16 tháng 9. 2002 J2SE 1. b n c p nh t 4 a ra tháng 1 n m 2008. c công b 11 tháng 12 n m 2006. n m 2010 y Seminar Công Ngh Phn Mm Tìm Hiu Java Trang 3 . 2002 J2SE 1. JDK 6.2 (Mantis) 26 tháng 6.

5. giao di n h a. Môi tr ng th c thi Java không có các công c và ti n ích nh là các trình biên d ch hay các trình g l i phát tri n các applet và các ng d ng. và c chính ch ng trình ó. "2" ban u v n c dùng ch n nh ng thay i l n trong phiên b n 1. b n s nh n c k t qu là mã byte (bytecodes). Standard Edition) c s d ng t phiên b n 1. ch a các mã byte. Standard Edition (SDK) Java 2 SDK là m t t p m c a JRE.2 cho n 1. b n vi t mã ngu n. Sau ó. B i vì gi a các n n t ng h th ng khác nhau có nhi u i m khác nhau nên có th khi n cho mã l nh c a b n thi hành khác nhau trên nh ng n n t ng khác nhau. Standard Edition (JRE) Môi tr ng th c thi Java hay JRE cung c p các Java API. c s d ng ch y các ch ng trình Java. ây là n n t ng Java c s d ng tri n khai các ng d ng portable s d ng chung. b n ph i biên d ch mã ngu n c a mình theo các th vi n dành riêng cho n n t ng h th ng ó. m ng. Phiên b n c bi t n t i th i i m hi n t i là Java SE 6 (hay Java SE 1. b n sinh ra m t t p .2 n 1.6 thì s 2 ã cb n v i cái tên J2SE(Java 2 Platform: Standard i. trình biên d ch c a Java sinh ra m t t p . A. ki m th m i n i´. cùng v i m t t p h p các th vi n (ho c "các gói") c n thi t cho phép s d ng các t p tin h th ng. B n có th hình dung. Java 2 Software Development Kit. ch y trên các n n h th ng khác nhau. ch y m i n i´ s tr thành ³vi t m t l n. Java SE th ng c bi t Edition). n phiên b n 1. Java SE Java Platform. T "SE" c s d ng phân bi t v i các n n t ng khác là Java EE và Java ME.2 so v i các phiên b n tr c. Nguyên t c ho t ng c a ngôn ng Java Khi b n vi t mã l nh b ng ngôn ng Java. Khi b n biên d ch t p này. nh ng n phiên b n 1. T phiên b n Java 1. Standard Edition ho c Java SE là m t n n t ng c dùng r ng rãi l p trình b ng ngôn ng Java.6 thì "2" b lo i b . JVM c và thông d ch t p .  J2SE g m 2 b ph n chính là: 1. Trên th c t . gi ng nh nhi u ngôn ng khác. Khi b n vi t mã.class này lúc ch y và nó ho t ng nh th nào là tùy thu c vào n n t ng h th ng mà b n ang ch y. b sung thêm các công c nh là trình biên d ch (compiler) và các trình g l i (debugger) c n phát tri n applet và các ng d ng. và ch a m i th n m trong JRE.java. Khi b n biên d ch mã Java.5. trình biên d ch ki m tra mã l nh c a b n và i chi u v i các quy t c cú pháp c a ngôn ng .Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin II. sau ó b n biên d ch nó. Tên J2SE (Java 2 Platform.6 theo cách Microsystems) v i tên mã Mustang. Java 2 Runtime Environment. máy o Java (JVM) s thông d ch các mã byte này lúc ch y ch ng trình. máy o Java (Java Virtual Machine hay JVM) và các thành ph n c n thi t khác ch y các applet và ng d ng vi t b ng ngôn ng l p trình Java. l i h a h n ³vi t m t l n. Java SE bao g m m t máy o.class. Tuy nhiên. Nh ng n n t ng Java b sung thêm m t b c khác n a ngoài các b c trên. 2. t tên c a Sun Seminar Công Ngh Phn Mm Tìm Hiu Java Trang 4 .

eclipse. trình ch y applet và tài li u nghiên c u). Micro Edition (Java ME) framework và n m ph n u c a C u hình thi t b b h n ch K t n i (Connected Limited Device Configuration . TV set-top boxes.org).  MIDP Mobile Information Device Profile (MIDP) là m t c t k thu t c công b cho vi c s d ng Java trên các thi t b nhúng nh i n tho i di ng và PDA. hãng Sun tuyên b JDK s c phát hành d i gi y phép GNU General Public License (GPL). JDK ng phát tri n Java Java Development Kit (JDK . Ngày 17 tháng 11 n m 2006. K t khi ngôn ng Java ra i. trình duy t web. n th i i m hi n nay. dùng vi t nh ng applet Java hay nh ng ng d ng Java . m t t p h p các giao di n l p trình c p th p. giao th c m ng c xây d ng s n. Vi c này ã c th c hi n ph n l n ngày 8 tháng 5 n m 2007[1] và mã ngu n c óng góp cho OpenJDK. trình giúp s a l i (debugger. Công ngh Java ME c s tham gia và c i ti n liên t c t o ra các chu n t JCP. C#. PHP. trình thông d ch. Cobol. Các thi t b MIDP u tiên c tung ra vào tháng T n m 2001. B. Java ME Platform là 1 d án m cho vi c xây d ng ng d ng trên i n tho i di ng.CLDC). Ngoài vi c h tr các ngôn ng l p trình. XML n u ng i dùng cài t thêm các plug-in. III. JDK là b phát tri n ph n m m thông d ng nh t cho Java. Python. Java ME c thi t k cung c p tính linh ng gi a các n n t ng. Eclipse 1. Java ME g m giao di n ng i dùng linh ng. MIDP là m t ph n c a n n t ng Java. MIDP ã c phát tri n theo Java Community Process. JDK tr thành ph n m m t do. ng d ng m ng nh Telnet. Micro Edition (Java ME) là 1 môi tr ng m nh. HTML. C. linh ng trong vi c phát tri n ng d ng ch y trên i n tho i di ng (mobile) và các thi t b nhúng (embedded devices) ± mobile phones. PDAs. các plug-in còn cho phép Eclipse làm vi c c v i ngôn ng s p ch (typesetting language) nh LaTEX. C++. Java ME Java Platform.b công c này c phát hành mi n phí g m có trình biên d ch. c phát tri n ban u b i IBM và hi n nay b i t ch c Eclipse (http://www. T ng quan v Eclipse Eclipse là m t môi tr ng phát tri n tích h p (Integrated Development Environment ± IDE) cho Java.Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin B. t ng thích nhi u n n t ng. ng d ng d a trên Java ME mang tính kh chuy n trên nhi u thi t b . và máy in. Eclipse không gói g n trong vi c cung c p môi tr ng phát tri n tích h p cho Java mà còn cho các ngôn ng khác nh JavaScript. và h tr c ng d ng có k t n i m ng l n ng d ng offline.B công c cho ng i phát tri n ng d ng b ng ngôn ng l p trình Java) là m t t p h p nh ng công c ph n m m c phát tri n b i Sun Microsystems dành cho các nhà phát tri n ph n m m. b o m t m nh. Công c và môi tr A. h qu n tr c s d li u« Seminar Công Ngh Phn Mm Tìm Hiu Java Trang 5 . Nó bao g m các thành ph n chu n c nh ngh a b i Java Community Process (JCP).

Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin 2. g m có Standard Widget Toolkit (SWT) và JFace. Workspace ng th i ch u trách nhi m thông báo nh ng công c c n thi t cho vi c thay i tài nguyên. Eclipse không hoàn toàn b t bu c ph i s d ng SWT hay Jface l p trình giao di n. Workspace l u tr l ch s nh ng s thay i tài nguyên. y y y c) The Workbench : Workbench là giao di n h a ng i dùng c a Eclipse. C u trúc c a Eclipse: a) The Platform runtime : Công vi c chính c a Platform runtime là phát hi n xem plug-in nào ang có trong th m c plug-in c a Eclipse. b) The workspace : Workspace ch u trách nhi m qu n lý tài nguyên ng i dùng c t ch c d i d ng Project. b n v n có th s d ng AWT hay SWING c a Java thông qua vi c cài t các Plug-ins.Plug-in ch ct i vào Eclipse m i khi th c s c n thi t gi m l ng tài nguyên yêu c u và th i gian kh i t o. M i Project là m t th m c con trong th m c Workspace. tránh th t thoát tài nguyên ng i dùng.M i Plug-in u có 1 t p tin Manifest li t kê nh ng k t n i mà plug-in c n. Seminar Công Ngh Phn Mm Tìm Hiu Java Trang 6 .

có th là nh d ng HTML hay XML.) d ch ng d n t p tin này thành m t th mà n n t ng Java hi u c. Java s t nó vào trong gói m c nh. IV. Ví d : n u cây th m c gói t trong th m c c:\javapro thì classpath = . Th m c ch a các gói: y Java yêu c u c u trúc th m c ch a gói ph i t ng ng v i tên gói.edu. các gói khác ã c biên d ch thành Java bytecode. Víd : java.edu. các l p cùng gói không c trùng tên nhau. N u b n không nói rõ ràng nó thu c gói nào. gói lang n m trong gói java. . interface. Cú pháp ngôn ng l p trình Java A. Phân tán ph n m m thu n ti n. M t package ch n gi n là m t t p các i t ng. Các gói cùng gói cha. y y y Trong các gói có th l i ch a các gói khác. Cácpackage quy chi u theo ng d n n t p tin trong h th ng t p c a b n.hau1. c t tên gói: ng t nhau c t trong cùng m t gói d tìm. B o v các thành viên c a l p. Tên c a các gói dùng ký pháp d u ch m (. Package Là m t nhóm các class. t t c (th ng là th ) liên quan v i nhau theo m t cách nào ó.vn thì t tên gói là vn.sgu.mypackage thì ph i t o c u trúc th m c là \vn\edu\hau1\mypackage Java tìm c n i t cây th m c gói thì bi n môi tr ng classpath ph i xác nh th m c ch a cây th m c gói. Cób n lý do c n óng gói các l p: y y y y Quy y D tìm các l p: Các l p có ch c n ng t Tránh sung t tên. N u mu n óng gói các l p a lên Internet cho m i ng i s d ng thì ph i ch n m t tên duy nh t. ng i ta th ng l y o ng c c a tên mi n Internet làm ti n t c a tên gói.tengoi Theo quy c t tên gói dùng ki u lowercase (vi t th ng). M i i t ng Java u n m trong m t package. Víd : Tên mi n c a H Sài Gòn là sgu.c:\javapro Trang 7 y Seminar Công Ngh Phn Mm Tìm Hiu Java .lang. Ví d : v i tên gói là vn. T ch c các gói theo ki u này s m b o các tên gói không b trùng nhau.Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin d) Trang b h th ng qu n tr Team support : qu n lý d án c a ng i dùng : Concurrent Versions System (CVS) e) Help : Cung c p h th ng tài li u m r ng.Math cho bi t l p Math n m trong gói lang.edu.

.ClassName. [import OtherPackageName ..] class ClassName { . child class) ho c l p d n xu t (derived class) ho c l p m r ng (extended class). import PackageCha.. 2. Khai báo package ph i là dòng u tiên c a code java. } Khi biên d ch thành công: o N u ch a có th m c PackageName thì th m c này s o File. 1.PackageCon. S d ng Package Dùng ch th import v i m t trong các cú pháp sau: import PackageName. y y K th a c d n xu t (derived) t l p khác. xác nh th m c hi n t i luôn trong classpath. và do v y k th a (inherit) m i tr ng và ph ng L p c k th a g i là l p cha (superclass.Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin D u .ClassName. /* Comment */ package PackageCha[. parent class) ho c l p c s (base class).PackageCon]. M t l p có th th c c a l p ó. import PackagCha.. ct ng t o ra B. Quan h k th a t o thành cây hay c u trúc phân Trong Java.*. t t c các l p c p. u c d n xu t t Object. import PackageName.PackageCon]. L p th k g i là l p con (subclass. T o package Khai báo package trong code c a class..*. Dùng t khóa package Cú pháp: package PackageCha[.PackageCon.. Seminar Công Ngh Phn Mm Tìm Hiu Java Trang 8 .class c a code này s c t vào th m c này.

Các bi n trong Interface thì ph i là public. static hay final. Không c khai báo private hay protected i v i các bi n và các hàm trong Interface vì các hàm này s c vi t l i (overriden) trong l p th c thi nó.. Interface ch a các hành vi chu n (standard behavior) c th c hi n b i b t kì l p nào trong h th ng phân c p l p.M t l p th c thi interface ph i ho c cài t t t c các ph ng th c(có trong interface) ho c khai báo là l p tr u t ng. Hàm trong interface không th là final. Interface Interface là 1 l p bao g m bi n h ng và các hàm c khai báo tr c nh ng không c nh ngh a. Interface không th c thi b t c m t ph ng th c nào nh ng l i c u trúc thi t k trên b t c l p nào s d ng nó. Chú ý khi dùng Interface: M t l p thi hành các hàm trong interface thông qua t khoá implements. ngh a là các hàm này không h có thân (body). nh ng m i hàm trong 1 interface u c coi là abstract (tr u t ng). 1. Ngh a là các hàm trong interface có th c th c hi n b i các l p không có liên h gì n nó. Interface c dùng nh m t "ki u" ch ch a nh ngh a h ng và ph ng th c tr u t ng.Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin Cú pháp th a k trong Java: public class Tên_L p_Cha { «««««««««««. y y y y y y Seminar Công Ngh Phn Mm Tìm Hiu Java Trang 9 . Dù không khai báo t khoá abstract. M t l p có th implements nhi u interface. } public class Tên_L p_Con extends Tên_L p_Cha { ««««««««««« } C.

biên d ch thành file.. Set Th a k t interface Collection. c. Khai báo interface Khai báo interface b ng 1 file. Th c thi giao di n (implement interface) c th c thi thông qua các l p. Cú pháp: [modifier]interface InterfaceName { [ modifier] <final data> [ modifier] DataTypeMethod (args). { <Data riêng> <th c thi c a các method riêng> <th c thi các method c a interface1> <th c thi các method c a interface2> <th c thi các method c a các interface khác> } n th a k nên cách này dung ph c v V. Cú pháp xây d ng m t l p có th c thi interface: [modifier] class TênextendsL pChaimplements Interface1. M t l p có code c th hóa các hành vi c a m t interface thì g i là implementation. interface2. là t p h p các ph n t không trùng nhau (bao g m c ph n t null). 3. } Ch n modifier là public m in i u dùng c... Java collections framework A. Seminar Công Ngh Phn Mm Tìm Hiu Java Trang 10 . N u không có modifier th ch các class/interface cùng gói/ cùng th m c m i truy c p Modifier trong interface nên là public Giao di n d dùng.class.java.Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin 2. M t l p có th th c thi nhi u interface (vì trong java ch cho cho a th a k ).

LinkedHashSet có t c truy xu t nhanh g n b ng HasSet. LinkedList<E> extends AbstractSequentialList<E> implements List<E>. Serializable T p h p các ph n t c s p x p theo th t (các ph n t khi v trí theo th t s p x p). Cloneable. t c nhanh. Cloneable. Cloneable. 2. Nó không ph i c p phát m t i t ng Node cho m i ph n t trong List. List Là t p h p các ph n t theo th t (do ng i dùng s p x p).Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin 1. TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>. HashSet<E> extends AbstractSet<E> implements Set<E>. 3. 2. Ng i s d ng interface này có th ki m soát chính xác các ph n t thông qua v trí c a mà ph n t ó c thêm vào. Không nh Set. gi ng nh là m t b ng b m v i m t danh sách liên k t ch y bên trong nó. Cloneable. B. extends HashSet<E> LinkedHashSet<E> a vào TreeSet s t ng c a úng implements Set<E>. Serializable Là implement trung gian gi a HasSet và TreeSet. Serializable Seminar Công Ngh Phn Mm Tìm Hiu Java Trang 11 . Serializable T c truy xu t c c nhanh. Ng i dùng có th truy xu t các ph n t thông qua v trí c a nó và có th tìm ki m các ph n t trong ó. ArrayList<E> extends AbstractList<E> implements List<E>. và nó có th t n d ng l i th c a System. Serializable Cung c p các truy xu t theo v trí không i theo th i gian. Cloneable. Deque<E>.arraycopy khi nó ph i di chuy n nhi u ph n t cùng m t lúc. trong List cho phép các ph n t trùng l p. RandomAccess. 1.

Serializable Dùng ánh x mà t c truy xu t các key và value c c kì nhanh.V> implements Map<K.V> implements NavigableMap<K. 3. Tuy nhiên thì LinkedList l i t n khá nhi u th i gian truy xu t so v i ArrayList. C. Map Là m t i t ng dùng ánh x các Key thành giá tr t ng ng. các key c ng khá nhanh. HashMap<K.V> extends AbstractMap<K. Cloneable.V>.V> Là s k t h p gi a TreeMap và LinkedHashMap.V>. Serializable TreeMap dùng ánh x mà trong ó các key c s p x p theo th t . 2. TreeMap<K. D. LinkedHashMap<K. LinkedList là m t th c thi c a T p h p các ph n t interface Queue. ra tr c´. Trong Map không ch a các key trùng l p và m i key ch ánh x cho duy nh t m t giá tr t ng ng.V> extends AbstractMap<K.Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin N u b n mu n thêm m t ph n t vào u List hay duy t qua các ph n t c a List xóa m t ph n t d a theo n t dung c a ph n t ó thì nên s d ng LinkedList. Cloneable.V> extends HashMap<K. Queue c truy xu t theo nguyên t c ³vào tr c. 1. c s p x p theo th t và t c truy xu t Seminar Công Ngh Phn Mm Tìm Hiu Java Trang 12 .V> implements Map<K.

Sign up to vote on this title
UsefulNot useful