566
Программирование на Java Методическое руководство для преподавателей 27 апреля 2003 года Авторы документа: Николай Вязовик (Центр Sun технологий МФТИ) <[email protected] > Евгений Жилин (Центр Sun технологий МФТИ) < [email protected] > Copyright © 2003 года Центр Sun технологий МФТИ, ЦОС и ВТ МФТИ ® , Все права защищены. Rendered by www.RenderX.com

Java Russian)

Embed Size (px)

Citation preview

Java 27 2003 : ( Sun ) ( Sun ) < [email protected]>Copyright 2003 Sun , , .

Rendered by www.RenderX.com

ii

, Java , Sun Microsystems () . Java . Sun Microsystems , Java , . Java , Sun . Java Sun Microsystems .

Java

Rendered by www.RenderX.com

iii

1. Java? .................................................................. 11. Java? .............................................................................................................. 1 2. Java ................................................................................................. 2 2.1. Sun Microsystems .................................................................. 2 2.2. Green .........................................................................................................4 2.3. FirstPerson.............................................................................................6 2.4. World Wide Web..................................................................................................... 7 2.5. Oak ................................................................................................. 9 2.6. Java .............................................................................................10 3. Java .................................................................................................11 3.1. ............................................................................................................. 11 3.2. ......................................................................................... 14 3.3. Java ................................................................................................. 17 4. .................................................................................................................. 26 5. ...................................................................................................26

Java

Rendered by www.RenderX.com

iv

Java

Rendered by www.RenderX.com

. 1 30

1. Java? . .1. Java? ..............................................................................................................1 2. Java .................................................................................................22.1. Sun Microsystems ........................................................................ 2 2.2. Green .............................................................................................................. 4 2.3. FirstPerson.................................................................................................. 6 2.4. World Wide Web........................................................................................................... 7 2.5. Oak ....................................................................................................... 9 2.6. Java .................................................................................................. 10

3. Java ................................................................................................ 113.1. ................................................................................................................... 11 3.2. ...............................................................................................14 3.3. Java ....................................................................................................... 17

4. ................................................................................................................. 26 5. .................................................................................................. 26

1. Java? Java ? , ? Java - , , - (-). Java - ( , ..). , ++ garbage collector' - "" ( , ). , Java , - , , HTML-. , , , - , Java

Rendered by www.RenderX.com

. 2 30

Java

- Java . , , , , . . -, Java - " ". -, JavaOne, 1996 , 10.000 ( 5.000). Sun, Java , Java Developer Connection 1996 , 100.000 , 2000 - 1.5 . Java 3 . 5 , 1.0 1995 1.4 2002 . 1.5 2003 . - Java http://java.sun.com/. Java - JDK 1.1 ( Java) 220.000 . 1.4 2 5 . Java , . " " IBM, Macintosh Apple, Oracle, Sun - Microsoft - Java 1996 . , Java, , , , , .

2. Java Java, , Oak (), 1990 Sun. , .

2.1. Sun Microsystems, 1990 , WWW (World Wide Web - " ") . . , Sun Microsystems, , "" - Sun " , "" " [3]. Java

Rendered by www.RenderX.com

Sun Microsystems

. 3 30

(Scott McNealy), , CEO ( ) Sun, , 25- (Patrick Naughton), 3 , NeXT. , - " ". , . , , , Sun . , , , . , . NeWS, , NeXTstep. : -, Sun ; , ( , , ); , Window Systems Group ( , ). , , , NeXT - . . , . , , , , , . (Bill Joy) (James Gosling). - - Sun, UNIX . Sun 1984 ( IBM) , EMACS C. . , - , . , 4.30 , . : , ; - ; , , - . , (John Gage), Sun, . , : Sun, ; , Sun; Sun; . Java

Rendered by www.RenderX.com

. 4 30

Java

2.2. Green5 1990 , , NeXT, Sun . . - " - ". 1 1991 , (Mike Sheridan) , Green. - , ( ), . , , . Sun 1991 , , , , , , ! , - , . , , , . , , -. 1991 Sun . , Nintendo, , , , , . , , , 42 . , , , , - 50- . , . , , , , . , , , , , , , , , . ++, , . , . ++ - , . , . 1991 , Java

Rendered by www.RenderX.com

Green

. 5 30

14 , C++. , , , . - Oak (). , Java. , , , . , . , , , , , ( !) . , " ". - , , . , . Sun. - *7, Star7 ( , , ). (Duke), . Java, , , , . , , , . , . 1991 . Sun . , . , , - "1st Person" ( " "). , 4 1992 Star7 . 5" (16 ) . , . - ! , "" , , - . , "" , . ! , (PDA), Newton, , . 286i 386i Intel (486i , ) MS DOS, . Sun , , HP, IBM Microsoft. Java

Rendered by www.RenderX.com

. 6 30

Java

. - Oak , . , , , . Oak, , , , , . , , , , . , , , Oak , , , , , .

2.3. FirstPerson -, Mitsubishi Electric, France Telecom, Dolby Labs, , . - "Beyond the Green Door" (" "), Sun Oak . 1 1992 FirstPerson, (Wayne Rosing), Sun Labs. , 14 60 . , (, , ) $50. , . , , . , 1993 Time Warner , FirstPerson . - (James Clark), Silicon Graphics Inc., , Oak. , Time Warner SGI , Netscape, Java. 3DO. 10 , Oak , , 3DO , . , 1994 , . , . FirstPerson , , . Sun -, .

Java

Rendered by www.RenderX.com

World Wide Web

. 7 30

2.4. World Wide Web . 1993 (Marc Andreessen) (Eric Bina), (National Center for Supercomputing Applications, NCSA) , ("") Mosaic 1.0 WWW. Internet 20 , (FTP, telnet .) , . Mosaic (HyperText Markup Language, HTML), 1991 (CERN) . , - , , , . , , HTML - (World Wide Web, WWW). - . , . WWW , . , , , - , , . , Sun . Sun Mosaic ! , 50% Sun. - FirstPerson , . , , . Oak, , CD-ROM , , . , , Oak . Mosaic . Sun ( - Sun). - FirstPerson Sun Interactive, Java

Rendered by www.RenderX.com

. 8 30

Java

- Oak. , , Java. FirstPerson , , , Oak, WWW. , UNIX , , . WWW, Netscape , . Sun, Oak (, "Liveoak"). - Oak . , "" , Oak . , . . , Cobol. Fortran IBM, . Basic - Microsoft - - . ++ , Mac OS Windows. Oak , . , 1994 WWW (, ), - , . - , HTML-, . - CGI (Common Gateway Interface). . (, , ), , , . GIF- . , , . , - , (enterprise) , . - , , , , . ( " ", , Java

Rendered by www.RenderX.com

Oak

. 9 30

, , ). , , . , , . . - . -, - , . -, . , . , - . , , , , CD-ROM'. , . Oak, , , , WWW . , , Green.

2.5. Oak Oak - , . "" , . WebRunner. , . , 1994 WebRunner Sun. , Oak , (applets), . , - . WebRunner, , , Mosaic. . , ! , , , , . . . , . , , . Java Development Kit . , Java

Rendered by www.RenderX.com

. 10 30

Java

, , Oak WebRunner , , . , 1995 , , , . Oak Java, WebRunner HotJava. , . , Java - ( ), . , HotJava ( Java). ( Java Beans , Java JAR ..) , " ". , , , ( , , , - Neon, Lyric, Pepper Silk). Java, HotJava . , - -. , , , . 1994 Sun. 1995 , , -, , - Oak WebRunner . , , - . . , 10.000, " ". 10.000 , . , , - . , , . , . , , 2-3 . Sun , Java . 23 1995 Sun Jose Mercury News , http://java.sun.com/, Java.

2.6. Java , . Java, , SunWorld. ,

Java

Rendered by www.RenderX.com

. 11 30

, - UNIX-. , . 4 , , Sun . - Netscape, 1994 ( Oak , Time Warner) ( NCSA Mosaic). , 1994 Netscape Navigator, , 75% . 23 1995 Java HotJava Sun [14], , Netscape Navigator 2.0 [15]. , , Java WWW, HTML. . Java .

3. Java, Java , , Sun .

3.1. , . , . , . , . Java - , - - , ( GIF, - Macromedia Flash); ; , , , . Java - , HTML. , . Java Development Kit ( Java) , . , . , , , . , , , . " " HTML . , Java

Rendered by www.RenderX.com

. 12 30

Java

, . , , , . , , , , . , , - - . - "" . , , , , . Java, , HotJava, . Netscape Navigator, 2.0, Java. , , - Microsoft Internet Explorer. Microsoft, , ( ) Sun, IBM, Netscape . Microsoft Windows (MS Office), , Internet. 1995 "" Netscape WWW, . Netscape Sun, Microsoft . Internet Explorer 2.0 , , - Netscape Navigator. , IE 3.0 , NN 2.0. 7 1995 Microsoft Java, 1996 . , , . . , Microsoft . Netscape Navigator 3.x , Netscape 4.x Internet Explorer 4.x. NN 5.x , NN 6.x "". 7.0, , Internet Explorer 5.0, 5.5 6.0 95% . , Microsoft , Netscape . . , Microsoft , W3C, HTML 3. Netscape , HTML, - . Microsoft, , , , Netscape Navigator, Java

Rendered by www.RenderX.com

. 13 30

. , , W3C , Navigator . , NN ( ) , IE Windows, ( , , ). Netscape ? (, ) NCSA Mosaic. HTML , , Navigator', . Mosaic, Netscape. Netscape Navigator . , , Microsoft, , , " ", HTML , . HotJava, , . Sun - HTML. , HotJava . 3.0. , , - Java Script, Java, , . , . 4 1995 Netscape Sun " " (scripting language) Java Script. - , . Java Script HTML ( .js). , . , Java Script HTML, - Java. Java -, . Java Script Java: . Java Script Visual Basic - , . -. Java Script . , , . , , HTML - . . . , Java Script -. Java

Rendered by www.RenderX.com

. 14 30

Java

Java Script Java . , . Java Script - ( ), , . . Sun Netscape . Netscape Navigator 2.0 . , Java Script , Java, , " Java". , Netscape. , Java Java Script - , - . Java - (), , Java - . Java Script, , HTML. , , , 3D ( , ), . , Java Script, , , . , - , .

3.2. , , Java. Java NeWS ( , , X Window), Sun , , . 9 1996 JavaSoft, Java- . - , . , 1 1997 , NASA (National Aeronautics and Space Administration, , ) Java- , ("Java !"). , Java - "", Java ? , , -, (""), (Intel x86, Sun SPARC, PowerPC .), , -, (MS Windows, Sun Solaris, Linux, Mac OS .). Java

Rendered by www.RenderX.com

. 15 30

, , (GUI) . , , (API, Application Programming Interface), , . , . . , - (, Mac OS , Windows ). . ( ), , , , , . , , , . , , . , . Java , , Oak , . "" ? , - . Java , , Java Virtual Machine. JVM - , , , - Java-. Sun JVM . Java, , . JVM , , Sun , , . 29 1996 Java OS ( ). - - ", , Java". , Java- - , (PDA), , , . , Java OS . Java - , . Java

Rendered by www.RenderX.com

. 16 30

Java

, Java - . - , , Java . Java- " 100%". , Sun - . Sun, " - ". , , - . , , , WWW , . , - . , , , . , - , . , , , , - ! , , - Microsoft. ( ) Windows Intel ( - Wintel). , - , , Wintel. Microsoft (, Netscape Navigator MS Internet Explorer), . , Wintel . , , , . , Microsoft Java, , , , Internet Explorer . . 30 1997 IE 4.0, 7 Sun , . 18 Sun , " Java" ("Java compatible") MS IE 4.0. , Microsoft "" Java, . , , . , Sun . Java , Java

Rendered by www.RenderX.com

Java

. 17 30

"Write once, run everywhere" (" , "). , " ". Sun . 24 1998 (, , 23 2001 , Sun 20 ), 12 Sun Microsoft Java Windows 98 . . , Microsoft Internet Explorer' java.rmi, , DCOM - , Win32. (patch), . Microsoft Java 1.1, . , ( ), . Sun Java Plugin, MS IE NN, Java , ( Java Activator 10 1997 ). Microsoft , Java Windows XP, , . Java OS, , . , JVM , . Java, , .

3.3. Java, Java , , , . , , - -. , JVM, , Java-. JVM , - . Java, - Java ? , .

Java

Rendered by www.RenderX.com

. 18 30

Java

Java , .java. Java-, Java -. JVM Java. .class. Java-, , , , , . Sun "Write once, run everywhere", . , . Java , . , , . Sun , ( Java) . . JVM 600 , , ( MS IE 4.0). , , , . - , , . Java 2 Micro Edition (J2ME), . Java, -. , , Java - (threads) (steams), , , , .. , Java - , . Java , . -, . , . - "". . , Java . , , . , . (exceptions - Java ) (runtime) , , , . , , ( , ). Java

Rendered by www.RenderX.com

Java

. 19 30

Java 8 , . . 5 : byte, short, int, long, char. 2 float double, boolean. ( primitive), , . - (. reference). Java - . C/C++, , Java, , . - "Java - C++ , garbage collector". (garbage collector) , Java , C++, - . , , Java . -, C++ . -, - , ? , , , Java . , . , , ++ , Sun, , Java , . . , , Smalltalk IBM 60- Simula, Java . Java - - . , , C/C++. . Java ( garbage collector). , , , , . , . /++ . , - , - ( , ), , , , . Java . , , garbage collector. , , . - , Java

Rendered by www.RenderX.com

. 20 30

Java

, . garbage collector, . , , . , , . , , , ( ) .. , , , , /++, , . , . , ( , !), Java , , ( , ..). . , , . , . . , - 90- , . , , , , . garbage collector, . - , . Java ( , , , ). . , Java, C/C++, . , - , . Java - . , , . Java . . -, . , . JVM, , , . .

Java

Rendered by www.RenderX.com

Java

. 21 30

-, - . - , , class-. JVM , Java, - ( ). , . , , ( ). , . Java. , , . , , . , , , , , . , . Java , - -( ) . , Java - . , . . , . Java- : , -; , ; /++; ; -, ; , ; . , , . , , Java . . , Sun, " " (reference implementation). , Java 23 1995 . , -, : Java language specification, JLS, Java ( , , , ..);

Java

Rendered by www.RenderX.com

. 22 30

Java

JVM; Java Development Kit, JDK - , , . , . , , , (, ), . . JVM , Java-. JDK . , java-. javac (java compiler) . java. appletviewer. , javadoc. 8 : java.lang - , ( language); java.util - ; java.applet - ; java.awt, java.awt.peer - (GUI), Abstract Window Toolkit, AWT. . java.awt.image - ; java.io - (streams) ; java.net - . , java, . ( com, org .) . JDK 1.0 1996 . . . 1. , 1... , , JDK, . - JDK, , . 0 4 ( ). (212, 504, 1781, 2130

Java

Rendered by www.RenderX.com

Java

. 23 30

2738 - 1.0 1.4), . , JDK. , . , , , () . , JDK 1.0 - 1.0.2. 1. , , - . deprecated, 2.0 ( ), . JDK 1.0 . , , . -, , . . , JVM , , . , , , . AWT, . 1996 JDK 1.1, -. 1997 . Java? , . -, Assembler, C, . , 1996 Sun - JustIn-Time , JIT. - Java - "" . , , 50 ! 1997 Windows, JIT JDK . . JavaBeans - , 1996 , , . JDBC (Java DataBase Connectivity) . RMI (Remote Method Invocation) . . 3 JDK 1.1 220.000 , - 2- . 1.1 , 1.1.8. - , MS IE , . , 11 1997 Sun Java Runtime Environment, JRE ( Java). , Java-, . , , . , (GUI). 1996 Sun Netscape IFC (Internet Foundation Classes), Netscape Java . Java

Rendered by www.RenderX.com

. 24 30

Java

1997 , AWT Sun IFC Netscape Java Foundation Classes, JFC, : , Swing; Drag-and-Drop. 2D , ; Accessibility API ; . IBM . 1997 JFC. , , com.sun.java.swing Swing. 1998 . 500.000 . Java 1.2 , 1.1, Java 2 ( , , 1.., ). - 1997 , 8 1998 , . , : , (policy) (permission); JFC JDK, , , javax.swing Swing ( javax , Java); (collection framework) - ; Java Plug-in JDK; , ( ), "-2000". 1999 JVM . JDK 1.2. 15 1999 JavaOne Sun Java 2 : Java 2 Platform, Standard Edition (J2SE); Java 2 Platform, Enterprise Edition (J2EE); Java 2 Platform, Micro Edition (J2ME). , , , . , Java. Java

Rendered by www.RenderX.com

Java

. 25 30

J2SE . , Standard Edition - Java JDK ( j2sdk). J2EE , , . , Enterprise Edition - (, Enterprise Java Beans, EJB) ( , Application Server), . j2sdk. J2ME Standard Edition , , . . J2SE , J2EE 1999 . j2sdk 1.2 - 1.2.2. , Sun . 1999 (engine) Java HotSpot. , (garbage collector) . , Java-. - . . . HotSpot , 2000 JVM J2SE. , j2sdk 1.3 ( 1.3.1). , J2SE 1.4 2002 . - (web services). XML (Extensible Markup Language). - assert, , . , . j2sdk 1.4 . 2002 1.4.1, . Standard Edition , , 1.3: 1.4:

Java

Rendered by www.RenderX.com

. 26 30

4. , Sun 1990 . . Green. , , Oak. Sun FirstPerson, , , Java, . 1993 Mosaic 1.0 . Java- , HotJava. , 4- , Java . Netscape, . Java . Java Script, , , Java. Java. Sun: JDK JRE. Java, .

5. 1-1. Java. JVM? a.) : - - 8

Java, /++ (garbage collection) Java-

Java

Rendered by www.RenderX.com

. 27 30

, ( SSL .)

-

JVM Java Virtual Machine, Java, -, class-. -, , . 1-2. Java ? a.) . , . (garbage collector)? a.) Java. , , . Java C/C++? a.) . Java -, , . Java , ? a.) , , , , .Java , . - Sun Microsoft MS Internet Explorer 4.0? a.) Java -, . , . Microsoft Internet Explorer 4.0 , , Java. 1-7. , Java?

1-3.

1-4.

1-5.

1-6.

Java

Rendered by www.RenderX.com

. 28 30

a.) Java , java. .class-, -, . - (.jar .zip). 1-8. Java-, Sun ? a.) Java . , . Java , . Sun, JVM, JIT (Just-in-time), , . 1.3 HotSpot, . 1-9. ? a.) , Java, , , . HTML-. , , . 1-10. Java? a.) 23 1995 SunWorld. 1-11. Java? a.) Java http://java.sun.com 1-12. Java? Java2? Java? a.) . . , , , , . , , , . 0 4 ( 1.0 1.4). . Java 1.2 1.1, , Java

Rendered by www.RenderX.com

. 29 30

, Java2 ( ). . , , . Java 1.4.0. 1-13. deprecated? a.) Java , , , . deprecated, , . 1-14. Java Java2? a.) 1999 Java : J2SE Java2 Standard Edition, Java, JDK J2EE Java2 Enterprise Edition, , , J2ME Java2 Micro Edition, J2SE

1-15. Java ? Java Plugin? a.) Java 1.1, , .. , . Sun 1997 Java Plug-in, Java. Plug-in . 1-16. JDK JRE? ? ? a.) JDK Java Development Kit, Java, , . : java JVM javac Java appletviewer Java

Rendered by www.RenderX.com

. 30 30

jar JAR javadoc

JRE Java Runtime Environment, Java, Java-, .

Java

Rendered by www.RenderX.com

Java 2. - 27 2003 : ( Sun ) ( Sun ) < [email protected]>Copyright 2003 Sun , , .

- () . Java ( 8 ) , . , . -.

Rendered by www.RenderX.com

ii

2. - ............................. 11. - ...........................................1 1.1. - ................... 1 1.2. - ........................4 1.3. ................................................................................................................ 5 1.3.1. . ....................................................................................................6 1.3.2. .................................................................................................... 6 1.3.3. ............................................................................................... 7 1.4. ................................................................................................................... 7 1.4.1. ................................................................................................8 1.4.2. ............................................................................................... 9 1.5. .....................................................................12 1.5.1. ................................................................................................... 12 1.5.2. ................................................................................................ 13 1.5.3. ............................................................................................ 14 1.5.4. ................................................................................................ 15 1.6. ............................................................................................... 16 1.7. ..................................................................................................17 1.8. ........................................................................................................... 18 1.9. .......................................................................................... 19

Java

Rendered by www.RenderX.com

-

. 1 24

2. .1. - .......................................... 11.1. - ......................... 1 1.2. - ..............................4 1.3. ...................................................................................................................... 5 1.3.1. . ......................................................................................................... 6 1.3.2. ..........................................................................................................6 1.3.3. ..................................................................................................... 7 1.4. ......................................................................................................................... 7 1.4.1. ......................................................................................................8 1.4.2. ..................................................................................................... 9 1.5. .......................................................................... 12 1.5.1. ......................................................................................................... 12 1.5.2. ...................................................................................................... 13 1.5.3. .................................................................................................. 14 1.5.4. ...................................................................................................... 15 1.6. ..................................................................................................... 16 1.7. ........................................................................................................17 1.8. ................................................................................................................. 18 1.9. ................................................................................................19

1. - 1.1. - . , , , . , Java

Rendered by www.RenderX.com

. 2 24

-

. , , . FOCAL (FOrmula CALculator) FORTRAN (FORmula TRANslator). . , . . - . , , . . . . , . , , , . , . , Pascal :Procedure printGreeting(name: String) Begin Print("Hello, "); PrintLn(s); End;

- "Hello, Name", Name . , , . . , . , , , . , (), . -. 19.701-90. - (. 1.1).

Java

Rendered by www.RenderX.com

-

. 3 24

. , goto . , "bowl of spaghetti", , , , . , goto . . , . . , "-". 70- - 80 . . , . , , . , . "-" "-". , , , . Java

Rendered by www.RenderX.com

. 4 24

-

1.2. - , , , . , . , . " " , , , . . , . . , - . , , . 80- , . - (). , , , . - . . , , , .. , (. 1.2). - , .. , .

Java

Rendered by www.RenderX.com

. 5 24

, , . "", , , . . . () , . - , ; ; . .

- , . - , , . - - . .

1.3. , , . : (); . Java

Rendered by www.RenderX.com

. 6 24

-

: , "", , 7461, .. . - . : - , , .[1] , .

1.3.1. . . () , , , . , , , - , . - . . , ( ), , , . , , , , . , , : (, , ); ( ).

, , , ( ). (state) - : , , ; (, ) (, ) . [1]

1.3.2. , . , :

Java

Rendered by www.RenderX.com

. 7 24

, .. , , , - (). - "" "" "" . , , , . , . - "", "" "" . .. " ", " " " - " . . , , , , . , , . , , , . (behavior) - , ; . [1]

1.3.3. - , . , , () ( , ..) - - . . Identity () , , , . , , , , Identity . . , .. ( ) . , (identity) - ; , .[1]

1.4. ( ). , , , - : Java

Rendered by www.RenderX.com

. 8 24

-

. "" "" "", - . . , . , , : . , , , , .. . . (, ), . , , . (record), ; , ( ). - , . (, ) ,

UML (Unified Modeling Language, ) : , . , - , - , (). , : (constructor) - ; (destructor) - ;

, , .

1.4.1. (encapsulation) - (). - - . . ( ). , Java, . . Java

Rendered by www.RenderX.com

. 9 24

. , . , , . , . . -, , , . -, . , , , , . , , . , , , . , .

1.4.2. - . " ". , - , . , - Point, Line, Circle, Box, .. draw . , , , , draw . , , : , draw. : // , // Point 1000 Point[] p = new Point[1000]; Line[] l = new Line[1000]; Java

Rendered by www.RenderX.com

. 10 24

-

Circle[] c = new Circle[1000]; Box[] b = new Box[1000]; // , // for(int i = 0; i < p.length;i++){ // . // draw() , // . if(p[i]!=null) p.draw(); } for(int i = 0; i < l.length;i++){ if(l[i]!=null) l.draw(); } for(int i = 0; i < c.length;i++){ if(c[i]!=null) c.draw(); } for(int i = 0; i < b.length;i++){ if(b[i]!=null) b.draw(); }

. , , Text, Star .., , , . , . , . Point. , (1.3).

draw , .

Java

Rendered by www.RenderX.com

. 11 24

, , : Point p[] = new Point[1000]; p[0] = new Circle(); p[1] = new Point(); p[2] = new Box(); p[3] = new Line(); for(int i = 0; i < p.length;i++){ if(p[i]!=null) p.draw(); }

p[] , Point. - , . , p[0] Circle, draw p[0].draw()

, . : (polymorphism) - , (, ) ( ) . , , , [1]. , . , . , - (overloading). . Java PrintWriter, . println, / . :void println() // // (true false) void println(boolean x) void println(String x) // -

Java

Rendered by www.RenderX.com

. 12 24

-

. Java , . .

1.5. , , - , , . . , , . , . ( , ): (Aggregation) (Association) (Inheritance) (Metaclass)

1.5.1. "" " " . , , , . (aggregation) , . . "contain" . Aquarium Fish. "", . . "home" Aquarium ( ), "inhabitants" Fish ( ). . , . .. Aquarium () inhabitants, Fish home. , , . "0..n" " ". : "1..n" - ; "0" - ; "1" - ; "n" - ;

Java

Rendered by www.RenderX.com

. 13 24

"0..1" - .

, , , , :// Fish public class Fish { // home ( Aquarium) private Aquarium home; public Fish() { } } // Aquarium public class Aquarium { // inhabitants ( Fish) private Fish inhabitants[]; public Aquarium() { } }

1.5.2. , , "" , (association). , , , - , . . , . , - , . --. Programmer Computer "0..n", .. ( ). ( ). , , , , :public class Programmer { private Computer computers[]; public Programmer() { } Java

Rendered by www.RenderX.com

. 14 24

-

} public class Computer { private Programmer programmers[]; public Computer() { } }

1.5.3. (inheritance) - , ( ) ( ) . "/", . . , " " " ". , . , 4 , , .. , , 5- 12-. , "", " " " " . . (- ), - (- ) , , . . . . "", "". .. , , . , - . - . - .

Java

Rendered by www.RenderX.com

. 15 24

Java .

1.5.4. , , . , , , , , , . , , , . , , , , , . , , (, , , ..). , . , , . , , . , , . , - , , , (, ). , (, , ) ( ). . , , (, ) " " . , , - . , , . , , Python. , : set_XXX get_XXX, XXX, . , "-". Java . , - Class ( ) java.lang. . .class-, , JVM Class, . , Java . Class (static) . , , . .

Java

Rendered by www.RenderX.com

. 16 24

-

1.6. , . . , , . , . . , , . , , , . . , .

. , . , , - . . . . , , . . . , , , . . , . (framework). , (framework), , . - , . , .

Java

Rendered by www.RenderX.com

. 17 24

, . , , . , , , . , , .

1.7. - , . , , , , . , . , , , . , , , . . , . . , . , , , , , . , , , . . , , , "" . . , . , , , . , . ? , , . 1. . Smalltalk . , . Smalltalk- C-. Java

Rendered by www.RenderX.com

. 18 24

-

Oberon-2, Object Pascal C++ . 10% , . , . , : . , . . , , (.. , ), . 2. . . , . . , - . 3. . , . , . , . , . - , , . - . . , . , , - . , , .

1.8. - , , . . , . , , , . UML.

Java

Rendered by www.RenderX.com

. 19 24

1.9. 2-1. - ?

a.) , , . 80- , . (). 2-2. ? . a.) , , . : (); .

: , "", , 7461, .. 2-3. , : 1. ; 2. ; 3. ; 4. 113-043-429-18. a.) , 113-043-429-18 - . , . , 113-043-429-18 , .

Java

Rendered by www.RenderX.com

. 20 24

-

2-4.

:

a.) . , . . 2-5. . a.) : 1. ; 2. ; 3. ; 4. , . 2-6. ? : 1. ; 2. ; 3. . a.) : - . 2-7. ? a.) , ( ), , , . 2-8. - : ? .

Java

Rendered by www.RenderX.com

. 21 24

a.) : . . , , , . 2-9. : , , . ? . a.) :

2-10. : 1. Java2: 2. 342 Java2: 3. 4. () . a.)

2-11. , . , , .. ( , ), ( ). , , 2 : 1. ( , ) 2. ( , ) Java

Rendered by www.RenderX.com

. 22 24

-

. a.) : 1.

2.

2-12. . , . a.) :

2-13. , , . , , , . a.) : , . , . . Java

Rendered by www.RenderX.com

. 23 24

2-14. , : ; ; - ; ; , . a.) : : ; ;

: ; - ; , .

Java

Rendered by www.RenderX.com

Java ()

Java

Rendered by www.RenderX.com

Java 3. 20 2003 : ( Sun ) ( ) ( Sun ) < [email protected]>Copyright 2003 Sun , , .

Java. , , , () . ( tokens ) - "", Java. , , . .

Rendered by www.RenderX.com

ii

3. ....................................................................................................11. ................................................................................................................ 1 1.1. ..............................................................................................................2 1.2. ............................................................................................... 2 1.2.1. ....................................................................................................... 3 1.2.2. .................................................................................................4 1.2.3. ........................................................................................................8 1.3. ......................................................................................................... 9 1.3.1. ......................................................................................... 9 1.3.2. .......................................................................................... 9 1.3.3. ....................................................................................................10 1.3.3.1. ............................................................... 10 1.3.3.2. ............................................................................ 11 1.3.3.3. ....................................................................... 13 1.3.3.4. .....................................................................13 1.3.3.5. ........................................................................ 14 1.3.3.6. Null .......................................................................................15 1.3.3.7. ......................................................................................15 1.3.3.8. .........................................................................................15 1.3.3.9. ....................................................................................... 15 1.4. : ................................................................. 16 1.4.1. ................................................... 16 1.4.2. .......................................................................17 1.4.3. .............................................................................. 18 1.4.4. ..................................................................................... 19 1.5. ........................................................................................................... 22 1.6. .......................................................................................... 22

Java

Rendered by www.RenderX.com

. 1 26

3. .1. ................................................................................................................11.1. ....................................................................................................................2 1.2. ..................................................................................................... 2 1.2.1. ............................................................................................................. 3 1.2.2. .......................................................................................................4 1.2.3. ..............................................................................................................8 1.3. ............................................................................................................... 9 1.3.1. ............................................................................................... 9 1.3.2. ................................................................................................ 9 1.3.3. ..........................................................................................................10 1.3.3.1. ..................................................................... 10 1.3.3.2. .................................................................................. 11 1.3.3.3. ............................................................................. 13 1.3.3.4. ...........................................................................13 1.3.3.5. ..............................................................................14 1.3.3.6. Null ............................................................................................ 15 1.3.3.7. ............................................................................................15 1.3.3.8. ...............................................................................................15 1.3.3.9. ............................................................................................. 15 1.4. : .......................................................................16 1.4.1. ......................................................... 16 1.4.2. .............................................................................17 1.4.3. .................................................................................... 18 1.4.4. ........................................................................................... 19 1.5. ................................................................................................................. 22 1.6. ................................................................................................22

1. , , , () . ( tokens ) - "", Java. , , . . Java

Rendered by www.RenderX.com

. 2 26

1.1. Java, , , , ASCII (American Standard Code for Information Interchange, ), , (, , .) . Unicode. , Unicode 2 , , , 65.535 . . 128 ASCII. , , , Unicode, 65 . Unicode, ASCII. , 6917, (1B05) :\u1B05

u , A, B, C, D, E, F , , . Unicode \u0000 \uFFFF. \u0410 ( \u0401) \u044F ( \u0451). JDK SymbolTest, Unicode. . native2ascii, JDK. - Unicode, ASCII, ( -reverse) - Unicode . Java 1.1 Unicode 1.1.5, 1.4 3.0. , Java . JDK Unicode, , Character. - , - http://www.unicode.org/. , ASCII, Unicode . , Unicode , , , : , , . ASCII .

1.2. , , (white spaces); (comments);

Java

Rendered by www.RenderX.com

. 3 26

(tokens).

1.2.1. , . (space, \u0020, 32), . , , . , ( ):double a = 1, b = 1, c = 6; double D = b * b - 4 * a * c; if (D >= 0) { double x1 = (-b + Math.sqrt (D)) / (2 * a); double x2 = (-b - Math.sqrt (D)) / (2 * a); }

:double a=1,b=1,c=6;double D=b*b-4*a*c;if(D>=0){double x1=(-b+Math.sqrt(D))/(2*a);double x2=(-b-Math.sqrt(D))/(2*a);}

. , - . ASCII - " " (carriage return, CR, \u000d, 13) (linefeed, LF, \u000a, 10). , Java . ASCII- LF, ; ASCII- CR, " "; CR, LF.

( , ), (. ""), ( , ). , Java : ASCII- SP, space, , \u0020, 32; ASCII- HT, horizontal tab, , \u0009, 9; ASCII- FF, form feed, ( ), \u000c, 12; .

Java

Rendered by www.RenderX.com

. 4 26

1.2.2. . Java 2 :

ASCII- // . , , : int y=1970; // ASCII- /* */, , :/* - */ for (int i=1; i 0) { ... }

, :float s = 2*Math.PI/*getRadius()*/; //

. Math.PI PI, Math. getRadius() , s 2 PI. . , ( ). :// /**/ s String s = "text/*just text*/"; /* * ,

Java

Rendered by www.RenderX.com

. 5 26

* getRadius() */ circle.get/*comment*/Radius();

:// : cirle./*comment*/getRadius(); // : int/*comment*/x=1;

int x , , . . /*, */, // , , . , /* /* // /** : */

. ( )1. /* 2. comment 3. /* 4. more comments 5. */ 6. finish 7. */

. 1 /*. /* 3 , . */ 5 , 7 - , . , , , . - , , - . , int x = 2; int y = 0; /* if (x > 0) y = y + x*2; else y = -y - x*4; */

Java

Rendered by www.RenderX.com

. 6 26

y = y*y;// + 2*x;

if-else +2*x. , Unicode, , . , - . . JDK, 1.0, javadoc. , HTML , , . , (, , , ). , . . , . - /**. :/** * . * * x. */ int getAbs(int x) { if (x>=0) return x; else return -x; }

. ( , ). HTML-, HTML. , . , , javadoc . * . , , , , ./** * - . * * : * JavaRendered by www.RenderX.com . 7 26* * if (condition==true) { * x = getWidht(); * y = x.getHeight(); * } * * HTML-: * * , * . * */ public void calculate (int x, int y) { ... } HTML-, : - . : if (condition==true) { x = getWidht(); y = x.getHeight(); } HTML-: , ., javadoc . @. . , @see, , , -./** * . * * . * * @see java.lang.String * @see java.lang.Math#PI * @see Official Java site */ String (java.lang - , ), - PI Math ( # ), Java. , , , . /** */ , JavaRendered by www.RenderX.com. 8 26 , , javadoc. , ( , , Java). package.html, , . HTML-, , , . Java , , . javadoc. , . , Java javadoc .1.2.3. , ( , .. , ) , . , . , , , - , . , :// . int x = 3 ; // int x = 3 ; // int x = 3 ; /* * * int x * . */ int/**/x=3;, , . . JavaRendered by www.RenderX.com . 9 261.3. Java: (identifiers); (key words); (literals); (separators); (operators). .1.3.1. - , . , , , , , ( ). Unicode, , . . . . Java-, , ASCII- A-Z (\u0041-\u005a), a-z (\u0061-\u007a), _ (ASCII underscore, \u005f) $ (\u0024). ( ), - , . Java- ASCII- 0-9 (\u0030-\u0039). ( , true false null- null). , 2 , (, A), . :Character, a, b, c, D, x1, x2, Math, sqrt, x, y, i, s, PI, getRadius, circle, getAbs, calculate, condition, getWidth, getHeight, java, lang, String , COLOR_RED, _, aVeryLongNameOfTheMethod1.3.2. abstract default if private this boolean do implements protected throw break double import public throws byte else instanceof return transient case extends int short try catch final interface static void char finally long strictfp volatile class float native super while JavaRendered by www.RenderX.com. 10 26 const continuefor gotonew packageswitch synchronized goto const , . , . , true, false null- null ( , ), . .1.3.3. , , null-. Java : (integer); (floating-point); (boolean); (character); (string); null- (null-literal). . 1.3.3.1. , . , . , , , 8 9 . 0x 0X ( 0 ASCII- X ). , :0 00 0x0 , 10-15 A, B, C, D, E, F, . :0xaBcDeF, 0xCafe, 0xDEC , int long 4 8 ( 32 64 ). , .. int -231 231-1, -2.147.483.648 2.147.483.647. int, , 0 2147483648, . 2147483648 -: JavaRendered by www.RenderX.com . 11 26int x = -2147483648; \\ int y = 5-2147483648; \\ , 00 017777777777 (=231-1), - -020000000000 (= -231). - 0x0 0x7fffffff (= 231-1), 0x80000000 (= -231). long 64 , , -263 263-1. , L l, long. :9223372036854775807L 0777777777777777777777L 0x7fffffffffffffffL // : -9223372036854775808L -01000000000000000000000L -0x8000000000000000L long:0L, 123l, 0xC0B0L1.3.3.2. . , . :3.14 2. .5 7e10 3.1E-20 , : ; ( ASCII- ); ; ( ASCII- E + -); - . , ( L l long) 2 JavaRendered by www.RenderX.com. 12 26 - ASCII- D ( double) F ( float) . . : ; . . , "" , , :1. .1 1e1 1f Java , ,- float double. - 4 8 32 64 . float, F . double D d, double ( ).// float-: 1f, 3.14F, 0f, 1e+5F // double-: 0., 3.14d, 1e-4, 31.34E45D Java 32- float 64- double , IEEE 754 ( - IEEE Standard for Binary Floating-Point Arithmetic, ANSI/IEEE Standard 754-1985 (IEEE, New York)). , , : (positive/negative infinity); " ", Not-a-Number, NaN; . . (, 0.0/0.0 NaN), Float Double, POSITIVE_INFINITY, NEGATIVE_INFINITY NaN. . , . : float: 3.40282347e+38f double: 1.79769313486231570e+308 JavaRendered by www.RenderX.com . 13 26 , : float:1.40239846e-45f double: 4.94065645841246544e-324 (, 1e40F) . . , (, 1e350) . . , :// , 0 0.0000000000000000000000000000000000000000000001f // , 1 1.0000000000000000000000000000000000000000000001f Java , Float Double , . 1.3.3.3. truefalse 1.3.3.4. 'a' // ' ' // 'K' // (. ""). :'\u0041' // A '\u0410' // '\u0391' // A , , \. ( , ", ', \) :\b \t \n \f \r \" \' \\ \u0008 \u0009 \u000a \u000c \u000d \u0022 \u0027 \u005c backspace BS - horizontal tab HT - linefeed LF - form feed FF - carriage return CR - double quote " - single quote ' - backslash \ - JavaRendered by www.RenderX.com. 14 26 \ \u0000 to \u00ff . , Java-. Unicode-. . \ . . ,'\101' // '\u0041' \u0000 \u00ff (.. 0 255), Unicode- . Unicode- (\uhhhh) , :'\u000a' // \u000a , , . :'\n' // \u000d ( ) \r. , . 1.3.3.5. . . , \ (. " ")."" // "\"" //, " " " // 13 . , , \n / \r. , , +. :// -, 2 " " + " " JavaRendered by www.RenderX.com . 15 26/* * , : * Hello, world! * Hello! */ "Hello, world!\r\nHello!" , , \u000a \u000d. String. , . 1.3.3.6. Null Null : null. , , . , . . 1.3.3.7. ( ) [ ] { } ; . ,1.3.3.8. - , , , , . 37 ( ASCII) Java:= > < ! ~ ? : == = != && || + - * / & | ^ % += -= *= /= &= |= ++ > %=>>> =>>>= , Java , . 1.3.3.9. , Java-. , Unicode : ; ; . (, , , null-, ) ASCII-. Unicode- JavaRendered by www.RenderX.com. 16 26 ASCII- ( - \uhhhh, hhhh - ). ( Hello, world!), :public class Demo { /** * , * Java . */ public static void main (String args[]) { System.out.println("Hello, world!"); } }, , 7 , 5 , 1 , 13 . Demo.java, ( JDK ). , :Hello, world!1.4. : Java. , . , (, 1/2 0, 1/2. - 0.5).1.4.1. -, , = ==.x = 1; // x 1 x == 1 // x . true false. , :// if (x=0) { // == ... } Java . x=0 ( ), ( x==0). JavaRendered by www.RenderX.com: . 17 26 " " !=. :if (x!=0) { float f = 1./x; } - = (. "") , , :x = x + 1; x += 1;1.4.2. 4 +, -, *, /, %, , . . a b, (a/b)*b+(a%b) a. , , / . :9/5 1 9/(-5) -1 (-9)/5 -1 (-9)/(-5) 1 , . , .9%5 4 9%(-5) 4 (-9)%5 -4 (-9)%(-5) -4 0 . . , %. 9 5 , ( , ).9.0%5.0 4.0 9.0%(-5.0) 4.0 (-9.0)%5.0 -4.0 (-9.0)%(-5.0) -4.0 JavaRendered by www.RenderX.com. 18 26 IEEE 754 . Math.IEEEremainder(double f1, double f2). , f1-f2*n, n - , f1/f2, 2 , . :Math.IEEEremainder(9.0, 5.0) -1.0 Math.IEEEremainder(9.0, -5.0) -1.0 Math.IEEEremainder(-9.0, 5.0) 1.0 Math.IEEEremainder(-9.0, -5.0) 1.0 ++ --, , , .int x=1; int y=++x; ++ x, , , x y. x y 2.int x=1; int y=x++; x y, . x 2, y 1.1.4.3. "" "" ( & |) . , , , , . , - , , . (&, |) , - ( &&, || ) , . :int x=1; (x>0) | calculate(x) // calculate (x>0) || calculate(x) // - "" !, . .int x=1; x>0 // !(x>0) // JavaRendered by www.RenderX.com: . 19 26 ? : - . ( ), , - . , x:x>0 ? x : -x1.4.4. , . , :0 0 1 1 2 10 3 11 4 100 5 101 . ? -, . , 0 , 1 - . , . , 8- :-1 10000001 // ! -2 10000010 // ! -3 10000011 // ! ! , - 00000000 100000000, . . -1, 0 1:00000000 -00000001 --------11111111, -1 11111111. ( 1):0 -1 -2 -3 00000000 11111111 11111110 11111101 10000000, . 8- 01111111 (=127), 10000000 (=-128). 8 JavaRendered by www.RenderX.com. 20 26 28=256 , , , , . , "", "", " " 2 , . , , , , () . , 5&6 :00000101 // 5 &00000110 // 6 --------00000100 // "" , 5&6 4. "" "NOT", ~ ( !). . , ~(-1)= 0. : n - , -n ~(n-1). , . Java . . 02 = >>> 03 = >>> 04 = >>> 05 == = = = = =20 10 5 2 1 0>>> 00000000000000000000000000010100 00000000000000000000000000001010 00000000000000000000000000000101 00000000000000000000000000000010 00000000000000000000000000000001 00000000000000000000000000000000= = = = = =20 10 5 2 1 0 , >> >>> . .// -21 JavaRendered by www.RenderX.com. 22 26 // -21 >> 00 = -21 >> 01 = -21 >> 02 = -21 >> 03 = -21 >> 04 = -21 >> 05 =>> 11111111111111111111111111101011 11111111111111111111111111110101 11111111111111111111111111111010 11111111111111111111111111111101 11111111111111111111111111111110 11111111111111111111111111111111= = = = = =-21 -11 -6 -3 -2 -1// >>> -21 >>> 00 = 11111111111111111111111111101011 -21 >>> 01 = 01111111111111111111111111110101 -21 >>> 02 = 00111111111111111111111111111010 -21 >>> 03 = 00011111111111111111111111111101 -21 >>> 04 = 00001111111111111111111111111110 -21 >>> 05 = 00000111111111111111111111111111 ... -21 >>> 24 = 00000000000000000000000011111111 -21 >>> 25 = 00000000000000000000000001111111 -21 >>> 26 = 00000000000000000000000000111111 -21 >>> 27 = 00000000000000000000000000011111 -21 >>> 28 = 00000000000000000000000000001111 -21 >>> 29 = 00000000000000000000000000000111 -21 >>> 30 = 00000000000000000000000000000011 -21 >>> 31 = 00000000000000000000000000000001= = = = = = = = = = = = = =-21 2147483637 1073741818 536870909 268435454 134217727 255 127 63 31 15 7 3 1 , 2n. , n 0, -1.1.5. Java. Unicode, . Unicode ASCII-. ( , ) , ( , ). . , . .1.6. 3-1. Java- 514? a.) 514 b.) \u0546 JavaRendered by www.RenderX.com . 23 26c.) \u222 d.) \u0222 a) , , , . \u, 4 , c) . b) 0x0546=1350. 3-2. :int x = 3; int y=1; int z = x+y;a.) 7 b.) 8 c.) 9 d.) 11 9: 5 , 1 , 3 . 3-3. :int x = 0; /* text // text /* int y=1; // text */ // text */a.) 1 , 0 b.) 1 , 1 c.) 1 , 2 d.) 2 , 3 b). x, */ text. . 3-4. ? a.) , , /**. javadoc HTML, , , , , . HTML-, , .., javadoc. , , @, . JavaRendered by www.RenderX.com. 24 26 3-5. ? a.) abc b.) c.)1ab _bcd.) _1c $ac e.) f.) g.) h.)$ac for_ Int byte 1ab , . byte , byte. . ($ac) . Int , int . 3-6. : a.) true b.) goto c.) null d.) const e.) false goto const , . , , Java. true, false, null , . 3-7. : a.) 5 05 b.) 9 09 c.) 10 010 d.) 0x5A 90L JavaRendered by www.RenderX.com . 25 26 5 05 . 09 , . 010 8 10. 0x5A 90, 90L. 3-8. ?1/0 1./0 1/0. 1./0. \n+\ra.) 1/0 . 3 POSITIVE_INFINITY. 23. 3-9. x ?int x=0; print(++x==x++);a.) . 1, x 1 . 1, x . 2. 3-10. x y ?int x=0, y=0; print((++x==1) || (y++==1));a.) , . , . x 1, y 0. JavaRendered by www.RenderX.com Java () JavaRendered by www.RenderX.com Java 4. 20 2003 : ( Sun ) ( Sun ) < [email protected]>Copyright 2003 Sun , , . . , Java , . , Java. , , Class, Java.Rendered by www.RenderX.comii 4. ..................................................................................................... 11. .......................................................................................................................... 1 2. ...................................................................................................................2 3. ....................................................................3 3.1. ............................................................................................... 5 3.2. ............................................................................................ 5 4. .............................................................................................................. 12 5. .............................................................................................................. 17 6. ..........................................................................................................17 6.1. ................................................................... 17 6.2. Object ......................................................................................................... 22 6.3. String ......................................................................................................... 24 6.4. Class ..........................................................................................................25 7. .................................................................................................................. 26 8. .................................................................................................................... 27 9. ...................................................................................................27 JavaRendered by www.RenderX.com. 1 31 4. .1. ......................................................................................................................... 1 2. .................................................................................................................. 2 3. ................................................................... 3 4. ............................................................................................................. 12 5. ............................................................................................................. 17 6. ......................................................................................................... 17 7. ................................................................................................................. 26 8. ................................................................................................................... 27 9. .................................................................................................. 271. Java . , . . , , , "" ( bugs) ( ), , . Java . . 8 ( primitive) . : byte short int long char ( ) float JavaRendered by www.RenderX.com. 2 31double boolean ( reference) . , . Java , . , , Java . .2. . : ; ; . . , . - , . (declaration). , . , Java , . ( ), . int :int int int int a; b = 0, c = 3+2; d = b+c; e = a = 5; , , . ( 3+2), . (, b+c). , ( ), . : . , , , , , . , JavaRendered by www.RenderX.com. 3 31 . . , . , , , . , final. , . , final- - , , , , . final-:final double pi=3.1415;3. . , 2 , , . ? int:int a=5; // int b=a; // , a=3; // print(b); // , print(...) ( , ) ( , System.out.println(...), ). , b , 5. , , . :byte b=3; int a=b; ( ). , b 3 byte, a - 3 int. , . . . , JavaRendered by www.RenderX.com. 4 31 . - , :class Point { int x, y; } , int-, , new Point(3,5) - (3,5).Point p1 = new Point(3,5); Point p2=p1; p1.x=7; print(p2.x); , p1, , , p2. , , . "" , . , . , . , , . , . , , :Point p1 = new Point(3,5); Point p2=p1; p1 = new Point(7,9); print(p2.x); 3, p1 p2 . null. . , , . , (, ) . null ( ). Java , , . , . , .. , JavaRendered by www.RenderX.com. 5 31 . - - . "", . . garbage collector - , . , , , , . , - , , . . .3.1. , 8 , (integer), (floating-point) (boolean).3.2. - byte, short, int, long, char. 1, 2, 4 8 , char - 2 , , Java Unicode. . , Java , , . 4 . char , JVM - . , , char - . , . char - , , , , .. : byte short int long 1 2 4 8 () -128 .. 127 -32.768 .. 32.767 -2.147.483.648 .. 2.147.483.647 -9.223.372.036.854.775.808 .. 9.223.372.036.854.775.807 ( 1019) '\u0000' .. '\uffff', 0 .. 65.535 char2 , int 2 , , . long, , Java . , 1 1970 . , JavaRendered by www.RenderX.com. 6 31 long (!), , . , int long? , int long, L l. , 4 8 . . , :1 -2147483648 2147483648L 0L 111111111111111111L : ( ) = ==, != ( ) + +, -, *, /, % ( ): ++ - >, >>> ~, & , |, ^ ? : + . (true false). , . + -, ( ), ( ). . + , (+x x). -, x, , 0-x. , .int x=-2147483648; // int int y=-x; JavaRendered by www.RenderX.com. 7 31 y 2147483648, int, x! -x==x ! , , , Java . , , . , , .int x= 300000; print(x*x); :-194313216 -2147483648, , +231 , , 10.0 ( 31 ). int , -2147483648. , , , (. ""). , "" . , -5 . 5 -. , (, 2147483648) -. , Java . 8, 16, 32 64 , 32- 64- . , . long, , long. 64 , , , . long , 32 , int ( byte, short, char). int. 32- . , , . :int i=300000; print(i*i); // 32 long m=i; print(m*m); // 64 JavaRendered by www.RenderX.com. 8 31 print(1/(m-i)); // int long :-194313216 90000000000 , i m , , . 32 , . - 64 , . , , . , , . -, , . double x = 1/2; x 0, 0.5, . , 0.5 1./2 ( , ). , Java . , :print(1000*60*60*24*7); // print(1000*60*60*24*30); // (1000), - (60), - (60), - (24), (7 30 ). :604800000 -1702967296, . long:print(1000*60*60*24*30L); // :2592000000 64- , , . JavaRendered by www.RenderX.com. 9 31, , Java . , :// int x=1; byte b=x; , b 1, byte, x , , int. :// byte b=1; byte c=b+1; . b int, , , byte. :// int x=2; long y=3; int z=x+y; long. :// byte b=5; byte c=-5; - 32 . , , :byte b=1; byte c=(byte)-b;, int long. . -, . , , JavaRendered by www.RenderX.com. 10 31 ( , ). , . ( 32 , .)byte x=5; byte y1=x++; byte y2=x--; byte y3=++x; byte y4=--x; print(y1); print(y2); print(y3); print(y4);// // // // x x x x 5 6 5 6 :5 6 6 5 ++ -- byte. , :byte x=-128; print(-x); byte y=127; print(++y); :128 -128 . ? :. , .byte byte byte byte x=2; y=3; z=(x>y) ? x : y; // , x y abs=(x>0) ? x : -x; // ! JavaRendered by www.RenderX.com. 11 31 , , , int, int, . byte, - short, int. , . + . , - , , .int x=1; print("x="+x); :x=1 :print(1+2+"text"); print("text"+1+2); :3text text12 char. :char c1=10; char c2='A'; // A (\u0041, 65) int i=c1+c2-'B'; i 9. :char c='A'; print(c); print(c+1); print("c="+c); print('c'+'='+); :A 66 c=A 225 print char, . , , JavaRendered by www.RenderX.com. 12 31 . char . : 'c' ( 99), '=' ( 61) c (.. 'A' - 65). - (wrapper classes). byte, short, int, long, char Byte, Short, Integer, Long, Character. . , . , Math, , . , , Java - ( / %).4. - float double. - 4 8 . . : float double 4 8 () 3.40282347e+38f ; 1.40239846e-45f 1.79769313486231570e+308 ; 4.94065645841246544e-324 , . , - . , , , overflow. , , underflow.// float f = 1e40f; // , overflow double d = 1e-350; // , underflow, F f, float. double, D d. : ( ) = ==, != ( ) + +, -, *, /, % JavaRendered by www.RenderX.com. 13 31 ( ): ++ -- ? : + , ( % , ++ -- ). , . , . - overflow underflow. , Java . , . , . , . . IEEE 754 "": (positive/negative infinity); " ", Not-a-Number, NaN; . float, double. :1f/0f // , float -1d/0d // , double Float Double POSITIVE_INFINITY NEGATIVE_INFINITY. , . NaN , , :0.0/0.0 // (1.0/0.0)*0.0 // NaN Float Double. :0.0 // +0.0 // +, - -0.0 // -, - JavaRendered by www.RenderX.com. 14 31 . , - . +0.0 -0.0 , 0.0==-0.0 , 0.0>-0.0 - . , , 1.0/0.0 , 1.0/0.0 - . - NaN. NaN, false ( != true). , x, x!=x , NaN. . (overflow), .print(1e20f*1e20f); print(-1e200*1e200); :Infinity -Infinity , , (underflow), . , :print(1e-40f/1e10f); // underflow float print(-1e-300/1e100); // underflow double float f=1e-6f; print(f); f+=0.002f; print(f); f+=3; print(f); f+=4000; print(f); :0.0 -0.0 1.0E-6 0.002001 3.002001 4003.002 , 6- . JavaRendered by www.RenderX.com. 15 31 ( Java):double d = 1e-305 * Math.PI; print(d); for (int i = 0; i < 4; i++) print(d /= 100000); :3.141592653589793E-305 3.1415926535898E-310 3.141592653E-315 3.142E-320 0.0 , , , (overflow) (underflow) , (. ""). , . . double, , double. 64 . double , float, float, 32 , float. , . NaN, NaN. :print(1/2); print(1/2.); :0 0.5 , . :int x=3; int y=5; print (x/y); JavaRendered by www.RenderX.com. 16 31 print((double)x/y); print(1.0*x/y); :0 0.6 0.6 , . , , , . ( ), ( ). , . -, , . , 3.84 3, -3.84 -3. Math.round(). -, int float long float double , , , . :long l=111111111111L; float f = l; l = (long) f; print(l); :111111110656 float , long float . - (wrapper classes). float double Float Double. . , . , Math , , , , . PI E. JavaRendered by www.RenderX.com. 17 315. boolean, - true false. . : ( ) ==, != ( ) ! &, |, ^ &&, || ? : + && || . ? : boolean. , . "true" "false" . , , if. . , ( ), x!= 0. boolean ref!=null.6. , null, , JVM.6.1. (object) - . . - , , . , . new, new ( , ). , . JavaRendered by www.RenderX.com. 18 31 ( ), , , . , Point, new Point(3,5) Point, 2 int. , . , Point:class Point { int x, y; /** * 2 , * . */ Point (int newx, int newy){ x=newx; y=newy; } } , new . , . JVM . , , (garbage collector). "" .Point p=new Point(1,2); // , Point p1=p; // 2 (1,2) p=new Point(3,4); // (1,2) p1=null; - (1,2) , . new. - String. , . +, , new. :"abc"+"def" JavaRendered by www.RenderX.com. 19 31 3 String. , . - Java. . , , , . , , , . Java 1.1 reflection, , , . new, , , , , , . , :Point p = null; try { // , // Point, // new p = (Point)Class.forName("Point").newInstance(); } catch (Exception e) { // System.out.println(e); } "", . , , , . , . , Parent Child:// Parent class Parent { } // Child, // Parent class Child extends Parent { } - . , :Parent p = new Child(); Parent , Child. JavaRendered by www.RenderX.com. 20 31 : instanceof ( ) == != ( ) ? : + . . (). . instanceof, , . . , - , . :Parent p = new Child(); // p Parent // Child print(p instanceof Child); true. , instanceof , , . , . :// // Child class ChildOfChild extends Child { } :Parent p = new ChildOfChild(); print(p instanceof Child); Parent, , ChildOfChild. instanceof Parent Child, , . , true, , , Child. JavaRendered by www.RenderX.com. 21 31 :class Child2 extends Parent { } Parent:Parent p=new Child(); print(p instanceof Child); print(p instanceof Child2); p Parent, , Child Child2. instanceof :true false null instanceof false. Java, instanceof. = != ( ) . - . . , Java, . , , true , .Point p1=new Point(2,3); Point p2=p1; Point p3=new Point(2,3); print(p1==p2); print(p1==p3); :true false , p2 , p1. , , p3 - . , new. = null, - , false. null, true. equals, . , : JavaRendered by www.RenderX.com. 22 31 String s = "abc"; s=s+1; print(s.equals("abc1")); ? : , , . . , . null, "null". , ( , toString()), , , .6.2. Object Java . . , , . , , Object. , . , Object. , ( Object ), . : getClass() Class, , . Class . getName() , :String s = "abc"; Class cl=s.getClass(); print(cl.getName()); :java.lang.String instanceof, getClass() , . equals() Object boolean. , equals() , . , , .Point p1=new Point(2,3); JavaRendered by www.RenderX.com. 23 31Point p2=new Point(2,3); print(p1.equals(p2)); true. Object , , , equals . ( ). Point :public boolean equals(Object o) { // , // Point if (o instanceof Point) { // , Point p = (Point)o; // return p.x==x && p.y==y; } // Point, false return false; }hashCode() int. hashCode() - . - ( Java , ). , , -, , , , ( equals() true) -. Object JVM. -, . toString() . , . Object , toString(), :getClass().getName()+"@"+hashCode() getName() Class , - . JavaRendered by www.RenderX.com. 24 31 :print(new Object()); :java.lang.Object@92d342 , , , -, , . , . finalize() (garbage collector). Object , - , , , , .. , . , . finalize() , . , JVM .6.3. String , String Java . new. String, ( null), . , , , , . . , , , -, , .String s="a"; s="b"; , String. , Java, . JavaRendered by www.RenderX.com. 25 31-, , .String s1 = "abc"; String s2 = "abc"; String s3 = "a"+"bc"; print(s1==s2); print(s1==s3); :true true , , , , . , , :String s1="abc"; String s2="ab"; print(s1==(s2+"c")); false, . String intern(), -, , . , s1 s2 s1.equals(s2), s1.intern()==s2.intern(). , equals() hashCode(). toString() , -, s String, null, s==s.toString().6.4. Class, , . Class Java. JVM .class, , Class, . , :Point p=new Point(1,2); , : 1. , Point, (1,2) 2. Class, Point JavaRendered by www.RenderX.com. 26 313. Class, Object. Point Object, . 4. Class, Class. Java-, . Class - getClass() Object. :Class cl=p.getClass(); // 2 Class cl2=cl.getClass(); // 4 Class cl3=cl2.getClass(); // 4 cl2==cl3 . Class reflection. , Java , ( , ..).7. - . , . , : ; ; - ; - , ; - ; ; instanceof; ; - , import- .. . Java - , . . Java 1.5 (templates), , . JavaRendered by www.RenderX.com. 27 318. , Java , . , . Java , , (8 ) (). . . null, . JVM , . . , . . final. 5 , , 2 1 . , . , . , , , , instanceof. Java Object, Class, String. .9. 4-1. ?byte b=3; int c=b; c++; print(++b==c);a.) 3. , , . true. 4-2. ?Point p = new Point(1, 2); int a=p.x; p = new Point(3, 4); print(a); JavaRendered by www.RenderX.com. 28 31 a.) . 1. 4-3. ?Point p1 = new Point(3, 4); Point p2 = p1; p1.x=5; p1 = new Point(4, 4); print(p2.x-p1.x);a.) , x 5. p1 , x 4. 5-4=1. 4-4. ?1/2 1./2 1/2. 1./2.a.) , , .. 0. , , 0.5. 4-5. , +. a.) , , ( ) . (+=). 4-6. x, :a) x*30/30==x b) x/30*30==xa.) a) , Integer.MAX_VALUE/30, .. 71582789. b) , 30, , 15. 4-7. ( 33)?print(Hello+!);a.) Hello! 4-8. ? JavaRendered by www.RenderX.com. 29 31double x=2./0; double y=-1/0.; print(x+y);a.) x POSITIVE_INFINITY, y NEGATIVE_INFINITY. NaN. 4-9. Java. a.) new, , . String . , , newInstance() Class. 4-10. ?Point p1 = new Point(2, 3); Point p2 = new Point(2, 3); print(p1==p2); p2=p1; p1.x=3; print(p1==p2);a.) false. , p1 p2 . , true. 4-11. x1 x2 (SomeClass2 x2)?x1 instanceof SomeClass2 x1.getClass().getName().equals(x2.getClass().getName())a.) . ( ) , , x1 x2. instanceof . s , , , . , x1 , - SomeClass2, x2 , SomeClass2, instanceof true, false. 4-12. false? JavaRendered by www.RenderX.com. 30 31 a) x.toString() instanceof String b) (x+) instanceof Stringa.) a) , x , toString() , null. . b) true. 4-13. x ?x.getClass()==xa.) , x Class, Class. y, null:x=y.getClass().getClass() JavaRendered by www.RenderX.com Java 5. . 20 2003 : ( Sun ) ( Sun ) < [email protected]>Copyright 2003 Sun , , . Java (packages), . Java . , . . , , , Sun. , . .Rendered by www.RenderX.comii 5. . ................................................................................................... 11. ......................................................................................................................... 1 2. ............................................................................................................................. 2 2.1. . . ........................................................... 2 2.2. ....................................................................................2 2.3. () ........................................................................... 3 3. ............................................................................................................................. 4 3.1. ................................................................................................... 5 3.2. ...................................................................5 3.3. ............................................................................................. 7 3.3.1. ..................................................................................... 8 3.3.2. - ......................................................................................9 3.3.3. ...................................................................12 3.4. ................................................................................14 4. ............................................................................................15 4.1. "" (Shadowing) ........................................................... 16 4.2. "" (Obscuring) .......................................................... 17 5. ...................................................................................... 17 6. .................................................................................................................... 20 7. ...................................................................................................20 JavaRendered by www.RenderX.com. 1 24 5. . .1. ........................................................................................................................ 1 2. .............................................................................................................................2 3. ............................................................................................................................ 4 4. ........................................................................................... 15 5. ......................................................................................17 6. ................................................................................................................... 20 7. .................................................................................................. 201. (names) (declared) "", "", "" ( - , , ). , Java : ; ; ; (member) : ; ; ;: ; ; ; ., , . , , , . JavaRendered by www.RenderX.com. 2 24, (packages) Java - , , . . .2. 2.1. . . (simple), ( ), (qualified), , . . (, , ) (members). , , , , . (type). , , . , , , , . , Java - java.lang ( , lang, java). , reflection, . reflect, , , - java.lang.reflect. , Object, String, Point. , , . , java.lang.Object, java.lang.reflect.Method com.myfirm.MainClass. : com, - myfirm, myfirm - MainClass. com.myfirm - , MainClass, MainClass - . - com.myfirm.MainClass. , ( ). , , . . , toString(), PI, InnerClass. . , ref.toString(), java.lang.Math.PI, OuterClass.InnerClass. .2.2. , , (, ) . , JavaRendered by www.RenderX.com. 3 24 , - . . -, (declaration) . , . -, , , . :country.getCity().getStreet(); getStreet , , , getCity(). , country.getCity - . , (label). , , , .num: for (int int n while ifnum = 2; num javac first\Start.java5-5. Java , ? a.) JVM , , ..c:\Java\programs>java test.first.Start JavaRendered by www.RenderX.com. 22 24 5-6. , 2 , c:\ ? a.) , classpath .5-7. . , Point test.demo, java.awt.Point java.net?a) package test.demo; import java.awt.Point; import java.net.*; b) import java.awt.*; import java.net.*; package test.demo; c) package test.demo; import java.net.*; import java.awt.*; d) package test.demo.* import java.net.*; import java.awt.*;a.) a) , java.awt.Point Point, . b) , . d) , ( ) . c) . 5-8. ? , ?class Box { private int weight=0; public int getWeight() { return weight; } void setWieght(int weight) { weight=weigth; } JavaRendered by www.RenderX.com. 23 24}a.) , setWeight() . , . , , . 5-9. ?public class flat{ private int floor_number; private int r; // public int rooms() { retun r; } public int GetFloorNumber() { return floor_number; } }a.) : , Flat. floor_number , , floorNumber. r , , , rooms roomsNumber rooms , , , getRoomsNumber. GetFloorNumber , getFloorNumber. , . - (, ), , . JavaRendered by www.RenderX.com Java () JavaRendered by www.RenderX.com Java 6. 20 2003 : ( Sun ) ( Sun ) < [email protected]>Copyright 2003 Sun , , . , Java- . Java. , - , Java. , ( ), . main, Java-, , .Rendered by www.RenderX.comii 6. ........................................................................................ 11. ........................................................................................................................ 1 2. .................................................................................................. 2 2.1. ........................................................... 2 2.2. Java.............................................................................. 5 3. ....................................................................................................... 9 3.1. .................................................................................................... 9 3.2. ...........................................................................................................10 3.3. ............................................................................................... 11 3.4. ........................................................................................... 12 3.5. ................................................................................. 16 3.6. ..................................................................................