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

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

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

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

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

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

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

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

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

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

Deque<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ó. ArrayList<E> extends AbstractList<E> implements List<E>. trong List cho phép các ph n t trùng l p. 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. Cloneable. Serializable Là implement trung gian gi a HasSet và TreeSet. List Là t p h p các ph n t theo th t (do ng i dùng s p x p). và nó có th t n d ng l i th c a System. HashSet<E> extends AbstractSet<E> implements Set<E>. Nó không ph i c p phát m t i t ng Node cho m i ph n t trong List.arraycopy khi nó ph i di chuy n nhi u ph n t cùng m t lúc. extends HashSet<E> LinkedHashSet<E> a vào TreeSet s t ng c a úng implements Set<E>. LinkedHashSet có t c truy xu t nhanh g n b ng HasSet. Không nh Set. RandomAccess. B. Cloneable. 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). 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 ó. LinkedList<E> extends AbstractSequentialList<E> implements List<E>. Serializable Cung c p các truy xu t theo v trí không i theo th i gian. 1. TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>. Cloneable. Serializable T c truy xu t c c nhanh.Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin 1. 2. t c nhanh. Cloneable. 3. 2. Cloneable.

Serializable TreeMap dùng ánh x mà trong ó các key c s p x p theo th t . 2. Queue c truy xu t theo nguyên t c ³vào tr c.V>.V> implements Map<K. HashMap<K.V> Là s k t h p gi a TreeMap và LinkedHashMap.V>. C. TreeMap<K. LinkedHashMap<K. LinkedList là m t th c thi c a T p h p các ph n t interface Queue.V> extends HashMap<K. Cloneable. các key c ng khá nhanh. Serializable Dùng ánh x mà t c truy xu t các key và value c c kì nhanh.V> implements Map<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. 1. 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. ra tr c´. 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.V> extends AbstractMap<K.V> implements NavigableMap<K. Cloneable. 3. D. 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 . Tuy nhiên thì LinkedList l i t n khá nhi u th i gian truy xu t so v i ArrayList.

Sign up to vote on this title
UsefulNot useful