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

1999 J2SE 1. 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. Ban u ngôn ng này c g i là Oak (có ngh a là cây s i. AIX & z/OS. 1998 J2SE 1.1.1 (không có) 30 tháng 3. m t ph n c a D án Xanh (Green Project).. c "m nh m và an toàn". 5.2 (Cricket) 8 tháng 7.1 (Ladybird) 17 tháng 5.1. 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 ó. Linux. m t s công ty. HP. Linux. 1998 JDK 1.. h ng i t ng và quen thu c". B. 4.2. c "th hi n. nh ng các tính n ng gi ng Objective C. Firefox (Mozilla). Run Anywhere" (WORA)).7 (Brutus) 28 tháng 9. y y y y y y y y y y Các phiên b n Java ã phát hành: JDK 1.Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin I. V sau Java c c h tr trên h u h t các trình duy t nh Internet Explorer (Microsoft).2.4 (Sparkler) 12 tháng 9. 1997 JDK 1.5 (Pumpkin) 3 tháng 12. 2000 J2SE 1. Không nên l n l n Java v i JavaScript. FreeBSD & Windows. 1. h d nh ngôn ng ó thay cho C++. th c thi kh p n i" ("Write Once. Java c t o ra vào n m 1991 do m t s k s Sun.2 (Playground) 4 tháng 12. . phân lu ng và n ng ng". 3.8 (Chelsea) 8 tháng 4. Mac OS.1. 1997 JDK 1. IBM. A. Môi tr ng th c thi c a Sun Microsystems hi n h tr Sun Solaris. c "ki n trúc trung l p và di ng". 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".3 (Kestrel) 8 tháng 5.3. 2001 Trang 2 Seminar Công Ngh Phn Mm Tìm Hiu Java . bao g m ông James Gosling. Ngoài ra. do bên ngoài c quan c a ông Gosling có tr ng nhi u lo i cây này). Công ty Sun Microsystems ang gi b n quy n và phát tri n Java th ng xuyên.6 (Abigail) 24 tháng 4. 1999 J2SE 1. Java c phát hành vào n m 1994. internet. hai ngôn ng ó ch gi ng tên và lo i cú pháp nh C.. 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. Java c s d ng ch y u trên môi tr ng m ng. Trong ó áng nói n nh t là IBM Java Platform h tr Windows. 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. c th c thi v i "hi u su t cao". 1999 J2SE 1. máy o và API c a Java c gi b i C ng ng Java (do Oracle qu n lý).subby Sau khi Oracle mua l i công ty Sun Microsystems n m 2009-2010. 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..1. Nh ng chi ti t v ngôn ng . Java c t o ra v i tiêu chí "Vi t (code) m t l n. Safari (Apple). 2. 1998 JDK 1.

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

2. trình biên d ch c a Java sinh ra m t t p . 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. 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. ch y trên các n n h th ng khác nhau. Java 2 Software Development Kit.5.class.2 cho n 1. Standard Edition (SDK) Java 2 SDK là m t t p m c a JRE. 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 . gi ng nh nhi u ngôn ng khác. Khi b n vi t mã. ch a các mã byte. l i h a h n ³vi t m t l n. ây là n n t ng Java c s d ng tri n khai các ng d ng portable s d ng chung. sau ó b n biên d ch nó. 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. 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. m ng. b n s nh n c k t qu là mã byte (bytecodes). Tuy nhiên. T phiên b n Java 1. ki m th m i n i´. Java SE bao g m m t máy o. Sau ó. B n có th hình dung. JVM c và thông d ch t p . Tên J2SE (Java 2 Platform. nh ng n phiên b n 1. 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.6 thì s 2 ã cb n v i cái tên J2SE(Java 2 Platform: Standard i.6 theo cách Microsystems) v i tên mã Mustang. "2" ban u v n c dùng ch n nh ng thay i l n trong phiên b n 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.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. 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.6 thì "2" b lo i b .java. Java 2 Runtime Environment. Khi b n biên d ch t p này. máy o Java (JVM) s thông d ch các mã byte này lúc ch y ch ng trình. 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. Khi b n biên d ch mã Java.2 n 1. n phiên b n 1. c s d ng ch y các ch ng trình Java. Standard Edition (JRE) Môi tr ng th c thi Java hay JRE cung c p các Java API.  J2SE g m 2 b ph n chính là: 1. b n vi t mã ngu n. và c chính ch ng trình ó. và ch a m i th n m trong JRE.2 so v i các phiên b n tr c. t tên c a Sun Seminar Công Ngh Phn Mm Tìm Hiu Java Trang 4 .Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin II. b n sinh ra m t t p .5. 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 ó. 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. Trên th c t . ch y m i n i´ s tr thành ³vi t m t l n. 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. Java SE th ng c bi t Edition). A. Java SE Java Platform. Standard Edition) c s d ng t phiên b n 1.

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. h qu n tr c s d li u« Seminar Công Ngh Phn Mm Tìm Hiu Java Trang 5 .org). Nó bao g m các thành ph n chu n c nh ngh a b i Java Community Process (JCP). Ngoài vi c h tr các ngôn ng l p trình. MIDP là m t ph n c a n n t ng Java. 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.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. Java ME c thi t k cung c p tính linh ng gi a các n n t ng. trình giúp s a l i (debugger. Eclipse 1. HTML. Java ME Java Platform. JDK là b phát tri n ph n m m thông d ng nh t cho Java. trình thông d ch. Python. và máy in. C#.Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin B. Cobol.b công c này c phát hành mi n phí g m có trình biên d ch. trình duy t web. 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. 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). n th i i m hi n nay. giao th c m ng c xây d ng s n. 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 . 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. m t t p h p các giao di n l p trình c p th p. C++. PHP. 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. JDK tr thành ph n m m t do. và h tr c ng d ng có k t n i m ng l n ng d ng offline. TV set-top boxes. B. PDAs. ng d ng d a trên Java ME mang tính kh chuy n trên nhi u thi t b . Ngày 17 tháng 11 n m 2006. C. c phát tri n ban u b i IBM và hi n nay b i t ch c Eclipse (http://www. b o m t m nh. Micro Edition (Java ME) là 1 môi tr ng m nh. Các thi t b MIDP u tiên c tung ra vào tháng T n m 2001. ng d ng m ng nh Telnet. t ng thích nhi u n n t ng. III. 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. hãng Sun tuyên b JDK s c phát hành d i gi y phép GNU General Public License (GPL). K t khi ngôn ng Java ra i.eclipse. dùng vi t nh ng applet Java hay nh ng ng d ng Java .  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. MIDP ã c phát tri n theo Java Community Process. XML n u ng i dùng cài t thêm các plug-in. Công c và môi tr A. trình ch y applet và tài li u nghiên c u). Java ME g m giao di n ng i dùng linh ng. JDK ng phát tri n Java Java Development Kit (JDK .

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. g m có Standard Widget Toolkit (SWT) và JFace. 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. Seminar Công Ngh Phn Mm Tìm Hiu Java Trang 6 . Workspace l u tr l ch s nh ng s 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. tránh th t thoát tài nguyên ng i dùng.Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin 2. M i Project là m t th m c con trong th m c Workspace.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. 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. 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. 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.

hau1. B o v các thành viên c a l p. 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. các l p cùng gói không c trùng tên nhau. 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. 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. gói lang n m trong gói java.Math cho bi t l p Math n m trong gói lang.edu. interface. Víd : java. Cú pháp ngôn ng l p trình Java A.edu. . y y y Trong các gói có th l i ch a các gói khác. 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.sgu. 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. các gói khác ã c biên d ch thành Java bytecode. IV. N u b n không nói rõ ràng nó thu c gói nào. có th là nh d ng HTML hay XML. Các gói cùng gói cha. Package Là m t nhóm các class.vn thì t tên gói là vn. M t package ch n gi n là m t t p các i t ng. Java s t nó vào trong gói m c nh.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. Cácpackage quy chi u theo ng d n n t p tin trong h th ng t p c a b n.edu. Phân tán ph n m m thu n ti n. Ví d : v i tên gói là vn. Víd : Tên mi n c a H Sài Gòn là sgu.tengoi Theo quy c t tên gói dùng ki u lowercase (vi t th ng). Ví d : n u cây th m c gói t trong th m c c:\javapro thì classpath = .c:\javapro Trang 7 y Seminar Công Ngh Phn Mm Tìm Hiu Java .) d ch ng d n t p tin này thành m t th mà n n t ng Java hi u c. M i i t ng Java u n m trong m t package. c t tên gói: ng t nhau c t trong cùng m t gói d tìm. t t c (th ng là th ) liên quan v i nhau theo m t cách nào ó.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.lang. Tên c a các gói dùng ký pháp d u ch m (.

import PackageCha. y y K th a c d n xu t (derived) t l p khác. t t c các l p c p. [import OtherPackageName . child class) ho c l p d n xu t (derived class) ho c l p m r ng (extended class).ClassName. 2. import PackageName. import PackagCha. Seminar Công Ngh Phn Mm Tìm Hiu Java Trang 8 .PackageCon.. parent class) ho c l p c s (base class). 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. u c d n xu t t Object. Dùng t khóa package Cú pháp: package PackageCha[.PackageCon]. } 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. M t l p có th th c c a l p ó. L p th k g i là l p con (subclass.PackageCon..ClassName. Khai báo package ph i là dòng u tiên c a code java.PackageCon].class c a code này s c t vào th m c này. 1.. 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. S d ng Package Dùng ch th import v i m t trong các cú pháp sau: import PackageName. T o package Khai báo package trong code c a class. /* Comment */ package PackageCha[..Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin D u .. xác nh th m c hi n t i luôn trong classpath.] class ClassName { .*..*.

M t l p có th implements nhi u interface. Dù không khai báo t khoá abstract. 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 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ó. y y y y y y Seminar Công Ngh Phn Mm Tìm Hiu Java Trang 9 . Chú ý khi dùng Interface: M t l p thi hành các hàm trong interface thông qua t khoá implements. 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. 1..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. static hay final.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 { «««««««««««. nh ng m i hàm trong 1 interface u c coi là abstract (tr u t ng). 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. 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. 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ó. } public class Tên_L p_Con extends Tên_L p_Cha { ««««««««««« } C. Hàm trong interface không th là final. ngh a là các hàm này không h có thân (body). Các bi n trong Interface thì ph i là public.

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

B. 1. Nó không ph i c p phát m t i t ng Node cho m i ph n t trong List. Cloneable. 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 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). LinkedHashSet có t c truy xu t nhanh g n b ng HasSet. Deque<E>. và nó có th t n d ng l i th c a System. Cloneable. Cloneable. LinkedList<E> extends AbstractSequentialList<E> implements List<E>. 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ó. extends HashSet<E> LinkedHashSet<E> a vào TreeSet s t ng c a úng implements Set<E>. RandomAccess. Serializable T c truy xu t c c nhanh. 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. t c nhanh. Không nh Set. ArrayList<E> extends AbstractList<E> implements List<E>. 3. 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. 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 ó. 2. trong List cho phép các ph n t trùng l p. TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>. Serializable Cung c p các truy xu t theo v trí không i theo th i gian. Cloneable. Cloneable. 2. HashSet<E> extends AbstractSet<E> implements Set<E>.arraycopy khi nó ph i di chuy n nhi u ph n t cùng m t lú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. Cloneable. Cloneable.V>.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. HashMap<K.V> implements Map<K. Serializable Dùng ánh x mà t c truy xu t các key và value c c kì nhanh.V>. D. 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 . 3. ra tr c´. Tuy nhiên thì LinkedList l i t n khá nhi u th i gian truy xu t so v i ArrayList.V> extends HashMap<K. 2. LinkedList là m t th c thi c a T p h p các ph n t interface Queue. Queue c truy xu t theo nguyên t c ³vào tr c.V> Là s k t h p gi a TreeMap và LinkedHashMap.V> extends AbstractMap<K. TreeMap<K. các key c ng khá nhanh. C. Serializable TreeMap dùng ánh x mà trong ó các key c s p x p theo th t .V> implements Map<K. Map Là m t i t ng dùng ánh x các Key thành giá tr t ng ng.V> extends AbstractMap<K. LinkedHashMap<K.V> implements NavigableMap<K.

Sign up to vote on this title
UsefulNot useful