Академический Документы
Профессиональный Документы
Культура Документы
Ch
ng 1
Gi i thi u
S pht tri n c a Java H ng t i ng i dng
Gi ng v i C / C++
Cc
c tr ng c a Java
n gi n H ng i t ng c l p ph n c ng M nh B om t Phn tn a lu ng ng
Cc ch ng trnh d ch truy n th ng
Ch
ng trnh d ch Java
Cc lo i ch
ng trnh Java
My o Java
L m t ph n m m d a trn c s my tnh o L t p h p cc l nh logic xc nh ho t ng c a my tnh c xem nh l m t h i u hnh thu nh N thi t l p l p tr u t ng cho: Ph n c ng bn d i H i u hnh M bin d ch
Qu trnh d ch ch Java
ng trnh
Trnh bin d ch chuy n m ngu n thnh t p cc l nh khng ph thu c vo ph n c ng c th Trnh thng d ch trn m i my chuy n t p l nh ny thnh ch ng trnh th c thi My o t o ra m t mi tr ng th c thi cc l nh b ng cch:
N p cc file .class Qu n l b nh D n rc
Java 2 Phin b n m i nh t
B cng c JDK
Trnh bin d ch, 'javac'
Trnh d ch ng
c, 'javap'
Ch
Cc gi chu n c a Java
java.lang java.applet java.awt java.io java.util java.net java.awt.event java.rmi java.security java.sql
Cc
c tr ng m I c a Java2
Ch
Cc ph n t
ng 2
Java
c b n ngn ng
V d m t ch ng trnh Java m u
// This is a simple program called Ex1.java class Ex1 { public static void main(String args[]) { System.out.println(My first program in Java); } }
Bin d ch ch
ng trnh java
Truy n
i s trong dng l nh
class Pass { public static void main(String parameters[]) { System.out.println("This is what the main method received"); System.out.println(parameters[0]); System.out.println(parameters[1]); System.out.println(parameters[2]); } }
Truy n
Cc ph n t c b n c angn ng Java
L p v ph Methods) Ki u d li u Bi n s Ton t C u trc i u khi n ng th c (Classes &
L p trong Java
C php khai bo l p (Class)
class Classname { var_datatype variablename; : met_datatype methodname(parameter_list) : }
L pm u
Ki u d li u
Ki u d li u c s (Primitive Data Types) Ki u d li u tham chi u (Reference data types)
Ki u d li u c s
byte char boolean short int long float double
Ki u d li u tham chi u
M ng (Array) L p (Class) Interface
p ki u (Type Casting)
Ki u d li u ny c chuy n m t ki u d li u khc V d
float c = 34.89675f; int b = (int)c + 10;
i sang
Bi n s
Khai bo bi n s g m 3 thnh ph n:
Ki u d li u c a bi n s Tn bi n Gi tr ban u c a bi n (khng b t bu c)
C php
datatype identifier [=value][, identifier[=value]...];
Nh ng t kha c a Java
Khai bo m ng
Ba cch khai bo m ng:
datatype identifier [ ]; datatype identifier [ ] = new datatype[size]; datatype identifier [ ]= {value1,value2,.valueN};
Ph ng th c (Methods in Classes)
Ph ng th c c nh ngh a nh l m t hnh ng ho c m t tc v th t s c a i t ng C php
access_specifier modifier datatype method_name(parameter_list) { //body of method }
V d v s d ng ph
ng th c
class Temp { static int x = 10; // variable public static void show( ) { // method System.out.println(x); } public static void main(String args[ ]) { Temp t = new Temp( ); // object 1 t.show( ); // method call Temp t1 = new Temp( ); // object 2 t1.x = 20; t1.show( ); } }
Access specifiers
public private protected
Method Modifiers
static abstract final native synchronized volatile
Nh ng ph Nh ng ph
ng th c ng th c
c n p ch ng : c n p ch ng :
(Methods Overloading)
ng th c
c ghi :
Ph ng th c kh i t o (Class Constructors)
L m t ph ng th c c bi t dng kh i t o gi tr cho cc bi n thnh vin c a l p i t ng C cng tn v i tn l p v khng c gi tr tr v c g i khi i t ng c t o ra C 2 lo i:
T ng minh (Explicit constructors) Ng m nh (Implicit constructors)
Ph
Cc ton t
Cc lo i ton t :
Ton t Ton t Ton t Ton t Ton t Ton t s h c (Arithmetic operators) d ng Bit (Bitwise operators) so snh (Relational operators) logic (Logical operators) i u ki n (Conditional operator) gn (Assignment operator)
+= -= *= /= %=
Th t Th t 1. 2. 3. 4. 5. 5.
u tin c a cc ton t Ton t trong ngo c tnh tr c Cc ton t n nh +,-,++,-Cc ton t s h c v cc ton t d ch nh *,/,+,-,<<,>> Cc ton t quan h nh >,<,>=,<=,= =,!= Cc ton t logic v Bit nh &&,II,&,I,^ Cc ton t gn nh =,*=,/=,+=,-=
i b ng
Cc k t nh d ng xu t d li u (Escape Sequences)
Escape M t Sequence \n Xu ng dng m i \r \t \\ \ \ Chuy n con tr Chuy n con tr (k t Tab) In d u \ In d u nhy n u dng hi n hnh n v tr d ng Tab k ti p
n ()
In d u nhy kp ()
Cc l nh i u khi n
i u khi n r nhnh:
M nh M nh if-else switch-case
Vng l p (Loops):
Vng l p while Vng l p do-while Vng l p for
L nh if-else
C php
if (condition) { action1 statements; } else { action2 statements; }
L nh switch-case
C php
switch (expression) { case 'value1': action1 statement(s); break; case 'value2': action2 statement(s); break; : : case 'valueN': actionN statement(s); break; default: default_action statement(s);
L nh l p while
C php
while(condition) { action statements; : : }
L nh l p do-while
C php
do { action statements; : : } while(condition);
Vng l p for
C php
for(initialization statements; increment statements) { action statements; : : } condition;
Ch
ng 3
Gi i thi u
Nh ng thnh ph n c b n c a 1 ch trnh Java:
Gi (Packages) Giao di n (Interfaces)
ng
Nh ng ph n c a m t ch
ng trnh Java:
L nh khai bo gi(package ) L nh ch nh gi c dng (L nh import) Khai bo l p public (m t file java ch ch a 1 l p public class) Cc l p khc (classes private to the package)
Interfaces
Ch ng trnh Java ch c th k th a t 1 l p duy nh t trong cng m t th i i m, nh ng c th d n xu t cng lc nhi u Interfaces Khng c php c nh ng ph ng th c c th (concrete methods) interface c n ph i c hi n th c (implements).
Cc b
c t o interface
S d ng Interface
Khng th d n xu t t l p khc, nh ng c th d n xu t t nh ng interface khc N u m t l p d n xu t t m t interface m interface d n xu t t cc interface khc th l p ph i nh ngh a t t c cc ph ng th c c trong cc interface Khi nh ngh a m t interface m i th m t ki u d li u tham chi u c ng c t o ra.
Gi (Packages)
T ng t nh th m c l u tr nh ng l p, interface v cc gi con khc. l nh ng thnh vin c a gi
Cho php t ch c cc l p vo nh ng n v nh h n Gip trnh c tnh tr ng trng l p khi t tn. Cho php b o v cc l p i t ng Tn gi (Package) c th c dng nh n d ng ch c n ng c a cc l p.
Nh ng l u khi t o gi:
M ngu n ph i b t u b ng l nh package M ngu n ph i n m trong cng th m c mang tn
c a gi
Tn gi nn b t
Nh ng l p
Cc b c t o ra gi (Package)
Khai bo gi Import nh ng gi chu n c n thi t Khai bo v nh ngh a cc l p i t ng c trong gi L u cc nh ngh a trn thnh t p tin .java, v bin d ch nh ng l p i t ng c nh ngh a trong gi.
Xc l p CLASSPATH
L danh sch cc th m c, gip cho vi c tm ki m cc t p tin l p i t ng t ng ng Nn xc l p CLASSPATH trong lc th c thi (runtime), v nh v y n s xc l p ng d n cho qu trnh th c thi hi n hnh
Gi java.lang
M c nh th b t c ch ng trnh Java no c ng import gi java.lang Nh ng l p Wrapper (bao b c) cho cc ki u d li u nguyn th y:
L p String
Ph
ng th c kh i t o (Constructor):
String str1 = new String(); String str2 = new String(Hello World); char ch[ ] = {A,B,C,D,E}; String str3 = new String(ch); String str4 = new String(ch,0,2);
String Pool
String Pool i di n cho t t c cc k t c t o ra trong ch ng trnh Khi ni m String Pool
Nh ng ph
charAt( ) startsWith() endsWith( ) copyValueOf( ) toCharArray( ) indexOf( ) toUpperCase( ) toLowerCase( ) trim( ) equals( )
ng th c c a l p String
L p StringBuffer
Cung c p nh ng ph ng th c khc nhau thao tc trn i t ng string (chu i k t ) Nh ng i t ng c a l p ny kh linh ho t Cung c p nh ng ph ng th c kh i t o (constructor) c n p ch ng (overloaded) Nh ng ph ng th c c a l p StringBuffer:
append( ) insert( ) charAt( ) setCharAt( ) setLength( ) getChars( ) reverse( )
L p java.lang.Math
abs() ceil() floor() max() min() round() random() sqrt() sin() cos() tan()
L p Runtime
ng gi (Encapsulates) mi tr ng th c thi Dng qu n l b nh , v thi hnh nh ng ti n trnh c ng thm Ph ng th c:
exit(int) freeMemory( ) getRuntime( ) gc( ) totalMemory( ) exec(String)
L p System
Cung c p nh ng h t ng chu n nh nh p (Input), xu t (Output) v cc lu ng l i(Error Streams) Cung c p kh n ng truy xu t n nh ng thu c tnh c a h th ng th c thi Java, v nh ng thu c tnh mi tr ng nh phin b n, ng d n, nh cung c p Ph ng th c: exit(int) gc() getProperties() setProperties() currentTimeMillis() arraCopy(Object, int, Object, int, int)
L p Class
Th hi n (Instance) c a l p ny che gi u tnh tr ng th c thi c a i t ng trong m t ng d ng Java i t ng ho c th hi n c a l p ny c th t o ra b ng 1 trong 3 cch sau:
S d ng ph ng th c getClass( ) c a i t ng S d ng ph ng th c t nh forName( ) c a l p t o ra m t th hi n c a l p trong lc t tn cho l p S d ng i t ng ClassLoader n pm tl p m i
L p Object
L l p cha (superclass) c a t t c cc l p Ph ng th c:
Gi java.util
Cung c p ph n l n nh ng l p Java h u d ng v th ng xuyn c n n trong h u h t cc ng d ng Gi i thi u nh ng l p tr u t ng sau:
L p Hashtable
M r ng l p tr u t ng Dictionary Dng n i k t nh ng kha vo nh ng gi tr c th Ph ng th c kh i t o Hashtable:
Nh ng ph ng th c c a l p Hashtable
clear() done() contains(Object) containsKey(Obj ect) elements() get(Object key) isEmpty() keys() put(Object, Object) rehash() remove(Object key) size() toString()
L p Random
T o ra nh ng s
pseudo Nh ng ph
nextDouble( ) nextFloat( ) nextGaussian( ) nextInt( ) nextLong( )
ng th c nh n gi tr ng u nhin:
Ph
ng th c kh i t o (Constructors):
random() random(long)
Nh ng ph ng th c c a l p Random
nextDouble() nextFloat() nextGaussian() nextInt() nextLong() setSeed(long)
L p Vector
Cung c p kh n ng co gi n cho m ng khi thm ph n t vo m ng L u tr nh ng thnh ph n c a ki u Object M t Vector ring r c th l u tr nh ng ph n t khc nhau, l nh ng instance c a nh ng l p khc nhau Ph ng th c kh i t o (Constructors):
Vector(int) Vector(int, int) Vector()
Nh ng ph
lastElement( ) lastIndexOf(Object) lastIndexOf(Object, int) removeAllElements( ) removeElement(Obj ect) removeElementAt(in t) setElementAt(Object , int) setSize(int)
L p StringTokenizer
C th c dng tch m t chu i thnh nh ng thnh ph n c u thnh c a n (constituent tokens) K t phn cch c th c ch nh khi m t i t ng StringTokenizer c kh i t o Ph ng th c kh i t o (Constructors):
StringTokenizer(String) StringTokenizer(String, String) StringTokenizer(String, String, Boolean)
Nh ng ph ng th c c a l p StringTokenizer
countTokens( ) hasMoreElements( ) hasMoreTokens( ) nextElement( ) nextToken( ) nextToken(String)
Ch
ng 4
X l bi t l
Gi i thi u v bi t l
L m t ki u l i c bi t N x y ra trong th i gian th c thi o n l nh Thng th ng cc i u ki n th c thi ch ng trnh gy ra bi t l N u cc i u ki n ny khng c quan tm, th vi c th c thi c th k t thc t ng t
M c ch c a vi c x l bi t l
Gi m thi u vi c k t thc b t th ng c a h th ng v c a ch ng trnh. V d , thao tc xu t/nh p trong m t t p tin, n u vi c chuy n i ki u d li u khng th c hi n ng, m t bi t l s x y ra v ch ng trnh b h y m khng ng t p tin. Lc t p tin s b h h i v cc ngu n ti nguyn c c p pht cho t p tin khng c thu h i l i cho h th ng.
X l bi t l
Khi m t bi t l x y ra, i t ng t ng ng v i bi l s c t o ra. i t ng ny sau c truy n t i ph ng th n i m bi t l x y ra. i t ng ny ch c cc thng tin chi ti t v bi t l Thng tin ny c th nh n c v x l. L p throwable m Java cung c p l l p trn nh c a l p bi t l . t c . t
M hnh x l bi t l
M hnh c bi t n l m hnh catch and throw Khi m t l i x y ra, bi t l s u c ch n v c vo m t kh i. T kha x l bi t l :
C u trc c a m hnh x l bi t l
C php
try { . } catch(Exception e1) { . } catch(Exception e2) { . } catch(Exception eN) { . } finally { . }
Kh i try v catch
c s d ng th c hi n trong m hnh catch and throw c a x l bi t l . Kh i l nh try g m t p h p cc l nh th c thi M t ph ng th c m c th b t bi t l , c ng bao g m kh i l nh try. M t ho c nhi u kh i l nh catch c th ti p theo sau m t kh i l nh try Kh i l nh catch ny b t bi t l trong kh i l nh try.
Kh i l nh ch a nhi u Catch
Cc kh i ch a nhi u catch() x l cc ki u bi t l khc nhau m t cch c l p. V d
try { doFileProcessing(); displayResults(); } catch(LookupException e) { handleLookupException(e); } catch(Exception e) { System.err.println(Error:+e.printStackTrace ()); }
Kh i finally
Th c hi n t t c cc vi c thu d n khi bi t l x y ra C th s d ng k t h p v i kh i try Ch a cc cu l nh thu h i ti nguyn v cho h th ng hay l nh in ra cc cu thng bo:
Kh i finally (tt)
V d
try { doSomethingThatMightThrowAnException( ); } finally { cleanup( ); }
Kh i finally (tt)
L ty ch n khng b t bu c c t sau kh i catch Kh i finally b o m lc no c ng c th c hi n b t ch p bi t l c x y ra hay khng.
// user-
Danh sch cc bi t l
RuntimeException ArithmeticException IllegalAccessException IllegalArgumentException ArrayIndexOutOfBoundsException NullPointerException SecurityException ClassNotFoundException
Ch
ng V
GI I THI U V AWT
Toolkit
AWT l t chng ta t Cung c p ng v hi p h p cc l p Java cho php o m t GUI cc m c khc nhau t o ho t u ng GUI nh
Components
T t c cc thnh ph n c u t o nn ch ng trnh GUI c g i l component. V d Containers, textfields, labels, checkboxes, textareas scrollbars, scrollpanes, dialog
Containers
L thnh ph n m c th ch a cc thnh ph n khc. c th v v t mu. C cc frames, panes,latches, hooks Java.awt ch a m t l p c tn l Container. L p ny d n xu t tr c ti p v khng tr c ti p theo 2 cch l:
Frames Panels
Frames
L cc c a s L l p con c a Windows c hi n th trong m t c a s v c vi n
ng
Panels
L cc vng ch a trong m t c a s . Hi n th trong m t c a s m trnh duy t ho c appletviewer cung c p v khng c ng vi n. c s d ng nhm m t s cc thnh ph n M t panel khng c s n v th chng ta c n ph i thm n vo frame. Hm d ng Panel()
Dialog
L m t l p con c a l p Window it ng dialog c c u trc nh sau :
Frame myframe = new Frame(My frame); String title = Title; boolean modal = true; Dialog dlg = new Dialog( myframe, title, modal);
Cc Components khc
V d textfields, labels, checkboxes, textareas scrollbars, scrollpanes, dialog
Label
c dng hi n th chu i (String) Cc hm d ng:
Cc ph
ng th c:
TextField
L i u khi n text cho php hi n th text ho c cho user nh p d li u vo. Cc hm d ng:
Cc ph
ng th c:
TextArea
c dng khi text c n i dung t hai dng tr ln L i u khi n text c th so n th o c v i nhi u dng Cc b c t o TextArea:
TextArea (tt)
Cc hm d ng:
TextArea( ) TextArea(int rows, int cols ) TextArea(String text) TextArea(String text, int rows, int cols)
Cc ph ng th c c a TextArea
setText(String) getText( ) setEditable(boolean) isEditable( ) insertText(String, int) replaceText(String, int, int)
Button
Cc nt Push hay Command l cch d nh t l y cc s ki n c a user Cc b c t o button:
T o m t ph n t button, nn t o cho n m t caption ch ra m c ch c a n Ch ra v tr t button trn mn hnh HI n th ra trn mn hnh Button( ) Button(String text)
Cc hm d ng:
Cc hm d ng
t o checkbox:
ng
Choice Lists
L p Choice cho php ta t o danh sch c nhi u ch n l a Khi list c t o l n u tin, n c kh i t o l empty Cc b c t o danh sch ch n l a: T o m t ph n t Thm cc m c (c ki u Strings) vo danh sch , t ng m c m t Ch ra v tr trn mn hnh Hi n th ra mn hnh V d
Choice colors=new Choice( ); colors.addItem(Red); colors.addItem(Green);
Flow Layout Border Layout Card Layout Grid Layout GridBag Layout
FlowLayout
L trnh qu n l layout m c nh cho cc applet v cc panel V i FlowLayout cc thnh ph n s c x p x p t gc tri trn n gc ph i d i c a mn hnh Cc constructor:
FlowLayout mylayout = new FlowLayout(); FlowLayout exLayout = new flowLayout(FlowLayout.RIGHT);
BorderLayout
L trnh qu n l layout m c nh cho Window, Frame v Dialog Trnh qu n l ny c th x p x p n 5 thnh ph n trong container Cc thnh ph n c th c t vo 5 h ng NORTH, EAST, SOUTH, WEST v CENTER c a container V d : thm m t thnh ph n vo vng North c a container
Button b1= new Button(North Button); setLayout(new BorderLayout( )); add(b1, BorderLayout.NORTH);
CardLayout
C th l u tr m t danh sch cc ki u layout khc nhau M i layout c xem nh m t th (card) Th th ng l i t ng Panel M t thnh ph n c l p nh button s i u khi n cc th c t pha trn nh t Cc b c t o CardLayout:
GridLayout
H tr vi c chia container thnh m t l i Cc thnh ph n c b tr trong cc dng v c t M t l i nn ch a t nh t m t thnh ph n Ki u layout ny c s d ng khi t t c cc thnh ph n c cng kch th c Hm constructor
GridLayout gl = new GridLayout(no. of rows, no. of columns);
GridBagLayout
B tr cc thnh ph n m t cch chnh xc Cc thnh ph n khng c n c cng kch th c Cc thnh ph n c x p x p trong m t l i ch a cc dng v cc c t Th t t cc thnh ph n khng tun theo h ng t tri-sang-ph i v trnxu ng-d i Hm constructor
GridBagLayout gb = new GridBagLayout( );
GridBagLayout
s d ng layout ny, b n c n ph i bi t thng tin v kch c v cch b tr c a cc thnh ph n L p GridBagLayoutConstraints l u tr t t c cc thng tin m l p GridLayout yu c u: V tr v kch thu c m i thnh ph n
X l cc s ki n
Cc s ki n (Events) cng c sau:
c x
l b ng cc
X l cc s ki n (tt)
Event Listener s l ng nghe m t s ki n c th m m t i t ng t o ra M i event listener cung c p cc ph ng th c x l cc s ki n ny L p c ci t listener c n nh ngh a nh ng ph ng th c ny
X l cc s ki n(tt)
Cc b c c n tun th Event Listener:
d ng m hnh
ng th c khc
Cc s ki n v Listener t ng
ActionEvent AdjustmentEvent ComponentEvent FocusEvent ItemEvent WindowEvent TextEvent MouseEvent
ng
KeyEvent
ActionListener AdjustmentListener ComponentListener FocusListener ItemListener WindowListener TextListener MouseListener MouseMotionListener KeyListener
Menus
Cc lo i menu :
Menubar MenuItems
Ch
ng VI
Applets
Applets
L m t ch ng trnh Java m ch y v i s h tr c a trnh duy t web T t c cc applets l l p con c a l p Applet t o m t applet, b n c n import hai gi sau:
java.applet java.awt
C u trc applet
nh ngh a m t applet t b n s ki n x y ra trong qu trnh th c thi i v i m i s ki n c nh ngh a b i m t ph ng th c t ng ng. Cc ph ng th c:
init( ) start( ) stop( ) destroy( )
Cc ph
ng th c khc:
d ng th
Applet c th viewer
c th c thi b ng applet
i m khc bi t gi a applet v m t
ng d ng
Cc ng d ng khi th c thi ph i s d ng trnh bin d ch Java, trong khi cc applets th c thi c trn b t k trnh duy t no m h tr Java, ho c s d ng AppletViewer trong JDK. M t ng d ng b t u v i ph ng th c main(). Cn i v i applet th khng s d ng ph ng th c ny M t ng d ng s d ng System.out.println() hi n th , trong khi mt applet th s d ng ph ng th c drawstring() hi n th .
Nh ng h n ch v b o m t trong applet
Khng th c ho c vi t cc t p tin trn h th ng t p tin c a ng i s d ng Khng th giao ti p v i m t site trn internet. M ch giao ti p v i m t d ch v trn trang web c applet. Khng th ch y b t k ch ng trnh no trn h th ng c a ng i c Khng th load b t k ch ng trnh no c l u trn h th ng c a ng i s d ng
<applet code = "Mybutton1" width = 100 height = 100> <PARAM NAME = Mybutton value = Display Dialog> </applet>
L p
h a
ng th c
Graphical Background
Cc ph ng th c v n n:
getGraphics( ) repaint( ) update(Graphics g) paint(Graphics g)
Hi n th chu i, k t v bytes
Ph ng th c trn frame Ph ng th c trn frame v ho c hi n th m t chu i
C php drawString(String str, int xCoor, int yCoor);
v ho c hi n th cc k t
C php drawChars(char array[ ], int offset, int length, int xCoor, int yCoor);
Ph ng th c frame
v ho c hi n th bytes trn
C php drawBytes(byte array[ ], int offset, int length, int xCoor, int yCoor);
V cc hnh th
Ph ng th c c s ng th ng nh sau d ng v
C php drawLine(int x1, int y1, int x2, int y2);
Cc ph ng th c ng trn nh sau
cs
d ng
C php drawOval(int xCoor, int yCoor, int width, int height); setColor(Color c); fillOval(int xCoor, int yCoor, int width, int height);
Ph ng th c s d ng vung:
v hnh
C php drawRect(int xCoor, int yCoor, int width, int height); fillRect(int xCoor, int yCoor, int width, int height);
drawRoundRect(int xCoor, int yCoor, int width, int height, int arcWidth, int arcHeight); fillRoundRect (int xCoor, int yCoor, int width, int height, int arcWidth, int arcHeight);
cs
d ng
draw3DRect(int xCoord, int yCoord, int width, int height, boolean raised); drawArc(int xCoord, int yCoord, int width, int height, int arcwidth, int archeight); fillArc(int xCoord, int yCoord, int width, int height, int arcwidth, int archeight);
Drawing PolyLines
Cc ph nhi u
C php
ng th c c th ng
c s d ng
drawPolyline(int xArray[ ], int yArray[ ], int totalPoints); g.setFont(new Font("Times Roman", Font.BOLD,15));
V v t cc hnh a gic
Cc ph gic
C php
ng th c
v v t cc hnh a
Mu
Java s d ng mu RGB B ng cc gi tr mu
Element Red Green Blue
C php c a hm d ng
Color
Red
White 255 Light Gray 192 Gray Dark Gray Black Pink Orange Yellow Magenta 128 64 0 255 255 255 255
Font
Gi java.awt package cung c p b i l p Font Cc ph ng th c c a l p Font:
Hm d ng Font nh n 3 tham s
Tn font trong chu i nh d ng; tn ny c trong ph ng th c getFontList( ). Ki u c a font. V d nh : Font.BOLD, Font.PLAIN, Font.ITALIC Kch th c c a font.
V d
Font f1 = new Font("SansSerif", Font.ITALIC, 16); g.setFont(f1);
L p FontMetrics
o l ng cc k t khc nhau hi n th trong cc font khc nhau. Vi c o l ng bao g m height, baseline, ascent, descent v leading c a font. N khng c th v n l m t l p tr u t ng
ng th c:
Ki u v
Cc i t ng v c s d ng. Method used to make old and new contents visible on the screen
setXORMode(Color c)
Ch
ng VII
L p trnh a tuy n
Tuy n
L p trnh a tuy n l m t c tr ng c a Java Tuy n l n v nh nh t c a o n m c th thi hnh c m th c hi n m t cng vi c ring bi t
a tuy n
L kh n ng lm vi c v i nhi u tuy n a tuy n chuyn s d ng cho vi c th c thi nhi u cng vi c ngth i a tuy n gi m th i gian r i c a h th ng n m c th p nh t.
T o v qu n l tuy n (1)
Khi ch ng trnh Java th c thi hm main() t c l tuy n main c th c thi. Tuy n ny c t o ra m t cch t ng. t i y :
- Cc tuy n con s c t o ra t - N l tuy n cu i cng k t thc vi c th c hi n. Trong ch c lt tuy n chnh ng ng th c thi, ch ng trnh b ch m d t
Tuy n c th
c t o ra b ng 2 cch:
D n xu t t l p Thread D n xu t t Runnable.
Vng
i c a m t tuy n
Cc ph
ng th c Khc
enumerate(Thread t) getName( ) isAlive( ) getPriority( ) setName(String name) join( ) isDaemon( ) setDaemon(Boolean on) resume( ) sleep( ) start( )
tuy n Daemon(ng m)
Hai ki u tuy n trong m t ch Java:
Cc tuy n ng tuy n ng m i s d ng
ng trnh
tuy n ng m d n rc
a tuy n v i Applets
Cc ch ng trnh Java d a trn Applet th ng s d ng nhi u h n m t tuy n Trong a tuy n v i Applets, L p java.applet.Applet l l p con c t o ra m t Applet ng i s d ng nh ngh a n khng th th c hi n c tr c ti p l p con c a l p tuy n trong cc applet Con ng l p con s d ng l p tuy n:
ng b tuy n
ng b
thm nh p s quan st c a m t i t ng, l p trnh vin s d ng t kha synchronized g i m t ph ng th c hi u ch nh (modified method) Khi m t tuy n ang c th c thi trong ph m vi m t ph ng th c ng b (synchronized), b t k tuy n khc ho c ph ng th c ng b khc m c g ng g i n trong th i gian s ph i i
Khuy t i m c a cc ph th c ng b
ng
Cc tr ng thi ch c ch n khng l i ch cho a tuy n Trnh bin d ch Java t Sun khng ch a nhi u ph ng th c ng b Cc ph ng th c ng b ch m h n t ba n b n l n so v i cc ph ng th c t ng ng khng ng b .
tuy n chia cc tc v thnh cc n v ring bi t v logic (h p l) trnh tr ng h p ki m sot vng, Java bao g m m t thi t k t t trong ti n trnh k thu t truy n thng s d ng cc ph ng th c wait() ( i), notify() (thng bo) v notifyAll() (thng bo h t) :
final void wait( ) throws IOException final void notify( ) final void notifyAll( )
Cc i m chnh c n nh ph ng th c notify()
M t tuy n a ra ngoi vng i c a monitor, v vo tr ng thi s n sng tuy n m c thng bo ph i thu tr l i kha c a monitor tr c khi n c th b t u Ph ng th c notify() l khng chnh xc Trong m t s tr ng h p ny, cc ph ng th c c a monitor a ra 2 s phng:
Tr ng thi c a monitor s c ki m tra trong m t vng l p while t t h n l cu l nh if Sau khi thay i tr ng thi c a monitor, ph ng th c notifyAll() s c s d ng, t t h n ph ng th c notify().
S b t t (Deadlocks)
M t deadlock (s b t t) x y ra khi hai tuy n c m t ph thu c vng quanh trn m t c p i t ng ng b N kh g l i m t b t t b i nh ng nguyn nhn sau: N hi m khi x y ra, khi hai tuy n chia nh th i gian trong cng m t con ng N c th bao hm nhi u h n hai tuy n v hai i t ng ng b N u m t ch ng trnh a tuy n kha kn th ng xuyn, ngay l p t c ki m tra l i i u ki n b t t
Thu d n collection)
rc
(Garbage
C i t o ho c lm tr ng b nh nh v cho cc i t ng m cc i t ng ny khng s d ng trong th i gian di S d n rc th c thi nh l m t tuy n ring bi t c quy n u tin th p S d ng cu l nh sau t t is d n rc trong ng d ng:
java noasyncgc
Ch
ng VIII
Cc lu ng I/O
Cc lu ng
Cc lu ng l nh ng ng ng d n g i v nh n thng tin trong cc ch ng trnh java. Khi m t lu ng c ho c ghi , cc lu ng khc b kho. N u l i x y ra trong khi c ho c ghi lu ng, m t ngo i l s kch ho t. L p java.lang.System nh ngh a lu ng nh p v xu t chu n.
Cc l p lu ng I/O
L p System.out. L p System.in. L p System.err.
L p InputStream
L l p tr u t ng nh ngh a cch nh n d liu Cung c p s ph ng th c dng cc lu ng d li u lm u vo. Cc ph ng th c:
read( ) available( ) close ( ) mark ( ) markSupported( ) reset( ) skip( )
c v
L p OutputStream
L l p tr u t ng. nh ngh a cch ghi d li u vo lu ng. Cung c p t p cc ph ng th c tr gip. trong vi c t o, ghi v x l cc lu ng xu t. Cc ph ng th c:
Nh p m ng cc Byte
S d ng cc m b nh L p ByteArrayInputStream T o ra m t lu ng nh p t m b nh khng g c v m ng cc byte.
Ph ng th c c a l p ByteArrayOutputStream :
Cc l p nh p/xu t t p tin
Cc l p ny tr gip trong Java cc thao tc nh p v xu t:
tr
L p t p tin
c s d ng truy c p cc i t ng t p tin v thw m c Nh ng t p tin c tn c t tn theo qui c c a h i u hnh ch L p ny cung c p ph ng th c kh i t o t o ra cc th m c v t p tin T t c cc thao tc th m c v t p tin u c s d ng cc ph ng th c truy c p v cc ph ng th c th m c m cc l p t p tin cung c p
L p FileDescriptor
Cung c p vi c truy c p t i cc t p tin m t Khng cung c p b t k tnh r nt no t i thng tin m h i u hnh duy tr. Cung c p ch m t ph ng th c g i l valid( )
L p FileInputStream
Cho php u vo c t m t t p tin trong m t m u c a m t dng Cc i t ng c t o ra s d ng chu i tn t p tin, t p tin, i t ng FileDescriptor nh m t tham s . Cc ph ng th c n p ch ng c a l p InputStream. n cung c p ph ng th c finalize( ) v getFD( )
L p FileOutputStream
Cho php k t xu t ghi ra m t lu ng t p tin Cc i t ng c ng t o ra s d ng m t chu i tn t p tin, t p tin, hay i t ng FileDescriptor nh m t tham s . L p ny n p ch ng cc ph ng th c c a l p OutputStream v cung c p ph ng th c finalize( ) v getFD( )
Nh p xu t l c
L c: L ki u lu ng s a i cch i u qu n m t lu ng hi n c. v c b n c s d ng thch ng cc lu ng theo cc nhu c u c a ch ng trnh c th . B l c n m gi a lu ng nh p v lu ng xu t. Th c hi n m t s ti n trnh t bi t trn cc byte c chuy n giao t u vo n k t xu t. C th ph i h p th c hi n m t dy cc tu ch n l c.
L p FilterInputStream
L l p tr u t ng. L cha c a t t c cc l p lu ng nh p l c. Cung c p kh n ng t o ra m t lu ng t lu ng khc. M t lu ng c th c v cung c p cung c p d i d ng k t xu t cho lu ng khc. duy tr m t dy cc i t ng c a l p InputStream Cho php t o ra nhi u b l c k t xch (chained filters ).
L p FilterOutputStream
L d ng b tr cho l p FilterInputStream. L cha c a t t c cc l p lu ng k t xu t. Duy tr i t ng c a l p OutputStream nh l m t bi n out. D li u ghi ra l p ny c th s a i th c hi n cc thao tc l c, v sau ph n h i n i t ng OutputStream.
Vng
m nh p/xu t
Vng m: L kho l u tr d li u. C th cung c p d li u thay v quay tr l i ngu n d li u g c ban u. Java s d ng vng m nh p v k t xu t t m th i l p cache d li u c c ho c ghi vo m t lu ng. Trong khi th c hi n vng m nh p:
Vng
m nh p/xu t (tt)
Trong tr ng h p vng m k t xu t, m t ch ng trnh ghi ra m t lu ng. D li u k t xu t c l u tr trong m t vng m k t xu t. D li u c l u tr cho n khi vng m tr nn y, hay lu ng k t xu t c x tr ng. K t thc, vng m k t xu t c chuy n g i n ch c a lu ng xu t.
L p BufferedInputStream
T ng t o ra v duy tr vng m h tr vng m nh p. b i l p BufferedInputStream l m t b m, n c th p ng cho m t s cc i t ng nh t nh c a l p InputStream. C ng c th ph i h p cc t p tin u vo khc. S d ng vi bi n tri n khai vng m nh p.
L p BufferedInputStream (Contd)
nh ngh a hai ph
ng th c thi t l p:
c c a vng m
L p BufferedOutputStream
Th c hi n vng m k t xu t theo cch t ng ng v i l p BufferedInputStream. nh ngh a hai ph ng th c thi t l p. N cho php chng ta n nh kch th c c a vng m xu t trong m t ph ng th c thi t l p, c ng gi ng nh cung c p kch th c vng m m c nh. N p ch ng t t c ph ng th c c a l p OutputStream v khng a vo b t k ph ng th c no.
L p Reader v Writer
L cc l p tr u t ng. Chng n m t i nh c a h phn c p l p, h tr vi c c v ghi cc lu ng k t unicode.
L p Reader
H tr cc ph
ng th c sau:
L p Writer
H tr cc ph
ng th c sau :
Nh p/xu t chu i v m ng k t
H tr nh p v xu t t cc vng b nh H tr 8 bt k t nh p v k t xu t m
getBuffer( ) toString( )
L p PrinterWriter
Th c hi n m t k t xu t. L p ny c ph ng th c b sung , tr gip in cc ki u d li u c b n . L p PrintWriter thay th l p PrintStream Th c t c i thi n l p PrintStream; l p ny dng m t d u tch dng ph thu c n n t ng i m cc dng thay v k t \n. Cung c p ph n h tr cho cc k t unicode so v i PrintStream. Cc ph ng th c:
checkError( ) setError( )
Giao di n DataInput
c s d ng c cc byte t lu ng nh phn, v Is used to read bytes from a binary stream, and xy d ng l i d li u trong m t s ki u d li u nguyn thu . Cho php chng ta chuy n i d li u t t khun d ng UTF-8 c s a i Java n d ng chu i nh nghi s ph ng th c, bao g m cc ph ng th c c cc ki u d li u nguyn thu .
Nh ng ph
ng th c giao di n DataInput
boolean readBoolean( float readFloat( ) ) int readInt( ) byte readByte( ) double readDouble( char readChar( ) String readUTF( ) short readShort( ) long readLong( ) String readLine( )
Giao di n DataOutput
c s d ng xy d ng l i d li u m t s ki u d li u nguyn thu vo trong dy cc byte Ghi cc byte d li u vo lu ng nh phn Cho php chng ta chuy n i m t chu i vo khun d ng UTF-8 c s a i Java v vi t n vo trong m t dy. nh ngh a m t s ph ng th c v t t c ph ng th c kch ho t IOException trong tr ng h p l i.
Cc ph
ng th c giao di n DataOutput
void writeBoolean(boolean b) void writeByte( int value) void writeChar(int value) void writeShort(int value) void writeLong(long value) void writeFloat(float value) void writeInt(int value) void writeDouble(double value) void writeUTF(String value)
L p RandomAccessFile
Cung c p kh n ng th c hi n I/O theo cc v tr c th bn trong m t t p tin. d li u c th c ho c ghi ng u nhin nh ng v tr bn trong t p tin thay vi m t kho l u tr thng tin lin t c. ph ng th c seek( ) h tr truy c p ng u nhin. Th c hi n c u vo v u ra d li u. H tr cc c p php c v ghi t p tin c b n. K th a cc ph ng th c t cc l p DataInput v DataOutput
Cc ph ng th c c a l p RandomAccessFile
seek( ) getFilePointer( ) length( )
Gi java.awt.print
G m c cc giao di n
Pageable:
nh ngh a cc ph ng th c dng cc i t ng bi u th cc trang s c in. Ch nh s trang c in, v trang hi n t i hay l tranh gi i trang c in Chi nh ph ng th c print( ) s d ng trn i t ng Graphics Cung cp kh n ng truy c p it in m t trang
Printable:
PrinterGraphics:
ng PrinterJob
Ch
ng IX
T ng quan
JDBC cung c p t p cc l p v interface cho php ch ng trnh Java c th ni chuy n c v i h CSDL T p cc l p c a JDBC c th lm vi c cv i m i h csdl.
C 3 b
c chnh
k t n i CSDL.
V d
try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con=DriverManager.getConnection("jdbc:odbc:ATM"); Statement stmt = con.createStatement(); : : : :
Database URL
Database URL l m t chu i k t n i csdl. c php : c dng
jdbc:subprotocol name:other_stuff
The subprotocol name c dng tu vo lo i driver s d ng k t n i csdl. v d : subprotocol name l odbc n u driver l c u n i jdbcodbc Other_stuff c ng ph thu c vo lo i driver no c s d ng. v d n u driver l c u n i jdbcodbc th thnh ph n ny l tn c a i t ng ODBC
Database Driver
B o m ng d ng java t ng tc v i m i csdl d i m t cch th c chu n v duy nh t. B o m nh ng yu c u t ch ng trnh s c bi u di n trong csdl d i m t ngn ng m csdl hi u c nh n cc yu c u t client, chuy n n n vo nh d ng m csdl c th hi u c v th hi n trong csdl. Nh n cc ph n h i, chuy n n ng c l i nh d ng d li u java v th hi n trong ng d ng.
N p Driver
L p DriverManager ch u trch nhi m n p driver v t o k t n i n csdl.
DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());
ho c Class.forName(String);
This returns the object associated with the class with the given string name. Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Equivalent to: new sun.jdbc.odbc.JdbcOdbcDriver();
If you have a driver from another vendor, then find out the class name of that driver and load it instead.
JDBC Driver
C 4 lo i JDBC Driver Lo i 1: JDBC/ODBC Lo i 2: Native-API Lo i 3: Open Protocol-Net Lo i 4: Proprietary-Protocol-Net Lo i 2,3,4 ni chung c vi t b i nh cung c p csdl. hi u qu h n lo i 1 nh ng th c hi n ph c t p h n.
Lo i I JDBC/ODBC
jdk h tr c u n i jdbc-odbc (jdbc-odbc bridge). M m d o nh ng khng hi u qu .
Aplication JDBC Driver ODBC Driver
Network Interface Client
Disk
Network Interface
Database
Server
Lo i 2: Native-API
T t h n lo i 1, lo i ny cho php JDBC giao ti p tr c ti p v i cc driver hay cc hm API c a CSDL.
Aplication JDBC Driver
Native Database Library
Client
Disk
Network Interface
Network Interface
Database
Server
Lo i 3: Open Protocol-Net
Drivers
C th chuy n cc yu c u n cc csdl n m xa. C th giao ti p v i nhi u lo i CSDL. Client Khng phAplicationa nh cung c p csdl ic JDBC Driver Client T t c b ng m java Disk
Network Interface
Network Interface
Lo i 4: Proprietary-Protocol Net
100% java C kh n ng giao ti p tr c ti p v i h CSDL khng c n chuy n i
Aplication
Client
JDBC Driver
Disk
Network Interface
Network Interface
Database
Server
Gi Java.sql
Cung c p t p h p cc l p v interface dng trao i v i CSDL.
Cc l p
DriverManager Date, Time Timestamp Types
Cc Interfaces
Driver Connection DatabaseMetaData Statement PreparedStatement CallableStatement ResultSet ResultSetMetaData
it
ng Statement
i t ng ny c nhi m v g i cc cu l nh sql n csdl. executeQuery(String) or executeUpdate(String) method Cng m t i t ng Statement c th s d ng cho nhi u cu l nh sql khc nhau.
C 3 ph
ng th c th c thi
The executeQuery()
Nh n cu l nh SQL (select) lm t ng ResultSet i s , tr l i i
Ph
ng th c executeUpdate()
Ph
ng th c execute()
ResultSet
Ch a m t ho c nhi u hng d li u t vi c th c hi n cu l nh truy v n. C th l y d li u t ng hng d li u m t trong ResultSet. S d ng ph ng th c next() di chuy n n hng d li u ti p theo trong ResultSet. Hm next() tr l i true ch r ng hng ch a d li u, tr l i false hng cu i khng ch a d li u. Th c hi n while (rs.next()){ // examine a row from the results }
V d :
String isbn = rs.getString(1); // Column 1 float price = rs.getDouble(Price);
ResultSet Metadata
it ng ny cho bi t thng tin v ResultSet
ResultSet rs = stmt.executeQuery(SQLString); ResultSetMetaData rsmd = rs.getMetaData(); int numberOfColumns = rsmd.getColumnCount(); getColumnName(int column)
Prepared Statements
To execute a Statement object many times, it will reduce execution time to use PreparedStatement object PreparedStatement object
unlike a Statement object, it is given an SQL statement when it is created. The advantage to this is that in most cases, this SQL statement will be sent to the DBMS right away, where it will be compiled. As a result, the PreparedStatement object contains not just an SQL statement, but an SQL statement that has been precompiled. This means that when the PreparedStatement is
Cc
it
ng Statement khc
Database Metadata
it csdl. ng ny cho bi t thng tin v
Ch
ng trnh m u
try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con=DriverManager.getConnection("jdbc:odbc:Accserver"); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(args[0]); ResultSetMetaData rsmd = rs.getMetaData(); int numberOfColumns = rsmd.getColumnCount(); for(int j=1; j<=numberOfColumns;j++) { System.out.println(rsmd.getColumnLabel(j)); } while(rs.next()) { for(int i=1; i<=numberOfColumns;i++){ System.out.println(rs.getObject(i)); }} rs.close(); stmt.close(); } catch(Exception e){ System.out.println("Error " + e);