Вы находитесь на странице: 1из 239

BI GI NG L P TRNH JAVA GV : HU NH CNG PHP

Ch

ng 1

Gi i thi u ngn ng l p trnh Java

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

Applets ng d ng Servlet ng d ng c s d li u c l p (console Application) ng d ng giao di n (GUI Application)

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

Trnh d ch Java Java Development Kit


Java 1.0 - S 1995 Java 1.1 d ng l n a ra n m 1997 u vo n m

Java 2 Phin b n m i nh t

B cng c JDK
Trnh bin d ch, 'javac'

javac [options] sourcecodename.java

Trnh thng d ch, 'java'

java [options] classname

Trnh d ch ng

c, 'javap'

javap [options] classname javadoc [options] sourcecodename.java

Cng c sinh ti li u, 'javadoc'

Ch

ng trnh tm l i - Debug, 'jdb

jdb [options] sourcecodename.java OR jdb -host -password [options] sourcecodename.java

Ch ng trnh xem Applet , 'appletviewer


appletviewer [options] sourcecodename.java / url

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

Swing Ko v th Java 2D API m thanh RMI

Ch
Cc ph n t

ng 2
Java

c b n ngn ng

C u trc m t ch ng trnh Java


Xc l p thng tin mi tr ng Khai bo l p i t ng (Class) Cc thnh ph n (Tokens):
nh danh T kha / t d phng K t phn cch Nguyn d ng (Literals) Ton t

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

..\jdk\bin>javac Ex1.java ..\jdk\bin>java Ex1 K t qu :


My first program in 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

i s trong dng l nh (Ti p theo)

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

Cc l p l ng nhau (Nested Classes)


Vi c nh ngh a m t l p bn trong m t l p khc c g i l x p l ng (Nesting)  Cc ki u x p l ng:  T nh (Static)  ng (Non-static)


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)

Cng trong m t l p C cng tn Khc nhau v danh sch tham s

Nh ng ph ng th c c n p ch ng l m t hnh th c a hnh (polymorphism) trong qu trnh bin d ch (compile time)

Ghi ph ng th c (Methods Overriding)


Nh ng ph

ng th c

c ghi :

C m t trong l p cha (superclass) c ng nh l p k th a (subclass) c nh ngh a l i trong l p k th a (subclass)

Nh ng ph ng th c c ghi l m t hnh th c a hnh (polymorphism) trong qu trnh th c thi (Runtime)

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

ng th c kh i t o c a l p d n xu t (Derived class constructors)

C cng tn v i l p d n xu t (subclass) M nh g i constructor c a l p cha (superclass) ph i l m nh u tin trong constructor c a l p d n xu t (subclass)

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)

Ton t s h c Arithmetic Operators


+ * / % ++ -Addition (Php c ng) Subtraction (Php tr ) Multiplication (Php nhn) Division (Php chia) Modulus (L y s d ) Increment (T ng d n) Decrement (Gi m d n)

+= -= *= /= %=

Php c ng v gn Php tr v gn Php nhn v gn Php chia v gn Php l y s d v gn

Ton t Bit (Bitwise Operators)


~ & | ^ >> << Ph nh (NOT) V (AND) Ho c (OR) Exclusive OR D ch sang ph i (Shift right) D ch sang tri (Shift left)

Ton t so snh (Relational Operators)


== != < > <= >= So snh b ng So snh khc Nh h n L nh n Nh h n ho c b ng L n h n ho c b ng

Ton t Logic (Logical Operators )


&& || ! Logical AND Logical OR Logical unary NOT

Ton t i u ki n (Conditional Operator)


C php
Bi u th c 1 ? Bi u th c 2 : Bi u th c 3; Bi u th c 1 i u ki n ki u Boolean tr v gi tr True ho c False Bi u th c 2 Tr v gi tr n u k t qu c a m nh 1 l True Bi u th c 3 Tr v gi tr n u k t qu c a m nh 1 l

Ton t gn (Assignment Operator)


= Assignment (Php gn) Gi tr c th c gn cho nhi u bi n s V d
a = b = c = d = 90;

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

Th t c a cc ton t c th c thay cch s d ng cc d u ngo c n trong m nh

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 & Interface (Packages & Interfaces)

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)

T p tin ngu n Java c th ch a t t c ho c m t vi trong s cc ph n trn.

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

nh ngh a Interface Bin d ch Interface Hi n th c Interface Tnh ch t c a interface:

T t c ph ng th c trong interface ph i l public. Cc ph ng th c ph i c nh ngh a trong l p d n xu t giao di n .

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

Nh ng u i m khi dng gi (Package):

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

u b ng k t th ng (lower case) phn bi t gi a l p i t ng v gi

Nh ng l nh khc ph i vi t pha d i dng khai bo gi l m nh import, k n l cc m nh nh


ngh a l p it it ng ng trong gi c n ph i c bin

Nh ng l p

d ch ch ng trnh Java c th s d ng nh ng gi ny, ta ph i import gi vo trong m ngu n

Import gi (Importing packages):


Xc nh t p tin c n c import trong gi Ho c c th import ton b gi

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.

S d ng nh ng gi do ng i dng nh ngh a (user-defined packages)


M ngu n c a nh ng ch ng trnh ny ph i cng th m c c a gi do ng i dng nh ngh a. nh ng ch ng trnh Java khc s d ng nh ng gi ny, import gi vo trong m ngu n Import nh ng l p i t ng c n dng Import ton b gi T o tham chi u n nh ng thnh vin c a 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 v i u khi n truy xu t (Packages & Access Control)

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:

equals(Object) finalize() notify() notifyAll() toString() wait()

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:

Hashtable Random Vector StringTokenizer

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:

Hashtable(int) Hashtable(int, float) 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 u nhin theo thu t ton

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

ng th c c a l p Vector isEmpty( ) addElement(Object)


capacity( ) clone( ) contains(Object) copyInto(Object [ ]) elementAt(int) elements( ) ensureCapacity(int) firstElement( ) indexOf(Object) indexOf(Object, int) insertElementAt(Objec t, int)

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)

L p StringTokenizer s d ng giao di n li t k (enumeration interface)

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 :

try catch throw throws finally

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 { . }

M hnh Catch and Throw nng cao


Ng i l p trnh ch quan tm t i cc l i khi c n thi t. M t thng bo l i c th c cung c p trong exception-handler.

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 try v catch Blocks (tt)


b t b t k lo i bi t l no, ta ph i ch ra ki u bi t l l Exception catch(Exception e) Khi bi t l b b t khng bi t thu c ki u no, chng ta c th s d ng l p Exception b t bi t l . L i s c truy n thng qua kh i l nh try catch cho t i khi chng b t g p m t catch tham chi u t i n, ho c ch ng trnh s b k t thc

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 l nh ch a nhi u Catch (tt)


Khi s d ng cc try l ng nhau, kh i try bn trong c thi hnh u tin B t k bi t l no b ch n trong kh i l nh try s b b t gi trong kh i l nh catch ti p ngay sau. N u kh i l nh catch thch h p khng c tm th y, th cc kh i catch c a kh i try bn ngoi s c xem xt Ng c l i, Java Runtime Environment s x l bi t l .

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:

ng t p tin ng l i b k t qu ( c s d ng trong ch ng trnh c s d li u) ng l i cc k t n i c t o trong c s d li u.

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.

Cc bi t l c nh ngh a v i l nh throw v throws


Cc bi t l th c ch n v i s tr gip c a t kha throw T kha throw ch ra m t bi t l v a x y ra. Ton h ng c a throw l m t i t ng c a m t l p, m l p ny c d n xu t t l p Throwable V d c a l nh throw
try{ if (flag < 0) { throw new MyException( ) ; defined }

// user-

Cc bi t l c nh ngh a v i l nh throw v throws(tt)


M t ph ng th c n c th ch n nhi u h n m t bi t l V d t kha throw x l nhi u bi t l
public class Example { public void exceptionExample( ) throws ExException, LookupException { try { // statements } catch(ExException exmp) { . } catch(LookupException lkpex) { . } } }

Cc bi t l c nh ngh a v i l nh throw v throws(tt)


L p Exception th c thi giao di n Throwable v cung c p cc tnh n ng h u d ng phn ph i cho cc bi t l . M t l p con c a l p Exception l m t bi t l m i c th b t gi c l p cc lo i Throwable khc.

Danh sch cc bi t l
RuntimeException ArithmeticException IllegalAccessException IllegalArgumentException ArrayIndexOutOfBoundsException NullPointerException SecurityException ClassNotFoundException

Danh sch cc bi t l (tt)


NumberFormatException AWTException IOException FileNotFoundException EOFException NoSuchMethodException InterruptedException

Ch

ng V

L P TRNH GIAO DI N V I AWT

GI I THI U V AWT

AWT vi t t t c a Abstract Windowing

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

Containers Components Layout managers Graphics v drawing capabilities Fonts Events

AWT bao g m cc l p, interfaces v cc gi khc

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:

Label( ) Label(String labeltext) Label(String labeltext, int alignment)

Cc ph

ng th c:

setFont(Font f) setText(String s) getText( )

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:

TextField( ) TextField(int columns) TextField(String s) TextField(String s, int columns)

Cc ph

ng th c:

setEchoChar(char) setTest(String s) getText( ) setEditable(boolean) isEditable( )

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:

T o m t ph n t (element) Ch ra s dng hay s c t (ty ch n) Ch ra v tr c a i u khi n trn mn hnh

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:

Checkboxes and RadioButtons


Checkboxes c dng khi cho php user nhi u c n ch n l a Radiobuttons c dng user ch ra m t l a ch n duy nh t Cc b c t o checkbox ho c radiobutton:

T o m t ph n t (element) Kh i t o gi tr ban u (c gi tr selected hay unselected) Ch ra v tr trn mn hnh Hi n th ra mn hnh

Cc hm d ng

t o checkbox:

Checkbox( ) Checkbox(String text)

t o radiobutton, ta ph i t o CheckBoxGroup tr c khi t o button

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);

Trnh qu n l b tr Layout Manager


Cc lo i layout khc nhau:

Flow Layout Border Layout Card Layout Grid Layout GridBag Layout

Trnh qu n l layout c thi t l p b ng cch g i ph ng th c setLayout( )

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:

B tr layout c a panel chnh l CardLayout L n l t thm cc panel khc vo panel chnh

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

Abstract Windowing Toolkit Trnh duy t. Cc trnh x l s ki n do cc l p trnh vin t o ring.

Cc ng d ng c n ng k trnh x l s ki n v i i i t ng Cc trnh x l ny c g i khi c m t s ki n t ng ng x y ra

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

Ci t Listener t ng ng Nh n di n c t t c cc thnh ph n t o ra s ki n Nh n di n c t t c cc s ki n c x l Ci t cc ph ng th c c a listener, v vi t cc o n m x l s ki n trong cc ph ng th c

Interface nh ngh a cc ph nhau x l m i s ki n

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 :

Pull-down Pop-up menu

Ch c th t cc thanh menubar vo trong cc Frame m thi Cc thnh ph n c a 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:

paint( ) repaint( ) showStatus( ) getAppletInfo( )

Cc ph ng th c init(), start(), destroy(), and paint() c th a k t M i ph ng th c ny m c nh l r th cc ph ng th c ny ph i ch ng.

stop(), applet. ng. V c n p

Bin d ch v th c thi applet


M t applet th sau c bin d ch theo c php
javac Applet1.java

th c thi m t applet, t o m t t p tin HTML c s d ng th applet


Th applet c hai thu c tnh:
Width Height

truy n tham s t i applet, s param, v ti p theo l th value

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

Chu trnh s ng c a applet

Truy n tham s t i m t applet


truy n tham s , s trong th HTML V d d ng PARAM

<applet code = "Mybutton1" width = 100 height = 100> <PARAM NAME = Mybutton value = Display Dialog> </applet>

L p

h a
ng th c

c cung c p b i gi AWT Cung c p m t t p h p cc ph v nh sau:


Oval Rectangle Square Circle Lines Text in different fonts

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);

Cc ph ng th c c s d ng hnh vung c gc trn


C php

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);

3D Rectangles & Arcs


Cc ph ng th c hnh 3D C php

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

drawPolygon(int x[ ], int y[ ], int numPoints); fillPolygon(int x[ ], int y[ ], int numPoints);

Mu
Java s d ng mu RGB B ng cc gi tr mu
Element Red Green Blue


Range 0-255 0-255 0-255


t o m t mu

C php c a hm d ng

color(int red, int green, int blue);

B ng trnh by cc gi tr mu RGB thng th ng

Color

Red

Green 255 192 128 64 0 175 200 255 0

Blue 255 192 128 64 0 175 0 0 255

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:

getAllFont( ) getLocalGraphicsEnvironment( ) getFont( ) getFontList( )

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

L p FontMetrics (ti p theo)


Ph

ng th c:

getFontMetrics(f1) getHeight( ) getAscent( ) getDescent( ) getLeading( ) getName( )

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)

Method used to revert to the overwrite mode


setPaintMode( )

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

Tr ng thi c a tuy n v cc ph ng th c c a l p tuy n


tr ng thi: born ready to run running sleeping waiting ready blocked dead

Ph ng th c: start( ) sleep( ) wait( ) notify( ) run( ) stop( )

Cc ph

ng th c Khc

enumerate(Thread t) getName( ) isAlive( ) getPriority( ) setName(String name) join( ) isDaemon( ) setDaemon(Boolean on) resume( ) sleep( ) start( )

Phn chia th i gian gi a cc tuy n


CPU ch th c thi ch m t tuy n t i m t th i i m nh t nh. Cc tuy n c u tin b ng nhau th c phn chia th i gian s d ng b vi x l.

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:

S d ng m t i t ng c a tuy n ng i s d ng nh ngh a, m, l n l t, d n xu t l p tuy n Th c thi ch y giao ti p (interface)

ng b tuy n

Thm nh p cc ti nguyn/d li u b i nhi u tuy n S ng b (Synchronization) S quan st (Monitor) Mutex

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 .

K thu t wait-notify ( thng bo) (1)

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) :

wait( ) notify( ) notifyAll( )

K thu t wait-notify ( thng bo) (1)


Cc ch c n ng c a cc ph ng th c wait(), notify(), v notifyAll() l :


wait( ) notify( ) notifyAll( )

tuy n u tin cao nh t ch y u tin C php c a cc ph ng th c:


final void wait( ) throws IOException final void notify( ) final void notifyAll( )

M t s i m c n nh trong khi s d ng ph ng th c wait():


tuy n ang g i a vo CPU tuy n ang g i a vo kha tuy n ang g i i vo vng monitor i c a

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

Ph ng th c finalize() (hon thnh)


Java cung c p m t con ng lm s ch m t ti n trnh tr c khi i u khi n tr l i h i u hnh Ph ng th c finalize(), n u hi n di n, s c th c thi trn m i i t ng, tr c khi s d n rc Cu l nh c a ph ng th c finalize() nh sau :

protected void finalize( ) throws Throwable

Tham chi u khng ph i l s d n rc; ch cc i t ng m i c d n rc

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:

write(int) write(byte[ ]) write(byte[ ], int, int) flush( ) close( )

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.

Khng h tr cc ph ng th c m i Cc ph ng th c n p ch ng c a l p InputStream, gi ng nh read(), skip(), available() v reset().

Byte Array Output


s d ng cc vng m b nh L p ByteArrayOutputStream
T o ra m t lu ng k t xu t trn m ng byte Cung c p cc kh n ng b sung cho m ng k t xu t t ng tr ng nh m ch a ch cho d li u m i ghi vo. C ng cung c p cc ph ng th c chuy n i lu ng t i m ng byte, hay i t ng String.

Ph ng th c c a l p ByteArrayOutputStream :

reset( ) size( ) writeTo( )

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

File FileDescriptor FileInputStream FileOutputStream

Cc l p File, FileDescriptor, v RandomAccessFile c s d ng h tr tr c ti p ho c truy c p nh p/xu t ng u nhin.

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:

S l ng byte l n c c cng th i i m, v l u tr trong m t vng m nh p. Khi ch ng trnh c lu ng nh p, cc byte nh p c c vo 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

M t ch php ch nh kch th nh p. ph ng th c kia th khng.

C hai ph ng th c thi t l p u ti p nh n m t i t ng c a l p InputStream nh m t tham s . N p ch ng cc ph ng th c truy c p m InputStream cung c p, v khng a vo b t k ph ng th c m i no.

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:

read( ) reset( ) skip( ) mark( ) markSupported( ) close( ) ready( )

L p Writer
H tr cc ph

ng th c sau :

write( ) flush( ) close( )

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

L p CharArrayReader khng b sung ph ng th c m i vo cc ph ng th c m l p Reader cung c p.

Nh p/xu t chu i v m ng k t (tt)


L p CharArrayWriter b sung ph ng th c sau y vo ph ng th c c a l p Writer cung c p:

reset( ) size( ) toCharArray( ) toString( ) writeTo( )

Nh p/xu t chu i v m ng k t (tt)


L p StringReader tr gip c cc k t u vo t su chu i. N khng b sung b t k ph ng th c no m l p Reader cung c p. L p StringWriter tr gip ghi lu ng k t xu t k t ra m t i t ng StringBuffer. L p ny b sung thm cc ph ng th c sau:

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

Giao di n PrinterGraphics cung c p cc l p sau:


Paper Book PageFormat PrinterJob PrinterException PrinterIOException PrinterAbortException

Gi java.awt.print kch ho t cc ngo i l :


Ch

ng IX

K T N I CSDL Java Database Connectivity

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.

N p database drivers T o n i k t, T o i t ng Connection T o i t ng Statement th c thi cc l nh sql..

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

Server JDBC Driver Server


Database

Native Database Library

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 Connection ch a lin k t tr c ti p n csdl. S d ng i t ng Connection t o i t ng Statement.


Statement s = con.createStatement();

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

executeQuery() executeUpdate() execute()

The executeQuery()
Nh n cu l nh SQL (select) lm t ng ResultSet i s , tr l i i

ResultSet rs = s.executeQuery(SELECT * FROM Books);

Ph

ng th c executeUpdate()

Nh n cc cu l nh sql d ng c p nh t Tr l i s nguyn bi u th s hng c c p nh t. UPDATE, INSERT, or DELETE.

Ph

ng th c execute()

c p d ng cho tr ng h p khng r lo i sql no c th c hi n. c p d ng cho tr ng h p cu l nh sql wocj t o ra t ng b i ch ng trnh.

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 }

l y d li u cc c t trn m i hng c a ResultSet, ta dng cc ph ng th c.


get type(int | String)
i s l ch s c t tnh t 1. p d ng cho cc c t c ki u d li u l int, float, Date.....

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

Prepared Statements Callable Statement

Database Metadata
it csdl. ng ny cho bi t thng tin v

import java.sql.*; class JDBCDemo1 { public static void main(String[] args) {

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);

Вам также может понравиться