Professional Documents
Culture Documents
Tai Lieu Tham Khao Java
Tai Lieu Tham Khao Java
1.1.2. Java l g?
Java l ngn ng lp trnh hng i tng. Java c th gii quyt hu ht cc cng vic m cc ngn ng khc c th lm c. Java l ngn ng va bin dch va thng dch. M ngun c bin dch bng cng c JAVAC chuyn thnh dng ByteCode, sau c thc thi trn tng loi my c th nh chng trnh thng dch. Mc tiu ca cc nh thit k Java l cho php ngi lp trnh vit chng trnh mt ln nhng c th chy trn bt c phn cng c th. Ngy nay, Java c s dng rng ri vit chng trnh chy trn Internet. N l ngn ng lp trnh hng i tng c lp thit b, khng ph thuc vo h iu hnh. N khng ch dng vit cc ng dng chy n l hay trong mng m cn xy dng cc trnh iu khin thit b cho in thoi di ng, PDA,
Trnh bin dch s chuyn cc chng trnh vit bng C, C++ hay ngn ng khc thnh m my nhng ph thuc vo CPU. Nn khi mun chy trn loi CPU khc, chng ta phi bin dch li chng trnh. Mi trng pht trin ca Java c chia lm hai phn: Trnh bin dch v trnh thng dch. Khng nh C hay C++, trnh bin dch ca Java chuyn m ngun thnh dng bytecode c lp vi phn cng m c th chy trn bt k CPU no. Nhng thc thi chng trnh di dng bytecode, ti mi my cn phi c trnh thng dch ca Java hay cn gi l my o Java. My o Java chuyn bytecode thnh m lnh m CPU thc thi c.
1.2.4 Mnh m
Trang 2
1.2.5 Bo mt
Java cung cp mt s lp kim tra bo mt. Lp u tin, d liu v cc phng php c ng gi bn trong lp. Chng ch c truy xut thng qua cc giao din m lp cung cp. Java khng h tr con tr v vy khng cho php truy xut b nh trc tip. N cng ngn chn khng cho truy xut thng tin bn ngoi ca mng bng k thut trn v cng cung cp k thut dn rc trong b nh. Cc c trng ny to cho Java an ton v c kh nng c ng cao. Trong lp th hai, trnh bin dch kim sot m bo m an ton. Lp th ba c m bo bi trnh thng dch. Chng kim tra xem bytecode c m bo cc qui tc an ton trc khi thc thi. Lp th t kim sot vic np cc lp ln b nh gim st vic vi phm gii hn truy xut trc khi np vo h thng.
1.2.6 Phn tn
Java c th dng xy dng cc ng dng c th lm vic trn nhiu phn cng, h iu hnh v giao din ha. Java c thit k cho cc ng dng chy trn mng. V vy chng c s dng rng ri trn Internet, ni s dng nhiu nn tng khc nhau.
1.2.7 a lung
Chng trnh Java s dng k thut a tin trnh (Multithread) thc thi cc cng vic ng thi. Chng cng cung cp gii php ng b gia cc tin trnh. c tnh h tr a tin trnh ny cho php xy dng cc ng dng trn mng chy uyn chuyn.
1.2.8 ng
Java c thit k nh mt ngn ng ng p ng cho nhng mi trng m. Cc chng trnh Java b xung cc thng tin cho cc i tng ti thi gian thc thi. iu ny cho php kh nng lin kt ng cc m.
1.3.1 Applets
y l chng trnh chy trn Internet thng qua cc trnh duyt h tr Java nh IE hay Netscape. Bn c th dng cc cng c ca Java xy dng Applet. Applet c nhng bn trong trang Web hoc file HTML. Khi trang Web hin th trong trnh duyt, Applet s c np v thc thi. Ti liu tham kho Java
1.3.3 ng dng ha
y l cc chng trnh Java chy c lp cho php ngi dng tng tc qua giao din ha.
1.3.4 Servlet
Java thch hp pht trin ng dng nhiu lp. Applet l chng trnh ha chy trn trnh duyt ti my trm. cc ng dng Web, my trm gi yu cu ti my ch. My ch x l v gi ngc kt qu tr li my trm. Cc chng trnh Java API chy trn my ch gim st cc qu trnh ti my ch v tr li cc yu cu ca my trm. Cc chng trnh Java API chy trn my ch ny m rng kh nng ca cc ng dng Java API chun. Cc ng dng trn my ch ny c gi l cc Servlet. hoc Applet ti my ch. Cc x l trn Form ca HTML l cch s dng n gin nht ca Servlet. Chng cn c th c dng x l d liu, thc thi cc transaction v thng c thc thi qua my ch Web.
1.4.1 My o Java l g ?
My o l mt phn mm da trn c s my tnh o. N c tp hp cc lnh logic xc nh cc hot ng ca my tnh. Ngi ta c th xem n nh mt h iu hnh thu nh. N thit lp cc lp tru tng cho: Phn cng bn di, h iu hnh, m bin dch. Trnh bin dch chuyn m ngun thnh tp cc lnh ca my o m khng ph thuc vo phn cng c th. Trnh thng dch trn mi my s chuyn tp lnh ny thnh chng trnh thc thi. My o to ra mt mi trng bn trong thc thi cc lnh bng cch: Trang 4
1.4.2 Qun l b nh v dn rc
Trong C, C++ hay Pascal ngi lp trnh s dng phng php nguyn thy cp pht v thu hi b nh vng Heap. Heap l vng b nh ln c phn chia cho tt c cc thread. qun l Heap, b nh c theo di qua cc danh sch sau: Danh sch cc vng nh rnh cha cp pht. Danh sch cc vng cp. Khi c mt yu cu v cp pht b nh, h thng xem xt trong danh sch cha cp pht ly ra khi b nh u tin c kch c st nht. Chin thut cp pht ny gim ti thiu vic phn mnh ca heap. Coalescing l k thut khc cng gim thiu vic phn mnh ca heap bng cch gom li cc vng nh cha dng lin nhau. Cn k thut sp xp li cc phn dng to vng nh rnh ln hn gi l Compaction. Java s dng hai heap ring bit cho cp pht vng nh tnh v vng nh ng. Mt heap (heap tnh) cha cc nh ngha v lp, cc hng v danh sch cc phng php. Heap cn li (heap ng) c chia lm hai phn c cp pht theo hai chiu ngc nhau. Mt bn cha i tng cn mt bn cha con tr tr n i tng . Handle l cu trc bao gm hai con tr. Mt tr n bng phng php ca Ti liu tham kho Java
i tng, con tr th hai tr n chnh i tng . Ch rng khi compaction cn cp nht li gi tr con tr ca cu trc handle. Thut ton dn rc c th p dng cho cc i tng t trong heap ng. Khi c yu cu v b nh, trnh qun l heap trc tin kim tra danh sch b nh cha cp pht. Nu khng tm thy khi b nh no ph hp (v kch c) th trnh dn rc s c kch hot khi h thng rnh. Nhng khi i hi b nh cp bch th trnh dn rc s c kch hot ngay.
Trnh dn rc gi hm Finalize trc khi dn dp i tng. Hm ny s dn dp cc ti nguyn bn ngoi nh cc file ang m. Cng vic ny khng c trnh dn rc thc thi. 1.4.3 Qu trnh kim tra file .class
Vic kim tra c p dng cho tt c cc file .class sp c np ln b nh m bo tnh an ton. Trnh Class Loader s kim tra tt c cc file .class khng thuc h iu hnh vi mc ch gim st s tun th cc nghi thc pht hin cc file .class c nguy c gy h hng n b nh, h thng file cc b, mng hoc h iu hnh. Qu trnh kim tra s xem xt n tnh ton vn ton cc ca lp. File .class bao gm ba phn logic l: Bytecode Thng tin v Class nh phng php, giao din v cc gi tr c tp hp trong qu trnh bin dch. Cc thuc tnh v lp. Cc thng tin ca file .class c xem xt ring r trong cc bng sau: Bng Field cha cc thuc tnh Bng Method cha cc hm ca class Bng Interface cha cc giao din v cc hng s Qu trnh kim tra file .class c thc hin bn mc: Mc u tin thc hin vic kim tra c php m bo tnh cu trc v tnh ton vn c php ca file .class c np. Mc th hai s xem xt file .class m bo cc file ny khng vi phm cc nguyn tc v s nht qun ng ngha. Mc th ba s kim tra bytecode. Trong bc ny cc thng tin so snh s l s thng s truyn ca hm, kh nng truy xut sai ch s ca mng, chui, biu thc. Mc th t s kim tra trong thi gian thc thi gim st cc vic cn li m ba bc trn cha lm. V d nh lin kt ti cc lp khc trong khi thc thi, hay kim tra quyn truy xut. Nu mi iu tha mn, lp s c khi to.
Trang 6
1.6.1 java.lang
Ti liu tham kho Java
Cha cc lp quan trng nht ca ngn ng Java. Chng bao gm cc kiu d liu c bn nh Character, Integer, Chng cng cha cc lp lm nhim v x l li v cc lp nhp xut chun. Mt vi lp quan trng khc nh String hay StringBuffer.
1.6.2 java.applet
y l package nh nht cha mt mnh lp Applet. Cc lp Applet nhng trong trang Web u dn xut t lp ny.
1.6.3 java.awt
Package ny c gi l Abstract Window Toolkit (AWT). Chng cha cc ti nguyn dng to giao din ha. Mt s lp bn trong l: Button, GridBagLayout, Graphics.
1.6.4 java.io
Cung cp th vin nhp xut chun ca ngn ng. Chng cho php to v qun l dng d liu theo mt vi cch.
1.6.5 java.util
Package ny cung cp mt s cng c hu ch. Mt vi lp ca package ny l: Date, Hashtable, Stack, Vector v StringTokenizer.
1.6.6 java.net
Cung cp kh nng giao tip vi my t xa. Cho php to v kt ni vi Socket hoc URL.
1.6.7 java.awt.event
Cha cc lp dng x l cc s kin trong chng trnh nh chut, bn phm.
1.6.8 java.rmi
Cng c gi hm t xa. Chng cho php to i tng trn my khc v s dng cc i tng trn my cc b.
1.6.9 java.security
Cung cp cc cng c cn thit m ha v m bo tnh an ton ca d liu truyn gia my trm v my ch.
1.6.10 java.sql
Package ny cha Java DataBase Connectivity (JDBC), dng truy xut c s d liu quan h nh Oracle, SQL Server.
dataType varName;
Trong , dataType l kiu d liu ca bin, varName l tn bin. Trong Java, vic t tn bin phi tun theo cc quy tc sau: Ch c bt u bng mt k t (ch), hoc mt du gch di , hoc mt k t dollar Khng c khong trng gia tn Bt u t k t th hai, c th dng cc k t (ch), ch s, du dollar, du gch di Khng trng vi cc t kho C phn bit ch hoa ch thng
hn sang kiu c kch thc ln hn. Kiu bin i ny khng lm mt thng tin. V d chuyn t int sang float. Chuyn kiu loi ny c th c thc hin ngm nh bi trnh bin dch. Thu hp (narrowwing): qu trnh lm trn s t kiu d liu c kch thc ln hn sang kiu c kch thc nh hn. Kiu bin i ny c th lm mt thng tin nh v d trn. Chuyn kiu loi ny khng th thc hin ngm nh bi trnh bin dch, ngi dng phi thc hin chuyn kiu tng minh.
2.2.2. Cc ton t
Java cung cp cc dng ton t sau: Ton t s hc Ton t bit Ton t quan h Ton t logic Ton t iu kin Ton t gn 2.2.2.1.Ton t s hc Cc ton hng ca cc ton t s hc phi dng s. Cc ton hng kiu boolean khng s dng c, song cc ton hng k t cho php s dng loi ton t ny. Mt vi kiu ton t c lit k trong bng di y. Ton t + * / % ++ -1 M t Cng. Tr v gi tr tng hai ton hng Tr Tr v kt qu ca php tr. Nhn Tr v gi tr l tch hai ton hng. Chia Tr v gi tr l thng ca php chia Php ly modul Gi tr tr v l phn d ca php chia Tng dn Tng gi tr ca bin ln 1. V d a++ tng ng vi a = a + 1 Gim dn Gim gi tr ca bin 1 n v. V d a-- tng ng vi a = a -
Trang 12
-=
*=
/=
%=
2.2.2.2.Ton t Bit Cc ton t dng bit cho php ta thao tc trn tng bit ring bit trong cc kiu d liu nguyn thu. Ton t ~ & M t Ph nh bit (NOT) Tr v gi tr ph nh ca mt bt. Ton t AND bt Tr v gi tr l 1 nu cc ton hng l 1 v 0 trong cc trng hp khc Ton t OR bt Tr v gi tr l 1 nu mt trong cc ton hng l 1 v 0 trong cc trng hp khc. Ton t Exclusive OR bt Tr v gi tr l 1 nu ch mt trong cc ton hng l 1 v tr v 0 trong cc trng hp khc.
>>
Dch sang phi bt Chuyn ton b cc bt cu mt s sang phi mt v tr, gi nguyn du ca s m. Ton hng bn tri l s b dch cn s bn phi ch s v tr m cc bt cn dch. Dch sang tri bt Chuyn ton b cc bt cu mt s sang tri mt v tr, gi nguyn du cu s m. Ton hng bn tri l s b dch cn s bn phi ch s v tr m cc bt cn dch.
<<
2.2.2.3.Cc ton t quan h Cc ton t quan h kim tra mi quan h gia hai ton hng. Kt qu ca mt biu thc c dng cc ton t quan h l nhng gi tr Boolean (logic ng hoc sai). Cc ton t quan h c s dng trong cc cu trc iu khin. Ton t == != > M t So snh bng Ton t ny kim tra s tng ng ca hai ton hng So snh khc Kim tra s khc nhau ca hai ton hng Ln hn Kim tra gi tr ca ton hng bn phi ln hn ton hng bn tri hay khng Nh hn Kim tra gi tr ca ton hng bn phi c nh hn ton hng bn tri hay khng Ln hn hoc bng Kim tra gi tr ca ton hng bn phi c ln hn hoc bng ton hng bn tri hay khng Nh hn hoc bng Kim tra gi tr ca ton hng bn phi c nh hn hoc bng ton hng bn tri hay khng
<
>=
<=
2.2.2.4.Cc ton t logic Cc ton t logic lm vic vi cc ton hng Boolean. Ton t && M t V (AND) Tr v mt gi tr ng (True) nu ch khi c hai ton t c gi tr True Hoc (OR) Trang 14
||
2.2.2.5.Cc ton t iu kin Ton t iu kin l mt loi ton t c bit v n bao gm ba thnh phn cu thnh biu thc iu kin. C php:
3. Cc ton t quan h nh >,<,>=,<=,= =,!= 4. Cc ton t logic v Bit nh &&,||,&,|,^ 5. Cc ton t gn nh =,*=,/=,+=,-= Thay i th t u tin thay i th t u tin trn mt biu thc, bn c th s dng du ngoc n Ti liu tham kho Java
(): Phn c gii hn trong ngoc n c thc hin trc. Nu dng nhiu ngoc n lng nhau th ton t nm trong ngoc n pha trong s thc thi trc, sau n cc vng pha ngoi. Trong phm vi mt cp ngoc n th quy tc th t u tin vn gi nguyn tc dng.
CU HI V BI TP CHNG 2
1.Trong cc tn sau, tn no c th dng lm tn bin trong java: _123 a$ 1abc class vi du $123 2.Mun lu gi mt bin s nguyn dng m c gi tr ln nht l mt triu th dng kiu d liu no l tit kim b nh nht? 3.Mun lu gi mt bin s nguyn m m c gi tr nh nht l m mt t th dng kiu d liu no l tit kim b nh nht? 4.Cho bit kt qu thu c khi thc hin on chng trnh sau?
class me{ public static void main(String args[]){ int sales = 820; int profit = 200; System.out.println((sale +profit)/10*5); } }
Trang 16