Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 78 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
78
Dung lượng
621,89 KB
Nội dung
- 1 - TRNG I HC HÀNG HI KHOA CÔNG NGH THÔNG TIN B MÔN K THUT MÁY TÍNH BÀI GING MÔN HC LP TRÌNH MNG Hi Phòng – 2009 - 2 - MC LC Chng 1: CÁC KHÁI NIM CN BN V MNG VÀ JAVA . I. CÁC KHÁI NIM CN BN V MNG . II. LCH S PHÁT TRIN CA JAVA . ch đn thun là mt ngôn ng lp trình mà nó là gii pháp cho nhiu vn đ. . III. CU TRÚC CA MÁY O JAVA IV. CÁC C TRNG CA NGÔN NG LP TRÌNH JAVA V. CÁC N BN JAVA VII. CÁC KIU NG DNG TRONG JAVA . Chng 2. NGÔN NG L P TRÌNH JAVA . I. NH DANH, KIU D LIU VÀ KHAI BÁO BIN . II. CU TRÚC LNH TRONG JAVA III. QUN LÝ NGOI L IV. CÁC LP VÀ CÁC I TNG TRONG JAVA V. CÁC LUNG VÀO RA . VI. LP TRÌNH TUYN ON TRONG JAVA . Chng 3. LP TRÌNH MNG BNG JAVA . I. X LÝ A CH IP II. CÁC LP URL VÀ URLConnection . III. LP TRÌNH SOCKET . VI. LP TRÌNH APPLET . V. LP TRÌNH C S D LIU VI. LP TRÌNH SOCKET TIÊN TIN . TÀI LIU THAM KHO CHÍNH . - 3 - Chng 1: CÁC KHÁI NIM CN BN V MNG VÀ JAVA I. CÁC KHÁI NIM CN BN V MNG Mng máy tính Là tp hp các máy tính đc ni vi nhau bi các đng truyn vt lý và theo mt kin trúc nào đó. Kin trúc mng cp ti hai khía cnh là Hình trng mng và Giao thc mng. Hình trng mng: Là cách ni các máy tính vi nhau. Ngi ta phân loi mng theo hình trng mng nh mng sao, mng bus, mng ring… Giao thc mng: Là tp hp các qui tc qui c truyn thông ca mng mà tt c các thc th tham gia truyn thông phi tuân theo. Giao thc TCP/IP IP (Internet Protocol)-Giao thc cung cp kh nng kt ni các mng con thành liên mng. TCP Là giao thc hng liên kt (connection oriented) bt buc phi có giai đon thit lp và gii phóng liên kt. Host Máy tính đc kt ni vi Internet đc gi là host. a ch IP: Mi host đc đnh danh duy nht trên mng và đnh danh này đc gi là đa ch Internet hay đa ch IP. Ví d Máy tính có hostname là www.microsoft.com có đa ch IP là 207.46.230.219 Máy ch DNS Tin thân ca mng Internet là mng Arpanet ca B quc phòng M. Thi k đó s máy tính mc đ đ lit kê chúng trong mt tp tin vn bn và lu trên tng máy kt ni vào mng. Thông tin trong tp tin này bao gm đa ch IP và hostname. Tuy nhiên do quy mô ca mng ngày càng m rng ngi ta cn có các máy tính chuyên dng đ lu tr và phân gii tên min. Các máy tính có chc nng nh vy đc gi là Máy ch DNS. Dch v tên min (Domain Name Service) Là tp hp nhiu máy tính đc liên kt vi nhau và phân b rng trên mng Internet. Các máy tính này đc gi là name server. Chúng cung cp cho ngi dùng tên, đa ch IP ca bt k máy tính nào ni vào mng Internet hoc tìm ra nhng name server có kh nng cung cp thông tin này. C ch truy tìm đa ch IP thông qua dch v DNS Gi s trình duyt cn tìm tp tin hay trang Web ca mt máy ch nào đó, khi đó c ch truy tìm đa ch s din ra nh sau: 1. Trình duyt yêu cu h điu hành trên client chuyn hostname thành đa ch IP. 2. Client truy tìm xem hostname có đc ánh x trong tp tin localhost, hosts hay không? -Nu có client chuyn đi hostname thành đa ch IP và gi v cho trình duyt. -Nu không client s tìm cách liên lc vi máy ch DNS. 3. Nu tìm thy đa ch IP ca hostname máy ch DNS s gi đa ch IP cho client. 4. Client gi đa ch IP cho trình duyt. 5. Trình duy t s dng đa ch IP đ liên lc vi Server. 6. Quá trình kt ni thành công. Máy ch gi thông tin cho client. - 4 - Cng (Port) Khi kt ni vào máy ch ta có th yêu cu nhiu dch v khác nhau. Mi dch v đu có cách gi và nhn d liu theo qui c riêng. TCP/UDP ch chu trách nhim gi d liu t máy tính này ti máy tính khác. Vic gi d liu cho dch v nào thì thông qua cng (port). Mi máy tính vi mt đa ch IP có 65535 cng. Mi cng đc dành cho mt dch v đc bit. Chng hn dch v Web đc chy trên cng 80. Socket Socket là mt phng pháp đ thit lp kt ni truyn thông gia mt chng trình yêu cu dch v và mt chng trình cung cp dch v trên mng LAN, WAN, hay Internet và đôi khi là gia các tin trình trong cùng mt máy tính. Thông tin ca mt Socket bao gm đa ch IP và s hiu cng. URL (Uniform Resource Locator) là mt con tr ch ti mt tài nguyên c th trên Internet v trí xác đnh. Cú pháp ca URL: protocol://hostname [:80]/path/filename#section Ví d: http://www.sun.com/index.html II. LCH S PHÁT TRIN CA JAVA Lch s phát trin ca Java bt đu nm 1991 khi SUN tin hành các d án lp trình cho vi x lý dùng trong các thit b đin t khác nhau. C ++ không đáp ng đc các yêu cu này vì C ++ ch tính kh chuyn v mã ngun nhng sau khi biên dch li hoàn toàn ph thuc vào tng b vi x lý c th. Vi x lý dùng trong các thit b đin t rt đa dng và có vòng đi khá ngn ngi. Vic thay đi b x lý dn đn cn phi thay đi trình biên dch C ++ , điu này gây lên tn kém. SUN đã thit k mt ngôn ng lp trình mi có tính kh chuyn cao hn đó chính là Java. Java là tên đa phng ni xut x ca mt loi cà phê ngon ni ting. Java đc chính thc công b nm 1995 và ngay lp tc đã to lên mt trào lu 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 đ. III. CU TRÚC CA MÁY O JAVA Chng trình ng dng hot đng bng cách s dng các đi tng ca Java (Java Object). Máy o Java to thành mt lp ngn cách gia trình ng dng và h điu hành. Cu trúc ca máy o Java (Java Virtual Machine) Máy o Java bao gm các thành phn sau : Trình np lp (Class Loader), Trình kim tra lp (Class Verifier), và Trình thc thi (Execution Unit). Trình np lp: đc bytecode t đa hoc t kt ni mng. Trình kim tra lp: (Class Verifier) Kim tra các lp s không sinh ra các li nh hng ti h thng khi thc thi. Trình thc thi s thc hin các lnh đc quy đnh trong tng bytecode. IV. CÁC C TRNG CA NGÔN NG LP TRÌNH JAVA Java là mt môi trng đc lp (Independent Platform) Do cu trúc ca Java nên ta có th son tho chng 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ó. Java là mt ngôn ng lp trình hng đi tng Java là mt ngôn ng lp trình hng đi tng thun túy, mi th trong Java đu là đi tng. - 5 - Java là mt ngôn ng 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 trng x lý phân tán 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 kt vi th vin ch đc thc hin vào lúc chy chng trình do vy mã byte thng gn nh. Chng 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 lý đa tuyn đon. C ch truyn thông đip thun tin cho vic t chc mng. Java là môi trng 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 thit k đ đm bo an toàn cho ngi 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 tng minh. Trình biên dch Java t chi sinh ra mã byte nu 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 nng phân bit nhng lp đn t mng và nhng lp np t h thng. Nh kh nng 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 chng trình bo đm chng trình Java đã đc biên dch mt cách đúng đn. Khi thc hin s không gây li nh hng ti h thng cng 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 b o đm mã đang xét không vi phm qui tc an toàn đã đc thit lp. Các thao tác ca ng dng đc lit vào kh nng gây nguy him nh đc, xóa tp đu phi đc Trình bo an cho phép. Java cung cp cho ngi lp trình mt th vin khng l Java cung cp cho ngi 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 chng trình ngi 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 ngi lp trình. Các vùng nh đc t đng gii phóng nu nh nó không tham chiu đn bt k đi tng nào đang hot đng Chi phí phát tri n ng dng bng Java thp 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í. V. CÁC N BN JAVA J2SE ( Java 2 Platform, Second Edition) ây là n bn chun, bao gm mt môi trng 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 ) - 6 - n bn này cho phép xây dng các ng dng Java cho các “vi thit b” (các thit b có màn hình hin th và h tr b nh ti thiu, nh đin thoi di đngm và các thit b tr giúp cá nhân). VI. CÔNG C JAVA 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 đ th c thi các ng dng Java trc tip t tp tin lp. Apppletviewer: Thc thi Java Applet t tài liu html. VII. 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 chng trình liên kt vi các vn bn Web và đc khi đng bi trình duyt h tr Java. 2 - 7 - Chng 2. NGÔN NG LP TRÌNH JAVA I. NH DANH, KIU D LIU VÀ KHAI BÁO BIN nh danh (Identifier) Tên gi ca các thành phn trong chng trình đc gi là đnh danh nh danh thng đc s dng đ xác đnh bin, kiu, phng thc, lp Qui tc cho đnh danh: • nh danh là mt dãy các ký t gm các ch cái, ch s và các ký t khác: ‘_’, $, . • nh danh không bt đu bng ch s. • dài ca đnh danh không gii hn. • Java phân bit ch hoa và ch thng. Qui c đt tên • nh danh cho các lp: ch cái đu ca mi t trong đnh danh đu vit hoa Ví d: MyClass, HocSinh, SocketServer, URLConnection, . • nh danh cho các bin, phng thc, đi tng: ch cái đu ca mi t trong đnh danh đu vit hoa tr t đu tiên. Ví d: hoTen (h tên), namSinh (nm sinh), tinhTong (tính tng). Chú thích Chú thích trong các chng trình đ gi i thích công vic hoc cách thc hin đ ngi đc d hiu và tin theo dõi. • Chú thích trên mt dòng //ây là chú thích dòng • Chú thích trên nhiu dòng /* ây là chú thích khi nhiu dòng */ Các kiu d liu nguyên thy (primitive datatype) Kiu d liu c bn đnh ngha sn đc gi là kiu nguyên thy Kiu nguyên thy bao gm các kiu: • Kiu nguyên: char (ký t), byte, short, int, long. • Kiu s thc: float, double. • Ki u logic: boolean. Kiu d liu rng char 16 byte 8 short 16 int 32 long 64 float 32 doube 64 - 8 - Chú ý: • Các giá tr kiu nguyên thy không phi là đi tng. • Mi kiu d liu có min xác đnh và các phép toán xác đnh trên nó. • Mi kiu d liu nguyên thy có mt lp gói (wrapper class) đ s dng các kiu nguyên thy nh là các đi tng. Kiu d liu Lp gói char Char byte Byte short Short int Integer long Long float Float double Double Khai báo các bin a. Các loi bin trong Java • Các bin thành phn: là các thành phn ca lp và đc khi to giá tr mi khi mt đi tng ca lp đc to ra. Ví d: URL u ; HocSinh hs = new HocSinh(“Tuan Anh”); • Các bin tham chiu đi tng (Object Reference) là bin đc s dng đ x lý các đi tng. • Các bin tnh (static variable) là bin ca lp đi din cho c lp. • Các bin c c b: là bin đc khai báo trong các phng thc và trong các khi. b. Khai báo bin kieu_du_lieu bien; Ví d: int i; char b,c; float giaBan, dienTich; c. Khi to giá tr cho các bin Các giá tr mc đnh cho các bin thành phn Kiu d liu Giá tr mc đnh boolean false char ‘\u000’ byte, short, int, long 0 float, double +0.0F,+0.0D tham chiu đi tng null - 9 - Qui tc chuyn đi kiu trong Java (<kieu>)<bieu_thuc> Ví d float f = (float)100.15D; M rng và thu hp kiu byte short int long float double char Ví d 1:M rng kiu char c = ‘A’; int k =c; Ví d 2:Thu hp kiu int k =10; char c=(char)k; II. CU TRÚC LNH TRONG JAVA Khi lnh Khi lnh trong Java tng t nh khi lnh trong C/C++. ̇ Lnh gán Ví d int a, b, c,d; d=b*b-4*a*c; ̇ Khi lnh Mt khi lnh nm trong cp ngoc { } ̇ Biu thc điu kin Biu thc điu kin A?B:C tr v giá tr B nu A có giá tr true, tr v giá tr C nu A có giá tr false. ̇ Các lnh điu khin dòng thc hin trong Java - Các lnh điu khin r nhánh chng trình Lnh if đn gin Cú pháp if<biu_thc_đk> <câu_lnh> Lnh if – else Cú pháp if <biu_thc_đk> <câu_lnh_1>; else - 10 - <câu_lnh_2>; Ví d Hàm tính tng các s dng ca mt mng public double tongDuong(double[] v) { if(v.length>1) { for(int i=0; i<v.length; i++) if(v[i]>0) tong+=v[i]; } else { tong = v[0]; } return tong; } Lnh switch Lnh này cho phép r nhánh theo nhiu nhánh tuyn chn da trên các giá tr nguyên ca biu thc. Cú pháp: switch(<biu_thc_nguyên>) { case nhan_1:<câu_lnh_1>; case nhan_2:<câu_lnh_2>; case nhan_3:<câu_lnh_3>; . case nhan_n:<câu_lnh_n>; default:<câu_lnh>; } Lnh lp Lnh lp cho phép mt khi các câu lnh thc hin m t s ln lp li. Lnh while while (<iu_kin>) <Thân_chu_trình> Chú ý: Có th <Thân_chu_trình> không đc thc hin ln nào nu ngay t đu <iu_kin> có giá tr false. <iu_kin> là biu thc boolean. [...]... xu t m ng vào m ng b In d li u t m ng b ra màn hình import java.io.*; class LuongXuatMang { public static void main(String[] args) { try{ //Tao mot luong xuat mang 100 byte ByteArrayOutputStream os = new ByteArrayOutputStream(100); //Ghi du lieu vao luong for(byte i=0;i . NegativeArraySizeException { ArraySizeException() { super("Nhap kich thuoc mang khong hop le"); } } class ThrowDemo { int size, a[]; ThrowDemo(int. - C:MyJavaBaitap>java ThrowDemo -1 ArraySizeException: Nhap kich thuoc mang khong hop le Gii thích: Chúng ta đã to ra mt lp có tên ArraySizeException,