You are on page 1of 37

J AV A S UB M I T TE D I N P AR T I A L F U LF I L L M EN T o f t h e r e q u i r e me n t f o r P r a c t i c a l Tr a i n i n g In B . Te c h ( c .s .

e )

N a me o f t h e C o mp a n y: S UB MI T T E D B y P RI Y AB R AT K U M A R C o mp u t e r s c i e n c e 5109027

K A R NA L I NS TI T U T E OF T EC HN O L O G Y & M AN A G EM E N T K U NJ P U R A , KAR N A L

IN D E X 1. Introduction 1.1. History 1 . 2 . O ve r vi e w 1 . 3 . C h a r a c t e r i s t i c s o f J a va 1 . 4 . D e ve l o p me n t wi t h J a va 2 . Cl a s s p a t h 3 . Y o u r f i r s t J a va p r o g r a m 3.1. Write source code 3 . 2 . C o m p i l e a n d r u n yo u r J a va p r o g r a m 3 . 3 . Us i n g t h e c l a s s p a t h 4 . I n t e g r a t e d De ve l o p me n t E n vi r o n m e n t 5 . Y o u r f i r s t g r a p h i c a l u s e r i n t e r f a c e a p p l i c a t i o n ( G UI ) 6 . S t a t e me n t s 6.1. Boolean Operations 6 . 2 . S wi t c h S t a t e me n t 7 . W o r k i n g wi t h S t r i n g s 8 . Co l l e c t i o n 9 . T yp e C o n ve r s i o n 9 . 1 . C o n ve r s i o n t o S t r i n g 9 . 2 . C o n ve r s i o n f r o m S t r i n g t o N u mb e r 9.3. Double to int 9 . 4 . S Q L D a t e c o n ve r s i o n s 1 0 . J A R f i l e s - J a va A r c h i ve 10.1. What is a jar 1 0 . 2 . E xe c u t a b l e j a r 11. Cheat Sheets 1 1 . 1 . W o r k i n g wi t h c l a s s e s 1 1 . 2 . W o r k i n g wi t h l o c a l va r i a b l e 1 2 . T h a n k yo u 13. Questions and Discussion 14. Links and Literature

T O W H O M I T M A Y CO NC E RN

T h i s i s t o c e r t i f y t h a t M r . P R I B R A T K UM AR , R o l l No . 5 1 0 9 0 27 Student of Karnal I n s t i t u t e o f T e c h n o l o g y & Ma n a g e me n t , K a r n a l h a s u n d e r g o n e a practical training from 1 5 J U LY t o 2 5 A U G US T E 2 0 1 1 a t o u r o r g a n i z a t i o n t o f u l f i l l t h e r e q u i r e me n t s o f t h e Ku r u k s h e t r a U n i v e r s i t y s c o ur s e c u r r i c u l u m f o r t h e a wa r d o f B . Te c h . D e g r e e . H e / S h e wo r k e d on the p r o je c t J AV A_ TI P S under the supervision of Sh.

K A I LA S H K A NA K d u r i n g h i s t e n u r e wi t h u s we found him very sincere, hard working and well disciplined. We wi s h h i m g r e a t s u c c e s s i n l i f e .

( S UP ER VI S O R )

A C K NO W L E D G E ME NT

T h e a u t h o r c o n v e ys h i s h e a r t f e l t g r a t i t u d e t o Dr . R .B . S a n g wa n t h e Di r e c t o r - P r i n c i p a l o f K a r n a l I n s t i t u t e o f t e c h n o l o g y & Ma n a g e me n t K u n j p u r a , K a r n a l u n s t i n t e d s u p p o r t g i v e n b y h i m. T h e a u t h o r wo u l d l i k e t o c o n v e y h e a r t i e s t t h a n k s t o t h e C E O o f t h e C o mp a n y A P T E C H C O M P U TE R ED UC A TI ON f o r p r o v i d i n g such an intensive and extensive training in the p r o je c t u n d e r t a k e n b y me . T h e a u t h o r wo u l d l i k e t o c o n v e y h e a r t i e s t t h a n k s t o t h e Er . S a c h i n Wa d h wa , A c a d e mi c I n c h a r g e o f KI TM f o r p r o v i d i n g s u c h a n i n t e n s i v e a n d e x t e n s i v e t r a i n in g i n t h e p r o je c t u n d e r t a k e n b y me . T h e a u t h o r a c k n o wl e d g e s c o n t in u o u s g u i d a n c e a n d i n c e s s a n t s u p p o r t r e n d e r e d b y Er . . S I M A S I N G H He a d o f t h e D e p a r t me n t o f C OM P U T ER S C I E N C E n o t o n l y f o r t h i s p r o je c t b u t a l s o i n my o v e r a l l c a r e e r d e v e l o p me n t . Wi t h o u t t h e h e l p , g u i d a n c e a n d s u pp o r t o f Er .A K A NS H A u n d e r wh o se s u p e r v i s i o n I h a d t h e o p p o r t un i t y o f wo r k i n g , i t wo u l d h a v e b e e n a b s o l u t e l y


4

f o r t h e e n c o u r a g e me n t a n d

i mp o s s i b l e f o r me t o c o mp l e t e t h e p r o je c t . Hi s c o n t r i b u t i o n i s profusely acknowledged. Moral, intellectual and very frequently required support from all t h e f a c u l t y me mb e r s i s a l s o h e r e b y a c k n o wl e d g e d . L a s t l y t h e a u t h o r wo u l d a l s o l i k e t o t h a n k e a c h a n d e v e r y p e r s o n who contributed directly o r i n d i r e c t l y f o r c o mp l e t i o n o f t h i s p r o je c t . N A M E OF T H E S T U DE N T : P R I B R A T KU M AR R O O L : - 5 1 0 9 0 27 ( C S E )

1 . In t r od u ct i on 1 . 1 . H is t or y J a va is a p r o g r a m m ing la ng ua g e c r e a te d b y J a m e s G o s l i ng f r o m S u n Mi c r o s y s te m s in 1 99 1. Th e f ir s t p ub l i c a v a i l a b le ve r s i o n o f J a va ( J a va 1. 0 ) wa s r e le a s e d 199 5 . O ve r t im e s e ve r a l ve r s i o n o f J a v a we r e r e le a s e d wh ic h e nh a nc e d th e l a ng ua g e a n d it s l ib r a r ie s . Th e c u r r e n t ve r s io n o f J a va is J a va 1. 6 a ls o k no wn a s J a v a 6. 0 . F r o m th e J a va p r o g r a m m i ng l a ng ua g e th e J a va p la tf o r m e v o lve d. Th e J a va p la tf o r m a l l o ws th a t c o de is wr i t te n in o t h e r l a ng ua g e s t h e n t h e J a va p r o g r a m m ing l a ng ua g e a nd s ti l l r uns o n th e J a v a vi r t ua l m a c h ine . 1 . 2 . O ve r v ie w T h e J a va p r o g r a m m ing la ng ua g e c o ns is ts o u t o f a J a va c o m p i le r , th e J a va v ir tu a l m a c h i ne , a nd t h e J a v a c la s s l ib r a r ie s . Th e J a va vi r t ua l m a c h ine ( J V M ) i s a s o f twa r e i m p le m e nt a t io n o f a c o m p ute r t h a t e x e c u te s p r o g r a m s lik e a r e a l m a c h i ne . T h e J a v a c o m p il e r tr a ns l a te s J a va c o d ing i n to s o - c a l le d b y te c o de . Th e J a va v ir t ua l m a c h ine i n te r p r e ts th is b y te - c o de a n d r uns th e p r o g r a m . T h e J a va v ir t ua l m a c h i ne is wr it te n s p e c i f ic a l ly f o r a s p e c if ic o p e r a t ing s y s te m . T h e J a v a r u nt im e e n vi r o n m e nt ( J R E) c o ns is ts o f th e J V M a nd th e J a v a c la s s lib r a r ie s .
6

1 . 3 . C h a r a ct e r i s t ics o f J a va T h e t a r g e t o f J a va is t o wr i te a p r o g r a m o nc e a n d th e n r u n t h is p r o g r a m o n m ul t ip le o p e r a ti ng s y s te m s . J a va h a s th e f o ll o wi ng p r o p e r t ie s : P l a tf o r m in de p e n de n t: J a va p r o g r a m s us e t h e J a va

v ir t ua l m a c h ine a s a b s tr a c ti o n a nd do n o t a c c e s s th e o p e r a t ing s y s te m d ir e c t ly . Th is m a k e s J a va p r o g r a m s h ig h ly p o r ta b le . A J a v a p r o g r a m w h i c h is s ta n da r d c o m p la i nt a nd f o l l o ws c e r ta in r u le s c a n r u n unm o d if ie d a l l s e ve r a l p la t f o r m s , e . g . W in do ws o r L i nu x . O b je c t - o r ie n ta te d p r o g r a m m ing l a ng ua g e : Ex c e p t th e p r im i t ive da ta ty p e s , a l l e le m e nt s in J a va a r e o b je c ts . S tr o ng ly - ty p e d p r o g r a m m ing l a ng ua g e : J a va is s tr o ng ly t y p e d, e . g . th e t y p e s o f t h e us e d v a r ia b le s m u s t b e p r e de f ine d a nd c o n ve r s io n to o th e r o b je c ts is r e la t ive ly s tr ic t, e.g. must be do ne in most cases by th e programmer. I n te r p r e te d a nd c o m p i le d la ngu a g e : J a va s o ur c e c o de is t r a ns f e r e d in t o b y te - c o de wh i c h d o e s no t de p e n d o n th e t a r g e t p la tf o r m . T h is b y te - c o de w i ll b e i nte r p r e te d b y t h e J a va V ir tu a l m a c h ine ( J V M) . Th e J V M c o nt a ins a s o c a l le d Ho ts p o t - C o m p i le r wh ic h t r a ns la te s c r i tic a l b y te c o de in to n a t ive c o de . A u t o m a t ic memory m a n a g em e nt: Java m a na g e s th e

m e m o r y a l lo c a ti o n a nd de - a l lo c a t io n f o r c r ea t ing ne w o b je c ts . Th e p r o g r a m do e s n o t h a ve di r e c t a c c e s s to th e
7

memory.

Th e

s o - c a l le d

garbage

c o l le c to r

de le te s

a u to m a t i c a l ly o b je c t to wh ic h no a c ti ve p o in te r e x is ts . T h e J a va s y n ta x i s s i m i la r to C + +. J a va is c a s e s e ns i t ive , e . g . the v a r ia b le s m y V a lue a nd m y va lue wi l l be t r e a te d as d i f f e r e nt v a r ia b l e s . 1 . 4 . D e ve l op m e n t w it h J a va T h e p r o g r a m m er w r i te s J a v a s o ur c e c o de in a n te x t e d i to r w h ic h s up p o r ts p la in te x t. N o r m a l ly th e p r o g r a m m e r us e s a n I DE ( in te g r a t e d de ve l o p m e nt e n vi r o n m e n t) for p r o g r a m m ing . A n I D E s u p p o r t t h e p r o g r a m m e r in t h e ta s k o f w r it ing c o de , e . g . i t p r o v i de s a u to - f o r m a tt i ng o f t h e s o ur c e c o de , h ig h l ig h t ing o f t h e im p o r t a nt k e y w o r ds , e tc . A t s o m e p o in t t h e p r o g r a m m e r ( o r t h e I D E) c a l ls t h e J a va c o m p i le r ( ja v a c ) . Th e Java c o m p ile r c r e a te s p la tf o r m i n de p e n de n t c o de w h i c h is c a l le d b y te c o de . T h i s b y te - c o de is s to r e d i n ". c la s s " f i le s . B y te c o de c a n be e x e c u te d b y th e J a va r un t im e e nv ir o n m e n t. T h e J a va r u n tim e e nv ir o nm e nt ( J RE ) is a p r o g r a m w h i c h k n o ws h o w t o r u n t h e b y te c o de o n th e o p e r a t ing s y s te m . Th e J R E t r a ns la te s t h e b y te c o de int o na t ive c o de a n d e x e c u te s it, e . g . th e na t ive c o de f o r L i nux is d i f f e r e n t th e n th e na t ive c o de f o r W in do ws . B y de f a ul t, th e c o m p i le r p u ts e a c h c la s s f i le in th e s a m e d ir e c to r y a s its s o ur c e f i le . Y o u c a n s p e c i f y a s e p a r a te de s t in a t io n d ir e c t o r y w i th - d 2 . C la s s p a t h
8

T h e c la s s p a th is th e c o nne c t io n b e t we e n th e J a va c o m p i le r a nd J a v a in te r p r e te r . I t de f ine s w h e r e th e c o m p i le r a nd i n te r p r e te r lo o k f o r . c la s s f i le s t o lo a d. T h e c la s s p a t h in J a va de f i ne s w h ic h J a va c l a ss a r e a va il a b le f o r y o u r J a va p r o g r a m . F o r e x a m p le i f y o u w a n t t o us e a n e x te r na l J a v a li b r a r y y o u h a ve to a dd th is li b r a r y to y o ur c l a s s p a th to us e i t i n y o u r y o u r p r o g r a m . 3 . F ir s t J a va p r o gr a m 3 . 1 . W r it e s our ce c od e T h e f o l l o w ing J a va p r o g r a m is de ve l o p e d u nde r M ic r o s o f t W in do ws . T h e p r o c e s s o n o th e r o p e r a t ing s y s te m s h o u ld b e s im il a r b u t wi l l no t b e c o ve r e d h e r e . S e le c t a di r e c t o r y wh ic h should c o n ta in your c o de . I will us e the di r e c to r y c : \ te m p \ ja v a wh i c h w i l l b e c a l le d "ja va di r ". O p e n a te x t e di t o r wh ic h s up p o r ts p la in te x t , e . g . n o te p a d u n de r W in do ws a nd w r i te th e f o l l o w ing s o ur c e c o de . Y o u c a n s ta r t n o te p a d v ia S ta r t - >R un - > n o te p a d a nd p r e s s i ng e n te r .

// The smallest Java program possible


p u b l i c c l a s s H e l l o Wo r l d { p u b l i c s t a t ic v o i d m ai n (S t r i n g [] a r gs ) { S y s t e m .o u t . pr i n t l n ( " H e l lo W o r l d" ) ; } }

S a ve t h e s o ur c e c o de in y o u r d ir e c to r y "j a va di r " un de r th e n a m e " He l lo W o r l d. ja va ". T h e na m e o f a J a va s o ur c e f i le m us t a l wa y s e q ua ls th e c la s s n a m e ( wi t h i n th e s o ur c e c o de ) a nd end w i th . j a va . In our case the f ile na m e m us t be He l l o W o r ld. ja va b e c a us e t h e c la s s is c a l le d He l l o W o r l d. 3 . 2 . C om p i le a n d r un y our J a va p r o gr a m S w i tc h t o th e c o m m a n d l ine , e . g . u nde r W in do ws S t a r t - > Run - > c m d. S wi t c h to t h e " ja va d ir " d ir e c t o r y wi t h th e c o m m a nd c d j a va d ir , f o r e x a m p le i n m y c a s e c d c : \ te m p \ ja v a . Us e th e c o m m a n d di r t o s e e th a t th e s o u r c e f i le is i n t h e d ir e c t o r y .

j a v a c He l l o Wo r l d . j av a C h e c k th e c o nte n t o f th e d ir e c t o r y w i th th e c o m m a nd " di r ". T h e d ir e c t o r y c o n ta ins no w a f i le "He l lo Wo r l d. c l a s s ". I f y o u s e e t h is f i le y o u h a ve s u c c e s s f u l ly c o m p i le d y o ur f i r s t J a va s o ur c e c o de in to b y te - c o de . R un - > c m d. S wi t c h to th e d ir e c t o r y ja r di r . T o r un y o ur p r o g r a m ty p e in t h e c o m m a nd li ne :


10

j a v a H el l o W or l d T h e s y s te m s h o u l d wr i te " He l l o Wo r ld " o n t h e c o m m a n d l ine .

3 . 3. U s in g t h e cla s s p a t h Y o u c a n us e th e c l a s s p a th to r u n th e p r o g r a m f r o m a n o th e r p la c e in y o ur dir e c t o r y . S w i tc h t o th e c o m m a n d l ine , e . g . u nde r W in do ws S t a r t - > Run - > c m d. S wi t c h t o a ny di r e c to r y y o u wa n t. Ty p e :


11

j a v a H el l o W or l d I f y o u a r e no t in t h e d ir e c to r y i n wh ic h t h e c o m p i le d c la s s is s to r e d th e n th e s y s te m in should result an error " m a in " m e s s a g e E x ce p t ion thread

j a va . la n g .N oC l a s s D e f F o un d E r r or : t e s t /T e s t C la s s T o us e t h e c la s s ty p e th e f o l lo wi ng c o m m a n d. Re p la c e " m y d ir e c t o r y " w i th th e d ir e c t o r y wh ic h c o n t a i ns th e te s t d ir e c to r y . Y o u s h o u l d a g a in s e e t h e "He l l o Wo r ld " o ut p u t.

j a v a - cl a s s pa t h " m yd i r e ct o r y " He l l o Wo r l d 4 . In t e gr a t e d D e ve lop m e n t E n v ir on m e n t T h e p r e v io us c h a p te r e x p l a i ne d h o w to c r e a te a nd c o m p i le a J a va p r o g r a m o n t h e c o m m a n d l i ne . A J a v a I n te g r a te d D e ve lo p m e n t En v ir o nm e n t ( I D E ) p r o v ide s l o ts o f e a s e o f us e f un c ti o n a l i ty f o r c r e a t i ng ja va p r o g r a m s . Th e r e a r e o t h e r ve r y p o we r f ul I D E's a va il a b le , f o r e x a m p le th e E c li p s e I D E. . F o r a n in t r o d uc t io n o n h o w to us e t h e Ec l ip s e I D E p le a s e s e e E c l i p s e I DE Tu t o r i a l . In th e f o l lo wi ng I will say " C r e a te a J a va p r o je c t

S o m e N a m e ". Th is wi l l r e f e r t o c r e a t ing a n E c l ip s e J a va p r o je c t. I f y o u a r e us i ng a d if f e r e n t I D E p lea s e f o l lo w th e r e q ui r e d s te p s in th is I D E. 5 . Y ou r ( GU I)


12

f ir s t

gr a p h i ca l

us e r

in t e r f a ce

a p p l i ca t i on

U s i ng E c l i p s e c r e a te "J a va I n tr o du c tio n UI ".

ne w

J a va

p r o je c t

C r e a te th e f o l lo w i ng c la s s My F ir s t UI . j a va in p a c k a g e u i.

p a c k a g e ui ;

i m p o r t j av a .a w t . B o rd e r L ay o u t ; i m p o r t j av a .a w t . G r id L a y ou t ; i m p o r t j av a .a w t . e v en t . A ct i o n E v en t ; i m p o r t j av a .a w t . e v en t . A ct i o n L i st e n e r;

i m p o r t j av a x. s w i n g .J B u t to n ; i m p o r t j av a x. s w i n g .J C h e ck B o x ; i m p o r t j av a x. s w i n g .J F r a me ; i m p o r t j av a x. s w i n g .J L a b el ; i m p o r t j av a x. s w i n g .J O p t io n P a n e ; i m p o r t j av a x. s w i n g .J P a n el ; i m p o r t j av a x. s w i n g .J T e x tF i e l d ;

p u b l i c c l a s s M y F i r st U I e x t e n d s J Fr a me {

p r i v a t e JC h ec k B o x ch e c k bo x ; p r i v a t e JT e xt F i e l d f i r s tN a m e ; p r i v a t e JT e xt F i e l d l a s t Na m e ;

13

p u b l i c M yF i rs t U I ( ) {

// Lets make it look nice // This you don't like it // try { // for (LookAndFeelInfo info UIManager.getInstalledLookAndFeels()) { // ("Nimbus".equals(info.getName())) { : if you can ignore / delete if

// UIManager.setLookAndFeel(info.getClassName()); // break; // } // } / / } catch (Exception e) { // e.printStackTrace(); // }

s e t T i t le ( " M y F i r s t U I " ) ;

// We create a panel which will hold the UI components


JPanel B o r d e r La y o u t( ) ) ; p an e = new J P an e l( n e w

// We always have two (columns) and we have three rows

UI

elements

14

i n t n u m be r O fR o w s = 3 ; i n t n u m be r O fC o l u m n s = 2 ; p a n e . s et L a y ou t ( n e w G r i d L a yo u t ( nu m b e r O fR o w s , n u m b e rO f C o lu m n s ) ) ;

// create and attach buttons // main win d o w create a label and add
=

it

to

the

JLabel F i r s t n am e : " ) ;

f i r st N a m e l ab e l

new

J La b el ( "

p a n e . a dd ( f i rs t N a m e la b e l ); f i r s t N am e = n e w J T e xt F i el d ( ) ; p a n e . a dd ( f i rs t N a m e );

JLabel L a s t n a me : " );

l a stN a m e l a be l

new

J L a b el ( "

p a n e . a dd ( l a st N a m e l ab e l ) ; l a s t N a me = n e w J T e x tF i e ld ( ) ; p a n e . a dd ( l a st N a m e ) ;

JButton s o m e t h in g " ) ;

s ayH e l l o

n ew

J B u tt o n ( "S a y

p a n e . a dd ( s a yH e l l o ) ;

c h e c k b ox = n e w J C h e ck B o x( " N i c e " ) ; p a n e . a dd ( c h ec k b o x ) ;

15

// Add the pane to the main window


g e t C o n te n t P an e ( ) . a dd ( p a ne ) ;

// Pack will make the size of window fitting to the compoents // You could setSize(300, 400);
pack();

also

use

for

example

// Set a tooltip for the button


s a y H e l lo will say bad"); . s e t T o ol T i p Te x t ( " T hi s bu t t on so m e t h i ng rea l l y n i c e o f s om e t h ing

// sayHello need to do something


s a y H e l lo . a d dA c t i o n Li s t e ne r ( n e w M y A c t i on L i s te n e r ( ) ); }

p r i v a t e c l as s A c t i o n Li s t e ne r {

M y A ct i o nL i s t e ner

implements void

public a c t i o n Pe r f o rm e d ( A c ti o n E ve n t e ) { i f ( ! c h ec k b ox . i s S e le c t e d( ) ) { J O p t i o nP a n e .s h o w M e ss a g e Di a l o g ( nu l l , d o n ' t li k e yo u , "

"I

+ f i r s t N am e . g et T e x t ( ) + " " + l a s t N am e . g e t Te x t () + "!");


16

} else { J O p t i o nP a n e .s h o w M e ss a g e Di a l o g ( nu l l , a r e y o u, " " How

+ f i r s t N am e . g et T e x t ( ) + " " + l a s t N am e . g e t Te x t () + "?"); } }

} }

C r e a te a ls o th e f o l l o w ing c la s s Ma i nTe s te r . ja v a in p a c k a g e t e s t a nd s ta r t th is c la s s .

p a c k a g e te s t;

i m p o r t u i. M yF i r s t U I;

p u b l i c c l a s s M a i n T es t e r { p u b l i c s t a t ic v o i d m ai n (S t r i n g [] a r gs ) { M y F i r s tU I v ie w = n e w M y Fi r s t U I () ; v i e w . s et V i s ib l e ( t r ue ) ; } }
17

Y o u s h o u ld s e e t h e f o l lo w i ng . A m e s a g e di a lo g s h o u ld b e s e e n i f y o u p r e ss t h e b u tt o n.

6. Statements T h e f o l l o w ing de s c r ib e s c e r ta in a s p e c ts o f th e s o f twa r e . 6 . 1. B o ol e a n O p e r a t i on s U s e = = to c o m p a r e t wo p r im it ive s o r to s e e if t w o r e f e r e nc e s r e f e r s to t h e s a m e o b je c t. Us e t h e e q ua ls ( ) m e t h o d t o s e e if t w o d if f e r e n t o b je c ts a r e e q ua l. & & a nd | | a r e b o t h S h o r t C ir c ui t Me t h o ds w h ic h m e a ns th a t t h e y te r m ina te o nc e t h e r e s u lt o f a n e va l ua ti o n is a lr e a dy c le a r . Ex a m p le ( tr ue | | . . . . ) is a l wa y s t r ue wh i le ( f a ls e & & . . . ) a lw a y s f a ls e is . Us a g e : ( va r ! = nu l l & & v a r . m e th o d 1( ) . . ) e ns u r e s t h a t v a r is n o t n u l l b e f o r e do ing th e r e a l c h e c k .
18

T a b le 1 . B o o le a n Operations == Description I s e q u a l , i n c a s e o f o b je c t s t h e s ys t e m checks if the reference variable point to the s a me o b je c t , i s wi l l n o t c o mp a r e t h e c o n t e n t o f t h e o b je c t s ! && And != i s n o t e q u a l , s i mi l a r t o t h e " = = " a .e q u a l s ( b ) Checks if string a equals b a .e q u a l s I g n o r e C a s e ( b ) C h e c k s i f s t r i n g a e q u a l s b wh i le i g n o r i n g l o we r c a s e s I f ( v a l u e ? f a l s e : R e t u r n t r u e i f v a l u e i s n o t t r u e . Ne g o t i a t i o n t r u e ) {} 6 .2 . S w it ch S t a t e m e n t The s w it c h s ta te m e nt can be us e d to h a nd le s e ve r a l

a l te r na ti ve s if th e y a r e b a s e d o n th e s a m e c o ns t a nt v a lue .

s w i t c h ( ex p re s s i o n ) { c a s e c o ns t a nt 1 : c o m m a n d; b r e a k ; // Will prevent that the other cases or also executed c a s e c o ns t a nt 2 : c o m m a n d; break; ... default: }
19

E x a m p l e:

s w i t c h ( ca t .g e t L e v el ( ) ) { case 0: r e t u r n t ru e ; case 1: i f ( c a t .g e t Le v e l ( ) = = 1 ) { if ( c a t . g et N a m e( ) . e q u al s I g no r e C a s e( r e q .g e t C a t eg o r y ())) { r e t u r n t ru e ; } } case 2: if ( c a t . g et N a m e( ) . e q u al s I g no r e C a s e( r e q .g e t S u b Ca t e g ory())) { r e t u r n t ru e ; } } 7 . W or k in g w it h S t r in gs T h e f o l l o w ing lis ts th e m o s t c o m m o n s tr ing o p e r a t io ns . T a b le 2 . C o mma n d t e x t 1 . e q u a l s ( " Te s t i n g " ) ; Description return true if text1 is equal to
20

" Te s t i n g " . Th e t e s t i s c a s e sensitive. t e x t 1 . e q u a l s I g n or e C a s e ( " Te s t i n g " ) ; r e t u r n t r u e i f t e x t 1 i s e q u a l t o " Te s t i n g " . Th e t e s t i s n o t c a s e sensitive. For e x a mp l e it would also be true for "testing" StringBuffer str1 = n e w D e f i n e a n e w S t r i n g wi t h a StringBuffer(); variable length. s t r .c h a r a t ( 1 ) ; Return the character at position 1. (Strings starting with 0) s t r .s u b s t r i n g ( 1 ) ; R e mo v e s t h e f i r s t c h a r a c t e r s . s t r .s u b s t r i n g ( 1 , 5 ) ; Gets the substring from the second to the fifths character. s t r .i n d e x O f ( S t r i ng ) Find / Search for String R e t u r n s t h e i n d ex o f t h e f i r s t occurrence of the specified string. s t r .l a s t I n d e x Of ( S t r i n g ) Returns the index of the last occurrence of the specified string. StringBuffer does not s u p p o r t t h i s me t h o d . He n c e first convert the StringBuffer t o S t r i n g v i a me t h o d t o S t r i n g . s t r .e n d s Wi t h ( S t r i n g ) R e t u r n s t r u e i f s t r e n d s wi t h String s t r .s t a r t s Wi t h ( S t r i n g ) R e t u r n s t r u e i f s t r s t a r t s wi t h String s t r .t r i m( ) R e mo v e s s p a c e s s t r .r e p l a c e ( s t r 1 ,s t r 2 ) Replaces all occurrences of str1 by str2 s t r .c o n c a t ( s t r 1 ) ; Concatenates str1 at the end of str. s t r .t o Lo we r C a s e ( ) Converts string to lower- or s t r .t o Up p e r C a s e ( ) uppercase str1 + str2 Concatenate str1 and str2 S t r i n g [ ] z e u g = m yS t r i n g .s p l i t ( " - S p i t s myS t r i n g a t / i n t o "); String[] zeug = Strings. Attention: the split
21

m yS t r i n g .s p l i t ( " \ \ ." ) ;

string is a regular expression, so if you using special characters which have a m ea n i n g in regular expressions you need to quote t h em . I n t h e s e c o n d e x am p l e the . is used and must be quoted by two backslashes.

8 . C o lle ct ion A c o l le c ti o n is a da ta s tr u c t ur e wh ic h is us e d to c o n ta in a nd p r o c e s s s e ts o f d a ta . T h e da ta is e nc a p s u l a te d a nd th e a c c e s s t o th e da ta is o n ly p o s s ib le vi a p r e de f ine d m e th o ds . F o r e x a m p le if y o ur a p p l ic a t io ns s a ve s da t a i n t h e o b je c t P e o p le y o u c a n s to r e d if f e r e n t P e o p le o b je c ts a b o u t p e o p le in a c o l le c ti o n.

W h i le a r r a y s a r e f ix e d s iz e d, c o l l e c t io ns h a ve a dy na m i c s iz e , e . g . a c o l le c t io n c a n c o n ta in a f le x ib le nu m b e r o f o b je c t. W h e n y o u ne e d e le m e n ts o f va r io us ty p e s o r a dy n a m i c a lly c h a ng i ng nu m be r o f t h e m y o u u s e J a va C o l le c ti o ns . T y p i c a l c o l le c tio ns a r e : s t a c k s , q ue ue s , de qu e s , l is ts a nd trees. A s o f J a va 5 c o l le c t io ns s h o ul d g e t p a r a m e te r iz e d wi t h a n o b je c t de c la r a tio n to e na b le t h e c o m p i le r t o c h e c k if o b je c ts w h ic h a r e a d ded to th e c o l le c tio n h a ve th e c o r r e c t ty p e .

22

p a c k a g e co l le c t i o n s;

i m p o r t j av a .u t i l . A rr a y L is t ;

p u b l i c c l a s s M y A r r ay L i s t {

p u b l i c s t a t ic v o i d m ai n (S t r i n g [] a r gs ) {

// Declare the ArrayList


A r r a y L is t < S tr i n g > A r r a y L is t < S tr i n g > ( ); v ar = new

// Add a few Strings to it


v a r . a d d( " L a rs " ) ; v a r . a d d( " J e nn i f e r " );

// Loop over it and print the result to the console


f o r ( S t ri n g s : v a r) { S y s t e m .o u t . pr i n t l n (s ) ; } } }

j a v a . u t i l. C o l le c ti o ns is th e b a s i s c la s s w h i c h p r o v ide s y o u u s e f u l f u nc ti o na l i ty . T a b le 3 . S a m p l e T a b le C o l l e c t i o n s .c o p y( l i s t , Copy a collection


23

list) to another C o l l e c t i o n s .r e v e r s e ( l i s t ) R e s e r v e t h e o r d e r of the list C o l l e c t i o n s .s h u f f l e ( l i s t ) S h u f f l e s t h e l i s t C o l l e c t i o n s .s o r t ( l i s t ) Sort the list 9 . T y p e C on ve r s i on I f y o u us e va r i a b le s o f di f f e r e nt ty p e s J a va r e q ui r e s f o r c e r t a i n ty p e s a n e x p l i c i t c o n ve r s io n. T h e f o l lo wi ng g ive s e x a m p le s f o r th i s c o nve r s io n. 9 . 1. C on ve r s i on t o S t r in g U s e th e f o l lo w ing to c o n ve r t f r o m o t h e r ty p e s t o S tr ing s

// Convert from int to String


String

String s2 =

s1

S t r i ng . v a lu e O f

10

);

//

"10"

// Convert from double to String


S t r i n g .v a l u eO f

"3.141592653589793"

M a t h . PI

);

//

// Convert from boolean to String


S t r i n g s 3 = S t r i n g .v a l u eO f ( 1 < 2 ); // "true"

// Convert from date to String


S t r i n g s 4 = S t r i ng . v a lue O f

"Tue Jun 03 14:40:38 CEST 20 0 3 "

new

Da t e ( ) ) ;

//

9 .2 . C on ve r s io n f r om S t r in g t o Num b e r

24

// Conversion from String to int


i n t i = I n t eg e r . p a rs e I n t( S t r i n g) ;

// Conversion from float to int


f l o a t f = F lo a t . p a rs e F l oa t ( S t r in g ) ;

// Conversion from double to int


d o u b l e d = Do u b l e . pa r s e Do u b l e ( St r i n g) ; T h e c o n ve r s io n f r o m s t r i ng to num b e r is i nde p e n de n t f r o m t h e L o c a le s e tt i ng s , e . g . i t is a l wa y s us ing t h e Eng l is h n o ti f i c a t io n for nu m b e r . In t h is n o ti f i c a ti o n a correct n um b e r f o r m a t i s "8 . 20 ". T h e G e r m a n n um b e r "8 , 20 " wo u ld r e s u lt in a n e r r o r . T o c o n ve r t f r o m a G e r m a n nu m b e r y o u h a ve t o us e th e N um b e r F o r m a t c la s s . T h e c h a l l e ng e s is th a t i f th e va l ue is f o r e x a m p le 98 . 0 0 th e n th e N um b e r F o r m a t c la s s wo uld c r e a te a L o ng w h ic h c a nno t b e c a s te d t o D o ub le . He n c e t h e f o l lo wi ng c o m p le x c o n ve r s io n c la s s .

private {

D o ub l e

c o n v er tS t r i n g To D o u bl e ( S t r in g

s)

L o c a l e l = n e w L o c a le ( " de " , " D E" ) ; L o c a l e .s e t D ef a u l t ( l) ; N u m b e r Fo r m a t N u m b e r Fo r m a t. g e t I n st a n c e( ) ; D o u b l e r e s u lt = 0 . 0;


25

nf

try { if ( C l a s s .f o r N am e ( " j a va . l a ng . L o n g " ) . i s In s t a n c e( n f . p a r s e ( s) ) ) { result = D o u b l e .p a r s eD o u b l e (S t r i ng . v a l u eO f ( n f. p a r s e (s ) ) ) ; } else { result n f . p a r se ( n e w S t r i n g( s ) ) ; } } c a t c h (C l as s N o t F ou n d E xc e p t i o n e 1 ) { e 1 . p r i nt S t a ck T r a c e () ; } c a t c h (P a rs e E x c e pt i o n e 1 ) { e 1 . p r i nt S t a ck T r a c e () ; } r e t u r n r es u lt ; } 9 .3 . D oub le t o in t i n t i = ( in t) do ub le ; 9 .4 . S Q L D a t e c on ve r s i on s U s e th e f o l lo w ing to c o n ve r t a D a te t o a S Q L da te = ( D o u bl e)

p a c k a g e te s t;

i m p o r t j av a .t e x t . D at e F o rm a t ;
26

i m p o r t j av a .t e x t . P ar s e E xc e p t i o n; i m p o r t j av a .t e x t . S im p l e Da t e F o r ma t ;

p u b l i c c l a s s C o n v e rt D a t eT o S Q L D at e {

p r i v a t e v o i d c o n v e rt D a t eT o S Q L ( ){ S i m p l eD a t e Fo r m a t te m p l at e = dd"); new S i m ple D a t e F or m a t ( " y y y y - MM -

j a v a .u t i l .D a t e e nd d a t e = n e w j a v a. u t il . D a t e ( " 1 0 / 31 / 9 9 " ) ; j a v a .s q l . Da t e s q lD a t e = j a v a . s ql . D a te . v a l u eO f ( t e m p l a te . f o rm a t ( e n dd a t e )) ;

} p u b l i c s t a t ic v o i d m ai n (S t r i n g [] a r gs ) { C o n v e r tD a t e To S Q L D a te C o n v e r tD a t e To S Q L D a te ( ) ; da t e = new

d a t e . c on v e r tD a t e T o SQ L ( ) ; }

27

1 0 . J A R f ile s - J a va A r ch i ve 1 0 .1 . W h a t is a j a r A J AR f i le is a J a va A r c h i ve b a s e d o n t h e p k z ip f i le f o r m a t. A j a r f i le s c a n c o n t a i n ja va c la s s e s a n d o th e r r e s o ur c e s ( i c o ns , p r o p e r ty f i le s ) a nd c a n b e e x e c u t a b le . J AR f i le s a r e t h e de p lo y m e nt f o r m a t f o r J a va . Y o u c a n d is tr ib u te y o ur p r o g r a m in a ja r f i le o r y o u c a n us e e x i t ing j a v a c o de vi a ja r s b y p u t ti ng th e m in to y o ur c la s s p a t h . 1 0 .2 . Ex e cut a b l e j a r A n e x e c u ta b le J AR m e a ns t h e e n d - us e r do e s n ' t h a ve t o p u ll t h e c l a s s f i le s o u t b e f o r e r un ning t h e p r o g r a m . Th is is d o ne v ia a m a ni f e s t. t x t f i le w h i c h te l ls t h e J V M wh i c h c l a s s h a s t h e m a in ( ) m e th o d. Th e c o n te nt o f th e m a ni f e s t . tx t f i le : M a n i f es t - V er s i o n : 1. 0 Ma i n - C l as s : My A p p C l as s Path: . l i b /j c o m m o n - 1 . 0 .6 . j ar l i b / i t ex t - 1 .4 . 6 . j a r " E m pt y L i n e" An e m p ty l i ne is r e q ui r e d o t h e r w is e the jar wo n' t be

e x e c u ta b le . S p a c e a f te r a ne w line is a ls o r e q u ir e d T o c r e a te o ne e x e c u ta b le J A R f i le r un o n t h e c o m m a nd li n e j a r - cv m f ma i n f e s t. t x t a p p 1 . j ar * . c l a s s 11. Cheat Sheets

28

T h e f o l lo w ing c a n b e us e d a s a r e f e r e n c e f o r c e r t a i n ta s k w h ic h y o u h a ve t o d o . 1 1 . 1. W or k in g w it h c la s s e s W h i le p r o g r a m m ing J a va y o u h a ve to c r e a te s e ve r a l c la s s e s , m e th o d s , ins ta n c e v a r ia b le s . T h e f o l lo wi ng us e s th e p a c k a g e t e s t. T a b le 4 . What to do Create a ne w " M yN e wC l a s s " . How to do it class called p a c k a g e te s t;

public M y N e w C la s s {

class

Create a new attribute (instance v a r i a b l e ) " v a r 1 " i n M yNe wC l a s s wi t h t yp e S t r i n g p a c k a g e te s t;

public M y N e w C la s s { private var1; }

class S tr i n g

29

Create a Constructor for " M yN e wC l a s s w h i c h h a s a S t r i n g p a r a me t e r a n d a s s i g n s t h e v a l u e o f i t p a c k a g e te s t; to the "var1" instance variable. public M y N e w C la s s { private var1; class S tr i n g

public M y N e w C la s s ( St r i n g para1) { var1 para1; =

// this.var1= para1;
} }

or

C r e a t e a n e w me t h o d " d o S o me Th i n g " i n c l a s s wh i c h d o n o t r e t u r n a v a l u e and has no parameters p a c k a g e te s t;

public M y N e w C la s s { private var1;

class S tr i n g

30

public M y N e w C la s s ( St r i n g para1) { var1 para1; =

// this.var1= para1;
}

or

public d o S o m e Th i n g () {

void

} Create a new me t h o d " d o S o me Th i n g 2 " i n c l a s s wh i c h d o n o t r e t u r n a v a l u e a n d h a s t wo p a c k a g e te s t; p a r a me t e r s , a i n t a n d a P e r s o n public M y N e w C la s s { private var1; class S tr i n g

public M y N e w C la s s ( St r i n g para1) { var1 para1;


31

// this.var1= para1;
}

or

public d o S o m e Th i n g () {

void

public void d o S o m e Th i n g 2( i n t a, P e r s o n p e r s on ) {

} Create a new me t h o d " d o S o me Th i n g 2 " i n c l a s s wh i c h d o r e t u r n a n i n t v a l u e a n d h a s t h r e e p a c k a g e te s t; p a r a me t e r s , t wo S t r i n g s a n d a P e r s o n public M y N e w C la s s { private var1; class S tr i n g

public M y N e w C la s s ( St r i n g para1) {
32

var1 para1;

// this.var1= para1;
}

or

public d o S o m e Th i n g () {

void

public void d o S o m e Th i n g 2( i n t a, P e r s o n p e r s on ) {

public int d o S o m e Th i n g 3( S t r i n g a , S t r i ng b, P e r s o n person) {

// Any value will do for this example


}

return

5;

33

C r e a t e a c l a s s " M yO t h e r C l a s s " w i t h t wo i n s t a n c e v a r i a b l e s . On e wi l l s t o r e a S t r i n g , t h e o t h e r wi l l s t o r e a p a c k a g e te s t; Dog. Create getter and setter for these variables. public M y O t h e rC l a s s { class

S t r i n g m y v a lu e ; D o g d o g;

public S tr i n g g e t M y v al u e ( ) { return m y v a l u e; }

public void s e t M y v al u e ( St r i n g m y v a l u e) { t h i s . m y va l u e m y v a l u e; } =

public g e t D o g () {

Dog

r e t u r n d og ; }

public void s e t D o g (D o g do g ) {
34

this.dog dog; } }

1 1 . 2. W or k in g w it h lo ca l va r ia b l e A l o c a l v a r ia b le m us t a l wa y s b e de c l a r e d in a m e th o d. T a b le 5 . What to do How to do it D e c l a r e a ( l o c a l ) v a r i a b l e o f t yp e S t r i n g v a r i a b l e 1 ; string. D e c l a r e a ( l o c a l ) v a r i a b l e o f t yp e S t r i n g v a r i a b l e 2 = " Te s t " ; s t r i n g a n d a s s i g n " Te s t " t o i t . D e c l a r e a ( l o c a l ) v a r i a b l e o f t yp e P e r s o n p e r s o n ; Person D e c l a r e a ( l o c a l ) v a r i a b l e o f t yp e P e r s o n person = new P e r s o n , c r e a t e a n e w Ob je c t a n d P e r s o n ( ) ; a s s i g n t h e v a r i a b l e t o t h i s o b je c t . D e c l a r e a a r r a y o f t yp e S t r i n g S t r i n g a r r a y[ ] ; D e c l a r e a a r r a y o f t yp e P e r s o n a n d P e r s o n a r r a y[ ] = new c r e a t e a n a r r a y f o r t h i s v a r i a b l e wh i c h P e r s o n [ 5 ]; c a n h o l d 5 P e r s on s . Assign 5 to the int variable var1 var1 = 5; ( wh i c h w a s a l r e a d y d e c l a r e d ) ; A s s i g n t h e e x i s ti n g v a r i a b l e p e r s 2 t o p e r s 1 = p e r s 2 ; the exiting variable pers1; D e c l a r e a A r r a yL i s t v a r i a b l e w h i c h A r r a yLi s t < P e r s o n > c a n h o l d o b je c t s o f t yp e P e r s o n persons; C r e a t e a n e w Ar r a yL i s t wi t h o b j e c t s p e r s o n s = new o f t yp e P e r s o n a n d a s s i g n i t t o t h e A r r a yLi s t < P e r s o n > ( ) ;
35

existing variable persons D e c l a r e a A r r a yL i s t v a r i a b l e w h i c h A r r a yLi s t < P e r s o n > p e r s o n s c a n h o l d o b je c t s o f t yp e P e r s o n a n d = new c r e a t e a n e w Ob je c t f o r i t . A r r a yLi s t < P e r s o n > ( ) ;

36

The Java programming environment

Compared t o C++:

no header files, m acros, point ers and references, unions, operat or overloading, t em plates, et c.

Object -or ient at ion: Classes + Inherit ance Dist r ibut ed: RMI, Servlet , Distribut ed object programming. Robust : St rong t yping + no point er + garbage collect ion Secur e: Type-saf et y + access cont rol Ar chit ect ur e neut r al: archit ect ure neut ral represent at ion Por t able Int er pr et ed

High per f or m ance t hr ough Just in t im e com pilation + runt ime m odification of code

Mult i-t hr eaded

Java Feat ures

Well def ined primit ive dat a t ypes: int , f loat , double, char, et c.

int 4 byt es [2,147,648, 2,147,483,647]

Cont rol st at ement s similar t o C++: if -t hen-else, swit ch, while, f or

Int erf aces


Except ions

Concurrency
Packages Name spaces

Ref lection
Applet model

37

You might also like