Đang tải... (xem toàn văn)
Bài giảng về Java
M C L CỤ ỤM C L CỤ Ụ 1 Đ tài 0. Gi i thi u v Javaề ớ ệ ề 6 I. L ch s hình thành và phát tri n ngôn ng l p trình Javaị ử ể ữ ậ . 6 I.1. Gi i thi u v Javaớ ệ ề . 6 I.2 Tóm t t l ch s hình thành c a Java ắ ị ử ủ . 6 II. Các đ c tr ng c a Javaặ ư ủ . 7 II.1. Tính đ n gi nơ ả . 7 II.2. Tính h ng đ i t ngướ ố ượ . 7 II.3. Tính phân tán 7 II.4. Tính m nh mạ ẽ 7 II.5. Tính an toàn 7 II.6. Tính trung l pậ . 8 II.7. Tính di đ ngộ . 8 II.8. Tính thông d chị . 9 II.9. Tính th c thi caoự . 9 II.10. Tính đa lu ngồ 9 II.11. Tính đ ng ộ . 9 III. Các lo i ng d ng c a Javaạ ứ ụ ủ 9 IV. Công c và môi tr ng l p trình Javaụ ườ ậ 9 V. Cài đ t Java ặ 10 Đ tài 1. Ngôn ng mô hình hóa UMLề ữ . 13 I. Xây d ng h th ng ph n m m theo h ng đ i t ngự ệ ố ầ ề ướ ố ượ 13 I.1 Các khái ni m căn b n c a công ngh h ng đ i t ngệ ả ủ ệ ướ ố ượ 13 I.2 Quy trình chung phát tri n h th ng ph n m mể ệ ố ầ ề . 14 I.3 Nh ng thách th c c a ngành công nghi p ph n m m hi n nayữ ứ ủ ệ ầ ề ệ 14 II. L ch s phát tri n ngôn ng mô hình hóa UMLị ử ể ữ . 14 II.1. Tóm t t l ch s UMLắ ị ử . 14 II.2. Khái ni m v UMLệ ề 15 II.3 Đ c tr ng c a UMLặ ư ủ 15 III. Ngôn ng UMLữ 16 III.1. Các thành ph n c a UMLầ ủ . 16 III.2. Các h ng nhìn (view)ướ 17 III.3 ng d ng UML trong quy trình làm ph n m mỨ ụ ầ ề 24 IV. Quy trình Rational Unified Process (RUP) phát tri n ph n m m d a trên UMLể ầ ề ự 26 IV.1. Gi i thi u v RUPớ ệ ề 26 IV.2. Các nguyên t c chính c a RUP:ắ ủ . 26 IV.3. Vòng đ i c a ph n m m theo quy trình RUPờ ủ ầ ề . 26 IV.4. Các công c c a RUPụ ủ . 28 Bài t pậ 28 Đ tài 2. Nh p môn Javaề ậ . 29 I. Vi t và th c hi n m t ch ng trình Java ế ự ệ ộ ươ 29 I.1 Tìm hi u mã ngu n m t ch ng trình đ n gi nể ồ ộ ươ ơ ả 29 I.2. Th c hi n ch ng trình Java.ự ệ ươ . 29 I.3. M t s chú ý khi l p trình Javaộ ố ậ . 30 1 I.4. C u trúc m t ch ng trình Javaấ ộ ươ . 30 II. Các ki u d li u trong Javaể ữ ệ 31 II.1 Các ki u d li u s nguyênể ữ ệ ố 31 II.2 Các ki u s th cể ố ự . 32 II.3 Ki u ký t (character)ể ự . 32 II.4 Ki u logic (boolean)ể 32 II.5 Ki u chu iể ỗ . 32 II.6 Chuy n đ i gi a các ki u sể ổ ữ ể ố 32 III. Khai báo bi n và h ng trong Javaế ằ . 33 III.1 Quy t c đ t tên bi nắ ặ ế 33 III.2 Khai báo bi nế . 33 III.3 Bi n ki u m ngế ể ả . 34 III.4 H ng s (literal)ằ ố . 35 III.5 Ph m vi ho t đ ng c a h ng và bi n:ạ ạ ộ ủ ằ ế . 36 IV. Các toán t và bi u th cử ể ứ . 36 IV.1 Các toán t và th t u tiênử ứ ự ư . 36 IV.2 Bi u th cể ứ . 37 V. Các l nh đi u khi n r nhánhệ ề ể ẽ 38 V.1 L nh ifệ . 38 V.2. L nh switch …caseệ 38 VI. Các l nh l pệ ặ . 39 VI.1. Vòng l p forặ 39 VI.2. Vòng l p whileặ 40 VI.3. Vòng l p do . whileặ 41 VI.4. Phép nh yả 41 VII. Vào d li u t bàn phím và xu t d li u ra màn hìnhữ ệ ừ ấ ữ ệ . 42 VII.1. L y giá tr nh p vào t bàn phímấ ị ậ ừ . 42 VII.2 K t xu t d li u ra màn hìnhế ấ ữ ệ . 43 Bài t pậ 44 Đ tài 3. L p trình h ng đ i t ng trong Javaề ậ ướ ố ượ 46 I. Khái ni m l p trình h ng đ i t ng (Object-Oriented Programming - OOP)ệ ậ ướ ố ượ . 46 I.1. Khái ni m OOPệ . 46 I.2 C s lý lu n c a OOPơ ở ậ ủ 46 I.3 Tr u t ng hóaừ ượ . 46 II. Tính đóng gói trong Java . 48 II.1 Khái ni m tính đóng góiệ 48 II.2 M i quan h gi a các classố ệ ữ . 48 II.3 M t s g i ý khi thi t k classộ ố ợ ế ế . 48 IV. S d ng các Class xây d ng s n trong th vi nử ụ ự ẵ ư ệ 49 V. Xây d ng Class trong Javaự 50 V.1 C u trúc c a classấ ủ . 50 V.2 Các thu c tính thành ph n:ộ ầ . 51 V.3 Các ph ng th c thành ph nươ ứ ầ . 52 V.4 G i và truy n tham s cho ph ng th cọ ề ố ươ ứ . 53 V.6 Các hàm và ph ng th c đ c bi tươ ứ ặ ệ . 53 V.7 Khai báo ch ng các ph ng th cồ ươ ứ . 54 V.8 L p l ng nhau – l p n iớ ồ ớ ộ . 55 2 VI. Tính k th a trong Javaế ừ . 56 VI.1 S k th a các thu c tính và ph ng th cự ế ừ ộ ươ ứ 56 VI.2 S k th a đ i v i các constructorự ế ừ ố ớ . 59 VII. Tính đa hình trong Java . 60 VII.1 S ép ki u và gán tham chi u đ i t ngự ể ế ố ượ 60 VII.2 S ràng bu c đ ng –Dynamic Binding ự ộ ộ . 61 VIII. L p Objectớ . 62 IX. Giao di nệ 62 IX.1 C u trúc c a giao di nấ ủ ệ 62 IX.2 Các tính ch t c a giao di nấ ủ ệ . 64 X. Package 64 X.1 S d ng các package trong th vi n Javaử ụ ư ệ 64 X.2 Đ t l p vào packageặ ớ . 65 Bài t pậ 65 Đ tài 4. L p và ph ng th c tr u t ngề ớ ươ ứ ừ ượ 67 I. Khái ni m l p tr u t ngệ ớ ừ ượ 67 II. Cài đ t l p và ph ng th c tr u t ng trong Javaặ ớ ươ ứ ừ ượ . 67 Bài t pậ 68 Đ tài 5. L u tr và x lý đ i t ngề ư ữ ử ố ượ 69 I. L p Vector và giao di n Enumerationớ ệ . 69 I.1 L p Vectorớ 69 I.2 Giao di n Enumerationệ . 70 II. M ng trong Java và l p ArrayListả ớ 72 II.1 M ng trong Javaả 72 II.2. Các thu t toán c b n trên m ngậ ơ ả ả 73 II.3 Class Arrays . 74 III Danh sách trong java và giao di n Lists ệ 76 Bài t pậ 77 Đ tài 6. Các lu ng vào ra d li u v i fileề ồ ữ ệ ớ . 78 I. Khái ni m lu ng vào ra (I/O stream)ệ ồ . 78 II. L p InputStream:ớ . 79 III. L p OutputStreamớ 80 IV. L p FileInputStreamớ 80 V. L p FileOutputStreamớ . 80 VI. L p Fileớ 80 VII. Nh p xu t l c ậ ấ ọ . 82 VII.1 L p FilterInputStream: ớ 82 VII.2 L p FilterOutputStreamớ 82 VIII. Vào/ra có s d ng b đ m ử ụ ộ ệ 82 VIII.1 L p BufferedInputStream:ớ 82 VIII.2 L p BufferedOutputStreamớ . 82 IX. L p RandomAccessFile ớ 85 X. Đ i t ng System.inố ượ . 85 XI. Truy c p file ch đ tu n tậ ở ế ộ ầ ự . 85 XII. Truy c p file nh phânậ ị 89 Bài t p ậ . 90 Đ tài 7. X lý ngo i lề ử ạ ệ 91 3 I. Các tình hu ng s d ng ngo i lố ử ụ ạ ệ 91 II. C s qu n lý ngo i l trong Javaơ ở ả ạ ệ . 91 III. C u trúc cây k th a các x lý ngo i lấ ế ừ ử ạ ệ 92 IV. S d ng ngo i l đ c ki m soátử ụ ạ ệ ượ ể 93 V. Xây d ng m t ngo i lự ộ ạ ệ 94 VI. Bài t pậ 95 Đ tài 8. X lý các s ki n trong Javaề ử ự ệ 96 I. Khái ni m và c s x lý s ki nệ ơ ở ử ự ệ . 96 II. Truy c p thông tin s ki nậ ự ệ . 102 III. X lý các s ki n trên windowử ự ệ . 103 IV. Các l p thích nghiớ 104 V. X lý các s ki n chu tử ự ệ ộ 106 Bài t pậ 107 Đ tài 9. Appletề 108 I. Xây d ng m t Applet đ n gi nự ộ ơ ả . 108 II. C u trúc c b n và vòng đ i c a m t Appletấ ơ ả ờ ủ ộ . 108 III. An ninh và kh năng c a Appletả ủ . 110 IV. ng d ng Applet v i c a s PopupỨ ụ ớ ủ ổ . 110 V. Các th HTML c a Appletẻ ủ . 111 VI. Các ph ng th c, l p trình đ h a và b t s ki n c a appletươ ứ ậ ồ ọ ắ ự ệ ủ 112 Đ tài 10. L p trình giao di n đ h a GUIề ậ ệ ồ ọ 114 I. Gi i thi u AWT ớ ệ 114 II. V t ch a (Container)ậ ứ 115 II.1 JFrame 115 II.2 JPanel . 115 II.3 JDialog . 116 II.4 JScrollPane . 118 III. Gi i thi u v các thành ph n GUI c b nớ ệ ề ầ ơ ả . 118 III.1 Nút nh n ấ 118 III.2 Nhãn (Label) . 118 III.3 Nút đánh d u (checkbox)ấ . 120 III.4 Nút ch n (radio button)ọ 122 III.5 H p tho i Combo ộ ạ . 122 III.6 Danh sách (Lists) 123 III.7 Ô văn b n (text field) và vùng văn b n (text areas)ả ả 125 III.8 Thanh tr t (Scrollbar)ượ 128 IV. Thành ph n Menuầ 129 V. B qu n lý cách trình bày (Layout Manager)ộ ả . 132 V.1 Cách trình bày FlowLayout: 133 V.2 Cách trình bày GridLayout: . 133 V.3 Cách trình bày BorderLayout 133 VI. Các h p tho iộ ạ . 133 VI.1 H p tho i thông báoộ ạ 133 VI.2 H p tho i ch n Fileộ ạ ọ . 134 VI.3 H p tho i ch n màuộ ạ ọ 135 Bài t pậ 135 Đ tài 11. Threadingề 137 4 I. Khái ni m threadệ 137 I.1 Khái ni m:ệ 137 I.2. L p Threadớ . 137 I.3 Các b c đ t o m t threadướ ể ạ ộ 138 II. Các tr ng thái c a thread.ạ ủ . 138 III. Các thu c tính c a threadộ ủ 139 III.1 Đ u tiên c a threadộ ư ủ 139 III.2 Nhóm thread . 140 III.3 Qu n lý các ngo i l c a threadả ạ ệ ủ . 140 IV. Đi u khi n các threadề ể 141 IV.1 Interrupt m t threadộ . 141 IV.2 D ng m t threadừ ộ 142 IV.3 T m d ng và ph c h i m t threadạ ừ ụ ồ ộ . 143 IV.4 Gi i phóng th i gian cho CPUả ờ 143 IV.5 Đ i m t thread k t thúc công vi cợ ộ ế ệ . 143 V. Đ ng b threadồ ộ . 144 V.1 Tình tr ng “đua tranh”ạ 144 V.2 Khóa đ i t ngố ượ . 145 V.3 Đ i t ng đi u ki nố ượ ề ệ . 146 Bài t pậ 148 Ph l c A. Các t khóa c a Javaụ ụ ừ ủ 149 Ph l c B M t s hàm hay s d ngụ ụ ộ ố ử ụ . 150 Tài li u tham kh oệ ả . 151 5 Đ tài 0. Gi i thi u v Javaề ớ ệ ềI. L ch s hình thành và phát tri n ngôn ng l p trình Javaị ử ể ữ ậI.1. Gi i thi u v Javaớ ệ ềJava là m t ngôn ng l p trình m nh đang đ c s d ng r t r ng rãi hi n nay trên toànộ ữ ậ ạ ượ ử ụ ấ ộ ệ th gi i. Trên th c t , Java đ c bi t đ n không ch là m t ngôn ng l p trình mà là m tế ớ ự ế ượ ế ế ỉ ộ ữ ậ ộ platform – m t môi tr ng và công ngh phát tri n – riêng bi t. Khi làm vi c v i Java, ng iộ ườ ệ ể ệ ệ ớ ườ l p trình đ c s h u m t th vi n l n, có tính m v i m t l ng mã ngu n tái s d ngậ ượ ở ữ ộ ư ệ ớ ở ớ ộ ượ ồ ử ụ kh ng l luôn có trên internet. Ngoài ra, các ch ng trình vi t b ng Java có môi tr ng th cổ ồ ươ ế ằ ườ ự thi riêng v i các tính năng b o m t, kh năng tri n khai trên nhi u h đi u hành khác nhau vàớ ả ậ ả ể ề ệ ề nhi u tính năng u vi t khác chúng ta s xem xét trong ph n sau.ề ư ệ ẽ ầI.2 Tóm t t l ch s hình thành c a Java ắ ị ử ủNăm 1991, m t nhóm k s c a hãng SUN bao g m Patrick Naughton, Sun Fellow vàộ ỹ ư ủ ồ James Gosling có ý t ng phát minh ra m t ngôn ng l p trình nh g n có th th c thi đ cưở ộ ữ ậ ỏ ọ ể ự ượ trên các thi t b d ng nh b chuy n kênh c a truy n hình cáp vì các thi t b ki u này có bế ị ạ ư ộ ể ủ ề ế ị ể ộ nh nh . Bên c nh đó, do các hãng khác nhau s d ng các chíp x lý (CPUs) khác nhau nênớ ỏ ạ ử ụ ử m t đ c tính quan tr ng mà ngôn ng này ph i có là đ c l p v i các dòng CPUs khác nhau –ộ ặ ọ ữ ả ộ ậ ớ g i là đ c tính di đ ng. Nhóm đã m m t d án có tên là Green đ hi n th c hóa ý t ng này.ọ ặ ộ ở ộ ự ể ệ ự ưở Đ gi i quy t v n đ di đ ng, nhóm đã s d ng ý t ng c a k s Niklaus Wirth –ể ả ế ấ ề ộ ử ụ ưở ủ ỹ ư ng i sáng l p ngôn ng Pascal – v vi c s d ng c ch thông d ch và máy o (virtualườ ậ ữ ề ệ ử ụ ơ ế ị ả machine).V n n t ng ngôn ng , do hãng SUN phát tri n trên n n UNIX nên h s d ng ngônề ề ả ữ ể ề ọ ử ụ ng l p trình C++ là ch y u. Do đó, ngôn ng m i thiên v h ng đ i t ng (Objectữ ậ ủ ế ữ ớ ề ướ ố ượ Oriented) c a C++ h n là h ng th t c nh Pascal.ủ ơ ướ ủ ụ ưBan đ u nhóm đ t tên cho ngôn ng m i là “Oak” nh ng sau đó đ c chuy n thànhầ ặ ữ ớ ư ượ ể Java do Oak cũng đã là tên m t ngôn ng l p trình khác.ộ ữ ậNăm 1992, d án Green cho ra đ i s n ph m đ u tiên có tên là “*7” nh ng đã khôngự ờ ả ẩ ầ ư đ c chào đón nh mong đ i. Sau đó nhóm đã ph i m t c năm 1993 và n a đ u 1994 đ điượ ư ợ ả ấ ả ử ầ ể ti p th công ngh c a mình. T năm 1994, s phát tri n c a Internet đã t o c h i đ Javaế ị ệ ủ ừ ự ể ủ ạ ơ ộ ể phát tri n nhanh chóng. Nhóm đã phát tri n m t trình duy t có tên là HotJava cho phép cácể ể ộ ệ ch ng trình Java nhúng đ c trong đó (applet). Đây chính là minh ch ng rõ ràng v s c m nhươ ượ ứ ề ứ ạ c a Java đã nhanh chóng đ c c ng đ ng ng i s d ng internet bi t đ n và là ti n đ đủ ượ ộ ồ ườ ử ụ ế ế ề ề ể Java phát tri n r c r nh ngày hôm nay.ể ự ỡ ưPhiên b n đ u tiên 1.0 c a Java ra đ i vào năm 1996, sau đó là phiên b n 1.1 m c dùả ầ ủ ờ ả ặ khá m nh nh ng cũng còn nhi u h n ch .ạ ư ề ạ ếNăm 1998 đánh đ u b c chuy n mình m nh m c a Java v i s ra đ i c a phiên b nấ ướ ể ạ ẽ ủ ớ ự ờ ủ ả 1.2 làm cho Java ti n g n t i m c tiêu “vi t m t l n, ch y kh p n i” (Write once, Runế ầ ớ ụ ế ộ ầ ạ ắ ơ Anywhere). Các nhân viên ti p th c a Java g i đây là phiên b n “Java 2 Standard Editionế ị ủ ọ ả Software Development Kit Version 1.2” ý nói t i s có m t đ ng th i c a 2 phiên b nớ ự ặ ồ ờ ủ ả “Standard Edition” là Micro Edition và Enterprise Edition trong Java.Các phiên b n 1.3, 1.4 là s phát tri n m r ng ti p theo c a phiên b n 1.2. Phiên b nả ự ể ở ộ ế ủ ả ả 1.5 (chuy n sang g i là phiên b n 5.0) đánh d u s tích h p đ y đ nh t các công ngh Java.ể ọ ả ấ ự ợ ầ ủ ấ ệB ng sau cho th y s phát tri n th vi n Java qua các phiên b n:ả ấ ự ể ư ệ ả6 Phiên b nảS các Class và Interfaceố1.0 2111.1 4771.2 15241.3 18401.4 27235.0 3270Hi n t i, Java đã phát tri n t i phiên b n 1.6.ệ ạ ể ớ ảII. Các đ c tr ng c a Javaặ ư ủJava đ c bi t đ n v i các đ c tr ng sau:ượ ế ế ớ ặ ưII.1. Tính đ n gi nơ ảJava đ c phát tri n d a trên C++ nh ng l c b t đi ho c thay th các khái ni m khóượ ể ự ư ượ ớ ặ ế ệ hi u nh header file, con tr , structures, union, operator overloading, virtual base class. Trongể ư ỏ Java ch có th a k đ n mà không có tính đa th a k nh c a C++. Tuy nhiên tính đa th a kỉ ừ ế ơ ừ ế ư ủ ừ ế đ c bi u hi n thông qua vi c s d ng các Interface.ượ ể ệ ệ ử ụII.2. Tính h ng đ i t ngướ ố ượNh đã trình bày trên, Java đ c phát tri n t C++ nên nó là ngôn ng l p trìnhư ở ượ ể ừ ữ ậ h ng đ i t ng.ướ ố ượII.3. Tính phân tánJava cho phép l p trình truy c p các đ i t ng t xa thông qua các giao th c HTTP,ậ ậ ố ượ ừ ứ FTP b ng các ph ng th c nh RMI hay Socket.ằ ươ ứ ưJava hoàn toàn thích h p cho các ng d ng Internet. Các công ngh JSP, Servlet choợ ứ ụ ệ phép xây d ng các website t ng tác v i các tính năng th c thi t i uự ươ ớ ự ố ưII.4. Tính m nh mạ ẽVi c lo i b con tr làm tăng đ tin c y c a ch ng trình. L p trình viên không c nệ ạ ỏ ỏ ộ ậ ủ ươ ậ ầ quan tâm đ n thao tác c p phát ế ấ và gi i phóng b nh . V i Java, b nh đ c gi i phóng tả ộ ớ ớ ộ ớ ượ ả ự đ ng.ộII.5. Tính an toànNgôn ng Java đ c thi t k đ tránh các s c :ữ ượ ế ế ể ự ố• N p ch ng stack lúc runtime.ạ ồ• nh h ng t i b nh n m ngoài ph m vi đ c c p phát.Ả ưở ớ ộ ớ ằ ạ ượ ấ• Đ c và ghi file t doọ ự7 II.6. Tính trung l pậCác ch ng trình vi t b ng Java không b ph thu c vào h đi u hành. Đi u này cóươ ế ằ ị ụ ộ ệ ề ề đ c là do mã ngu n ch ng trình không đ c biên d ch thành mã máy ngay mà thành mãượ ồ ươ ượ ị Bytecode. Khi đem mã Bytecode này ch y trên h máy tính nào thì m t trình thông d ch virtualạ ệ ộ ị machine (Java Vitual Machine-JVM) s thông d ch chúng sang mã máy t ng ng đ th c thi.ẽ ị ươ ứ ể ựMã ngu n -> ByteCodes -> machine code.ồT mã ngu n -> Bytecodes: Trình biên d ch Java.ừ ồ ịT Bytecodes -> machine code: Trình thông d ch Virtual machine. ừ ị Java Virtual Machine – JVMMáy o là m t ph n m m d a trên c s máy tính o. Nó có t p h p các l nh logic đả ộ ầ ề ự ơ ở ả ậ ợ ệ ể xác đ nh các ho t đ ng c a máy tính. Ng i ta có th xem nó nh m t h đi u hành thu nh .ị ạ ộ ủ ườ ể ư ộ ệ ề ỏ JVM thi t l p các l p tr u t ng cho ph n c ng bên d i, h đi u hành, mã đã biên d ch.ế ậ ớ ừ ượ ầ ứ ướ ệ ề ịTrình biên d ch chuy n mã ngu n thành t p các l nh c a máy o mà không ph thu cị ể ồ ậ ệ ủ ả ụ ộ vào ph n c ng c th . Trình thông d ch trên m i máy s chuy n t p l nh này thành ch ngầ ứ ụ ể ị ỗ ẽ ể ậ ệ ươ trình th c thi. Máy o t o ra m t môi tr ng bên trong đ th c thi các l nh b ng cách: ự ả ạ ộ ườ ể ự ệ ằ• N p các file .classạ• Qu n lý b nh ả ộ ớ• D n “rác”, thu h i b nh c p cho các bi n không còn đ c s d ng.ọ ồ ộ ớ ấ ế ượ ử ụVi c không nh t quán c a ph n c ng làm cho máy o ph i s d ng ngăn x p đ l uệ ấ ủ ầ ứ ả ả ử ụ ế ể ư tr các thông tin sau:ữ• Các “Frame” ch a các tr ng thái c a các ph ng th c.ứ ạ ủ ươ ứ• Các toán h ng c a mã bytecode.ạ ủ• Các tham s truy n cho ph ng th c.ố ề ươ ứ• Các bi n c c b .ế ụ ộII.7. Tính di đ ngộKhông gi ng C++ và C, các ki u d li u nguyên th y c a Java đ c c p phát m tố ể ữ ệ ủ ủ ượ ấ ộ l ng b nh c đ nh. Ch ng h n ki u d li u int c a Java luôn là 4 byte (32 bit) trong khiượ ộ ớ ố ị ẳ ạ ể ữ ệ ủ ki u int c a C++ có th hi u là 2 byte ho c 4 byte. Thi t k này giúp cho trình biên d ch luônể ủ ể ể ặ ế ế ị có s bytecode nh nhau trên m i h máy và sau đó phát sinh mã máy theo khuôn d ng cố ư ọ ệ ạ ố đ nh.ịTrong các phiên b n đ u c a Java, v n đ giao di n đ h a cho ng i s d ng (GUI)ả ầ ủ ấ ề ệ ồ ọ ườ ử ụ ch a đ c x lý tri t đ và ph thu c vào h máy. Ngày nay, th vi n GUI c a Java đã đ cư ượ ử ệ ể ụ ộ ệ ư ệ ủ ượ MacintoshTrình biên d chịBytecodeTrình thôngd ch ịJava(Java Interpreter)IBMSparc8 vi t l i hoàn toàn và có tính đ c l p cao giúp cho ch ng trình Java có giao di n gi ng nhauế ạ ộ ậ ươ ệ ố trên m i h máy.ọ ệII.8. Tính thông d chịTrình thông d ch Java s thông d ch mã bytecode sang mã máy n i mà nó đ c cài đ t.ị ẽ ị ơ ượ ặ Quá trình này cũng làm các ch ng trình Java ch y ch m h n. Tuy nhiên đây l i là gi i phápươ ạ ậ ơ ạ ả cho tính di đ ng.ộII.9. Tính th c thi caoựJava s d ng công ngh Just-In-Time (JIT) giúp quá trình thông d ch th c hi n nhanhử ụ ệ ị ự ệ h n. V i công ngh này, nh ng mã bytecode gi ng nhau s ch c n thông d ch m t l n. Ngàyơ ớ ệ ữ ố ẽ ỉ ầ ị ộ ầ nay, công ngh này liên t c đ c c i ti n và cho k t qu v t tr i so v i các trình thông d chệ ụ ượ ả ế ế ả ượ ộ ớ ị truy n th ng. Ví d nh JIT có th qu n lý các đo n mã đ c s d ng th ng xuyên trongề ố ụ ư ể ả ạ ượ ử ụ ườ ch ng trình, t i u chúng đ nâng cao t c đ c th c hi n.ươ ố ư ể ố ộ ự ệII.10. Tính đa lu ngồV i ch ng trình Java, l p trình viên có th cùng lúc qu n lý nhi u ti n trình khácớ ươ ậ ể ả ề ế nhau. Đi u này giúp cho vi c cài đ t các thu t toán song song b ng Java trên các máy tínhề ệ ặ ậ ằ nhi u CPU đ c d dàng h n, đ c bi t trong các ng d ng th i gianề ượ ễ ơ ặ ệ ứ ụ ờ th c.ựII.11. Tính đ ng ộCác ch ng trình Java có th đ c nâng c p mà không nh h ng t i ng i s d ng.ươ ể ượ ấ ả ưở ớ ườ ử ụ Các ph ng th c m i có th đ c cài đ t thêm vào các l p đ i t ng hay các giao di n trongươ ứ ớ ể ượ ặ ớ ố ượ ệ th vi n c a ch ng trình đang ch y.ư ệ ủ ươ ạIII. Các lo i ng d ng c a Javaạ ứ ụ ủ• ng d ng console: Không có giao di n GUI.Ứ ụ ệ• ng d ng đ ho : Có giao di n GUI.Ứ ụ ồ ạ ệ• Applet: Nhúng trong các trang Web.• Servlet: Các class th c thi phía ự web server.• JSP: Các file nhúng mã Java và HTML.• ng d ng EJB, RMI, JMS: Xây d ng ng d ng b i nhi u thành ph n ghép l i,Ứ ụ ự ứ ụ ở ề ầ ạ giao ti p t xa.ế ừIV. Công c và môi tr ng l p trình Javaụ ườ ậHi n nay có r t nhi u môi tr ng phát tri n Java (Integrated Development Environmentệ ấ ề ườ ể - IDE). M i môi tr ng cung c p cho l p trình viên nh ng ti n ích l p trình m c đ khácỗ ườ ấ ậ ữ ệ ậ ở ứ ộ nhau. M t s IDE thông d ng là:ộ ố ụ• Netbeans (mi n phí t i http://ễ ạ www.netbeans.org). • Jcreator (th ng m i).ươ ạ• Jbuilder (th ng m i).ươ ạ• Eclipse (mi n phí ễ http://www.eclipse.org/).9 V. Cài đ t Java ặJava phiên b n Java m i nh t có th download t i đ a ch http://java.sun.com/j2se. Sauả ớ ấ ể ạ ị ỉ đó cài đ t nh ng d ng bình th ng. ặ ư ứ ụ ườTh m c cài đ t m c đ nh c a Java trên ư ụ ặ ặ ị ủ Windows là C:\Program Files\Java\jdk1.6.0_02 (n u phiên b n cài là jdk1.6.0_02). Trong đó có ch a các th m c v i ý nghĩa sau:ế ả ứ ư ụ ớbin Ch a các công c và trình biên d ch Java ứ ụ ịdemo Ch a các ch ng trình Java Demoứ ươdocs Ch a các tài li u mô t th vi n c a Javaứ ệ ả ư ệ ủincludes Ch a các file dùng đ biên d ch các đo n mã ngu n vi t b ng ngôn ng khácứ ể ị ạ ồ ế ằ ữ (native).jre Ch a các file l u thông tin môi tr ng lúc th c thiứ ư ườ ựlib Ch a các file th vi nứ ư ệsrc Ch a mã ngu n javaứ ồTrong th m c \bin có ch a các công c chính c a Java:ư ụ ữ ụ ủTrình biên d ch, 'javac' ịCú pháp:javac [options] sourcecodename.javaTrình thông d ch, 'java' ịCú pháp:java [options] classname Trình d ch ng c, 'jaị ượ vap' javap d ch ng c bytecode và in ra thông tin v các thu c tính (các tr ng), các ph ngị ượ ề ộ ườ ươ th c c a m t l p.ứ ủ ộ ớ Cú pháp:javap [options] classname Công c sinh tài li u, 'javadoc' ụ ệTi n ích này cho phép ta t o ra t p HTML d a trên các l i gi i thích trong mã ch ngệ ạ ệ ự ờ ả ươ trình (ph n n m trong c p d u /* */).ầ ằ ặ ấ Cú pháp:javadoc [options] sourcecodename.javaCh ng trình tìm l i - Debug, 'jdb‘ươ ỗCú pháp:jdb [options] sourcecodename.javahayjdb -host -password [options] sourcecodename.javaCài đ t đ ng d n m c đ nh.ặ ườ ẫ ặ ị1. M Control Panelở2. Ch n Systemọ10 [...]... file ch a mã ngu n Java. Gi s ghi vào th m c c:\JavaSample. ứ ồ ả ử ư ụ 3. G i c a s Command Line c a Windows: T Menu Start, ch n Run và gõ vào l nhọ ử ổ ủ ừ ọ ệ “cmd”. 4. T d u nh c gõ l nh: ừ ấ ắ ệ javac c:\JavaSample\Vidu .java Sau l nh này, n u ch ng trình khơng có l i cú pháp, Java s sinh ra m t file mãệ ế ươ ỗ ẽ ộ bytecode có tên Vidu.class m c đ nh cũng n m trong th m c c:\JavaSample.ặ ị ằ... V. Cài đ t Java ặ Java phiên b n Java m i nh t có th download t i đ a ch http:/ /java. sun.com/j2se. Sauả ớ ấ ể ạ ị ỉ đó cài đ t nh ng d ng bình th ng. ặ ư ứ ụ ườ Th m c cài đ t m c đ nh c a Java trên ư ụ ặ ặ ị ủ Windows là C:\Program Files \Java\ jdk1.6.0_02 (n u phiên b n cài là jdk1.6.0_02). Trong đó có ch a các th m c v i ý nghĩa sau:ế ả ứ ư ụ ớ bin Ch a các công c và trình biên d ch Java ứ ụ ị demo... ch, 'javac' ị Cú pháp:javac [options] sourcecodename .java Trình thơng d ch, &apos ;java& apos; ị Cú pháp :java [options] classname Trình d ch ng c, 'jaị ượ vap' javap d ch ng c bytecode và in ra thơng tin v các thu c tính (các tr ng), các ph ngị ượ ề ộ ườ ươ th c c a m t l p.ứ ủ ộ ớ Cú pháp:javap [options] classname Công c sinh tài li u, 'javadoc' ụ ệ Ti n ích này cho... ng trình Java Demoứ ươ docs Ch a các tài li u mô t th vi n c a Java ệ ả ư ệ ủ includes Ch a các file dùng đ biên d ch các đo n mã ngu n vi t b ng ngôn ng khácứ ể ị ạ ồ ế ằ ữ (native). jre Ch a các file l u thông tin môi tr ng lúc th c thiứ ư ườ ự lib Ch a các file th vi nứ ư ệ src Ch a mã ngu n java ồ Trong th m c \bin có ch a các cơng c chính c a Java: ư ụ ữ ụ ủ Trình biên d ch, 'javac'... c hi n ch ng trình Java trong ví d trên, ta th c hi n theo các b c sau:ể ự ệ ươ ụ ự ệ ướ 1. Dùng m t trình so n th o b t kỳ ho c m t IDE Java thì càng t t đ so n ch ngộ ạ ả ấ ặ ộ ố ể ạ ươ trình. 2. Ghi file v a so n v i tên Vidu .java. ừ ạ ớ đây, tên file ph i b t bu c là Vidu gi ng nhỞ ả ắ ộ ố ư tên l p trong ch ng trình.ớ ươ Ph n m r ng cũng b t bu c là .java đ trình biên d ch Java bi tầ ở ộ ắ ộ... vi n Java ụ ư ệ 64 X.2 Đ t l p vào packageặ ớ 65 Bài t pậ 65 Đ tài 4. L p và ph ng th c tr u t ngề ớ ươ ứ ừ ượ 67 I. Khái ni m l p tr u t ngệ ớ ừ ượ 67 II. Cài đ t l p và ph ng th c tr u t ng trong Java ớ ươ ứ ừ ượ 67 Bài t pậ 68 Đ tài 5. L u tr và x lý đ i t ngề ư ữ ử ố ượ 69 I. L p Vector và giao di n Enumerationớ ệ 69 I.1 L p Vectorớ 69 I.2 Giao di n Enumerationệ 70 II. M ng trong Java. .. HTML d a trên các l i gi i thích trong mã ch ngệ ạ ệ ự ờ ả ươ trình (ph n n m trong c p d u /* */).ầ ằ ặ ấ Cú pháp:javadoc [options] sourcecodename .java Ch ng trình tìm l i - Debug, 'jdb‘ươ ỗ Cú pháp:jdb [options] sourcecodename .java hay jdb -host -password [options] sourcecodename .java Cài đ t đ ng d n m c đ nh.ặ ườ ẫ ặ ị 1. M Control Panelở 2. Ch n Systemọ 10 Đây là mơ hình mơ t vi c chuy n... Java, m i ch ng trình n u c n th c thi đ u b tọ ươ ế ầ ự ề ắ đ u t hàm main. Trình thơng d ch s tìm hàm main làm đi m kh i phát cho m t ng d ngầ ừ ị ẽ ể ở ộ ứ ụ Java. Dòng 5 và 7 cũng là đánh d u m và đóng cho m t kh i l nh thu c hàm main.ấ ở ộ ố ệ ộ Dòng 6: Câu l nh in ra màn hình dịng ch “Hello, World!”. Các l nh trong Java luônệ ữ ệ đ c k t thúc b i d u ;.ượ ế ở ấ I.2. Th c hi n ch ng trình Java. ự... ng ừ ượ hóa 47 Đ tài 2. Nh p môn Java ậ I. Vi t và th c hi n m t ch ng trình Java ế ự ệ ộ ươ I.1 Tìm hi u mã ngu n m t ch ng trình đ n gi nể ồ ộ ươ ơ ả 1. /* Day la chuong trinh vi du*/ 2. public class Vidu 3. { 4. public static void main(String[] args) 5. { 6. System.out.println("Hello, World!"); 7. } 8. } Dòng 1: Dịng chú thích trong m t ch ng trình Java. Trong khi l p trình, ta c n... th y c a Java đ c c p phát m tố ể ữ ệ ủ ủ ượ ấ ộ l ng b nh c đ nh. Ch ng h n ki u d li u int c a Java luôn là 4 byte (32 bit) trong khiượ ộ ớ ố ị ẳ ạ ể ữ ệ ủ ki u int c a C++ có th hi u là 2 byte ho c 4 byte. Thi t k này giúp cho trình biên d ch lnể ủ ể ể ặ ế ế ị có s bytecode nh nhau trên m i h máy và sau đó phát sinh mã máy theo khn d ng cố ư ọ ệ ạ ố đ nh.ị Trong các phiên b n đ u c a Java, v . ngu n java ồTrong th m c in có ch a các công c chính c a Java: ư ụ ữ ụ ủTrình biên d ch, 'javac' ịCú pháp:javac [options] sourcecodename.javaTrình. ễ http://www.eclipse.org/).9 V. Cài đ t Java Java phiên b n Java m i nh t có th download t i đ a ch http:/ /java. sun.com/j2se. Sauả ớ ấ ể ạ ị ỉ đó cài