Title: ?.?.?. ???????? ?.?. (email: egrinkrug@hse.ru)
1 ????????-??????????????? ?????? ?
????????????????
?????? 1. ???????? ? ????????-??????????????
???????????????? ? ???? Java
?.?.?. ???????? ?.?. (email egrinkrug_at_hse.ru)
2???????? ? ????????-???????????????
????????????????
- ??? ????? ???????????????? ???????????? ?????????
?????????? (???????????? ??????, ????????? ?
??????? ??????) - ???? ?????????? ???????????? ????????? ??????????
?????? - ???????????? ????? (Fortran, ? ? ??.)
???????????? ?????????? ?????? ?????????? (? ??,
? ?????? ??????? ???????? ? ???????? ??????????,
? ?? ???????? ?????? ??????????? ????????????
?????????????? ??????? ?????????? ??????? ?
??????? ???????-???????????????? ?????) - ?????????-??????????????? ????? ?????????????
?? ??????? ????? ????????????? ??????, ???
??????? ??? ???? ???????? ??????????, ?? ??? ??
?????? ???????? ??? ????? ?????? ??????? - ????????-??????????????? ????? ???? ???????????
??? ????????????? ????????? ?????????? ???????
??? ????????, ??????????? ? ??????? ??????
???????? (???????? ??????????). ???????? ????????
? ???????? ?????????? ???????, ? ?? ? ????????
??????????, ????????????? ??? ??????????. ?????
?????? ????? ???????????? ?????????? ???????? ?
???????? ????.
3?????????????? ????????-???????????????? ?????
(?????????????? ??? ??-????? Smalltalk
??????????????? Java)
- ??? ???????? ????????, ????????? ?????????
???????? ??? ???????? - ????????? ??? ???????????? ????????,
??????????? ???? ?????, ??? ??????, ???????????
????????? (??????? ???????) - ?????? ?????? ????? ??????????? ??????, ????????
????????? ?? ?????? ???????? - ?????? ?????? ????? ???, ???????????? ?????????
?????????, ??????? ????? ???????? ??????? ???????
???? - ??? ??????? ??????? ???? ????? ????????
?????????? ?????????.
4??????????? ????????????? ??????? (???)
- ?????? ???????? ??????????, ??????????,
?????????????????. - ??? - ????? ????? ??????????? (??? ?????????????
??????? ? ?????). - ? ???????????????? (computer science)
???????????? ?????? object-based (language) ???
???????? ?? - ???????????? ?????????? ????????-????????????????
????????????????, ??? ??????? ???? ??? ????? ??
??????????? - ??? ????????????
- ??? ????????????
- ?? ??? ???????? ???????? ?????????.
- ?????? Visual Basic.
- Prototype-based ??????????? (??????? ?? ????????
???????????? ???? / ??????). - ?????? JavaScript.
5??????? ??? ? ?????
- ?????????? ???????? ??????? ? ??????????????
(?????? ????????? ??????? ?????????????
??????????? ??????????, ???????????????
?????????? ??????, ????? ???, ????? ????,
...) - ????????????? ????? ? ?????? ???????? ????
(???????? ??? ???????? ? ????????????? ???
????????? ???????? ?????) - ????????? ????, ??? ??? ???????, ??????
???????????, ???????????????? ?? ??????? ?????
????????????? ? ???????? ?????????, ???? ???????
??????????? ? ?????? ????????-???????????????
????? Simula-67 (??????????????? ??? Simulation
- ????????????? ????????? ????, ?????? ????????,
- ? 1967 ?.) ??????????? ???????, ?????????? ??
????, ????? ??????????? ????????? ?? ?????
?????????? ?????????, ???????????? ? ?????
????????. Class ??? ??????????? ??????
??????? ??????????? ? Simula-67. - ? ?????????? ??????? ??? ? ????? ????????????
??? ????????????? ?????????? ? ??????????
?????????????? (? ????????...).
6???????? ?????????? ????? ??????
??????????????? ??????? ????????-????????????????
????????????????
- ????? ???????????? ????????? ??????????
?????????? ? ???????????? ????? ???????? ?
?????????????? ??? - ??? ???????? ??????????, ??? ??????? ????????? ??
?????????, ?.?. ?????????? ??????????? ? ???? - ? ?? ?? ????? ?????? ?????? ????????
????????????????? ? ????? ???? ???????????
??????????????? ????????? ? ?????????, ???
???????? ????????????? ? ????????
???????????????? - ????????????? ???????? ????????? ??????????
?????? ???????? ? ??????????? ????????????????
(???????? ??????) ? ?????????? (?????????????????)
- ????? ???????? ????????? ??? ??? ?????? (???????
???? ?????????????? ? ??????????? ?????????) - ??????????? ????????? ???? ???????????????? ???
???????????? ????? ??????, ????????? ???????,
??????????? ??? ????????????? ???????? ???????
??????.
7????????? ? ??????????
- Model-driven development / software engineering
??????????? ?????????? ?????????, ???????
???????????? ?? ???????? ???????, ??? ??????????,
????? ???????????? ? ?????????? ??????????
?????????? ???????, ??? ? ??????????
?????????????? (???????????????) ?????????? - ????????-??????????????? ????????????????
???????????? ????????? ???? ???????????
?????????? ??????? ???????????????? (?????
????????????????) - ????????, ??????? ?? ?????????? ??????? ?????
???????????? ???????, ?????????? ?????????
??????? - ????????? ???????????? ??????? ????, ????????????
???????? ??????????, ? ???? ??? ???????????? ?
??????????? ????? ??????? (???????) ?
???????????? ?? ???????? ????????????? ??? ????
???????.
8?????? ?????????? ????????? ?????
- ????? ?????? ? ??????????????
- ???????????? ?????????????? ?????????
- ???????? ????????????? ??????????? ?????????
- ???????? ??????????????? ?????????
- ???????? ????????? ? ????????????? ????.
?????? ????? ??????? ??????????
- ????? ?????? ? ??????????????
- ????????? ????????????? ?? ?????????? ??????? ?
???????? - ????????? ???????? ?????????? ??? ?????????
?????? ???????? - ???????? ?????????? ?? ????????? ?? ???????
??????? - ???????? ????????? ? ????????????? ????.
9????????? ????????????? ??????????
- ???????????? ? ???????????????? ????? ????? ????
???????? ?????? ???? ?????? ????????????????
??? ????? ???? ??????? ??? ?????? ???????? - ????????????????? ???? ???? ?? ?????????
??????????? ????????-????????????????
????????????????. - ??????? ?????????? ????????????? ????
- ????????? ???????????? ?????? (???????? ?????
????????) - ????????? ??????? ? ?????????? ??????? (member
object) ?? ???? ?????????? (composition) ???
?????????????? (aggregation), ??? ???????????
?????????? has-a (a car has an engine) - ???????????? (????? ?????? ??????, ??? ???
????????? ?? ??????????). -
10????????????
- ??????????? ?????? ? ???????????????? ? ?????
????????? ????????? ? ?????????????????????
?????????? ??????? - ?????? ????????? ??????? ????????? ????????
?????? ??????? ?? ???????? - ???????? ????????? ?????????????? ??????? ???????
(????????????, ???????????? ???????) - ????????? ??????????? ? ?????????????? ??????
(???????????, ???????? ?????????) - ??????? ??? ???????? ??? ?????????????? ?
????????, ????? ??? ???? ?????, ?????????????? ??
????.
????????? ? prototype-based ??????, ???
??????????? ??????? ??????, ???????????? ????????
? ???????? ??????? ???????????? ??????? ??
????????????? ??????? (JavaScript)
11????????????
- ??????????? ??? ????????? ????????? ????????
???? - ??????????? ????? ???????? ??????? ???????
???????? ?????? - ???????? ????? ????????? ??? ???????, ??? ?
????????? ???????? ??????? - ??? ???????? ??????? ? ?????????? ??????? ?????
???????????? ????????... - ??? ??????? ???????? ???????
- ?????????? ?????? ???????
- ??????????????? ??????? (????????? ?????????).
?????????? ??? ???? ????? ?????????????? ??????
?????????? ?????????...
12????????? ???????? ? ????????-?????(IS-A ?
IS-LIKE-A)
- ??????? ?????? (is-a, ????????) ???? ?????
???????? ?????? ???????????????? ???????, ??
??????? ? ??????????? ????? ????? ??????????
?????????, ? ?? ??????? ??????????????? (???,
????????, USB-?????? ?????? ??????????????). - ??????? ?????????? (is-like-a,
????????-?????) ???? ????? ????? ?????????
???????????? ??????? ? ????? ??????????, ??
??????? ?????? ? ??????? ?????? ???????????????
? ???? ??????? (????????, ???????? ???????????
??? ??????????? ????? USB-???? ???????? ?????
???????, ?? ?? ? ???? ?? ????? ???????????????) - ??????????? ???????? ?????????? ????????? ?????
?????????? ????? ?????, ? ???????? ??????? ??? ??
????? ????????? ????? ??????? ????????
(???????????), ???????? ??????????? ????????? ?
??????? ????????? ????????? ??.
13?????? ? ??????? ??????????
- ??? ??????? ????????? ? ??????? ???????????? ????
??? ? ??????? ???????? ???? ??????????? ?? ?????
- ? ?????????? ?? ????? - ????? ???????, ?????
????????? ??? ????? ???????? (??? ??????????? ???
?????????? ?????????) - ?????? ????????? (early binding) ?????
??????????? ???????? (??????) ????????? ?
????????? ??????????????? ?? ?????????? ?????????
(???????????? ? ?????????? ??????) - ??????? ?????????? (late binding) ????? ?
?????????? ????????? ??????????????? ???????????,
?? ????? ?????????? (? ????? ?? ???? ????????
?????) - ??????? ?????????? ???????????????? ?????????
?????????? ???, ???????? ????????? ???????????.
14?????????? ? ?????????? ?????????????? ?????
- ?????????????? ????? ???????????? ? ????????
??? ???????? ????? ???? - ?????????? ?????????????? ????? (upcasting)
???????????? ???????? ???????????? ???? ???
???????? ???????? ???? (???????? ????? ??
????????? ????????????) - ?????????? ?????????????? ????? (downcasting)
???????????? ? ???????? ??? ?????????????? ?????
??????????? ????.
15????????? ????????????
- ??????????? ??? ????????-??????????????? ?????
(????? ?) ???????????? ????????? ????????????
(singly rooted inheritance hierarchy) ??????? - ??? ???? ????? ????? ?????? ???????? ?????
????? Object - ??? ??????? ?????????????? ???????? ????? ???????
?????????????????, ? ???? ????? ???????????
???????????? ???????? ????????, ??? ???????? ??
?????????? ? ?????????????, ? ?????? - ???????????? ????????
- ?????? ??????
- ????????? ?????????????? ????????.
16???????? ? ??????????? ????????
- ???????? ??????? ?????????????? ?????????? ???
?????? ????? ?????? ?????????? ????????, ??????
???? ??????????. - ?????? ???????? ?????????????? ???????????
- ??????? ????????? ???????????? ?????????? ?????
????? (??????????????), - ?????? ?????????? ?? ????? ???? (heap) ,
- ?????????? ? ???? ??????????? ???????? ??
???????? ?? ??????? ?????????. - ?????? ???????? ????????????? ? ???????
???????????? ????????? ?????? ?????? (garbage
collection), ??????? - ??????????, ????? ?????? ??????? ????? ????
??????????? - ?????????? ???????????? ?? ?????? ?????? ?? ??
???????????? - ??????? ??????????? ?????? ?????? (memory leak),
?? ?? ??????????? ?? ???.
17????????? ???????????????? (???? ?????? ?? ????
??????? ????????????? ????????????????)
- ??????????? ????????? ??????????? ???????????
??????????? ???? ??????? ?????? ?? - ???????????? ???????,
- ???????????? ?? ???????????? ??????? ??????
- ???????? ????????????????
- ??????????? ???????? ?? ????? ??????????.
- ? ?????????? ????????-???????????????? ?? ???
???????? ????????? - ???????????? ??????? ??????????
????????-???????????????? ?????????? ?????????
?????? ???????????????? - ????????-??????????????? ????? ????????????????
???????? ?????????? ? ??? ???????????? ????????
???????????? ??????.
18???? ??????? ?????
- ????????, ??? ???? ????????-???????????????
???????????????? ????????? ? ????? Java - ??????? ???????????? ???????????????? ?? Java
???????? ?????? ??????????? ? ????????? ?????
????? ???????????????? - ???????? ?????? ??? ??????????? ????????
????????????? ??????????, ???????????? ?? Java - ???????? ???????????????? ????????????
????????????????, ??? ???????? ???? ?? ??????????
????????? ??? ?????????????. - ?????? ????????? ??????? ???? ????????? ?????
????????? ?? ???????? ???? ???????? ? ????...
19???????? ? Java
- ??????? ????????? ????? Java
- ? 1991 ?. ?????? ?????? ? ?????? ??????? ?? Sun
?????????? ? ?????????? ????? ???
???????????????? ???????????? ????????????
??????? ?????????? TV (??? embedded software -
??? ????????? ????????????????? ? ?????????
???????), ???? ??????? ???????? Green (??.???????
??????? ??? Oak ???, ?? ????? ??????????, ???
???? ? ????? ????????? ??? ????, ? ???
????????????? ? Java ???????? ????????? ????)
- ??? ????????????? ?? ??????????? ????????????????
? ?????? ???? ???????? ????????? ???????????
?????? - ?????? ???? ?????? ?? ???? ?????????? (?????? ??
1994 ?.) ???????, ??? ????????????? ????? ??
????????, ???????????? ????????? ???????? ??
????????????? ??????? Green, ??? ???? ?????
(????? ?????????? ???????? Netscape ?????????
??????????? ?? Java) - ? 1994 ? ????????? www ???????????? web-browser
(html ? ??????????? ?? ??????)???????????
????????????? ????????? browser Mosaic ??????????
???????????? ??.???????? (1993 ??? ????
????????? ?????? ????? ???????????, ??????? - ???
?????? ?????????? Netscape) - ? 1995 ???? ??? ?????????? browser HotJava,
?????????? ? Java ???????? ???????. - ?????? ?????? ????? java ?? ????? Sun ????????? ?
1996 ???? (Java 1.0) - (??? ? 1996 ? ??? ???????? ???????? ????????? ??
java ? ???????? Paragraph) -
20????????????? ???????????? ??????
???????????????? ?????? ?????????(?????? 2006
?.)
21???????? ????????????
22- ???????? Java ????????? (???????? ????)
- ?????? Java 1.1 (1996-1997) ??????????????????
?????, ?????????, ????????? MS Java VM,
?????????? ? MS IE - ?????? Java 1.2 (1998) Java 2 Standard Edition
Software Development Kit Version 1.2 (J2SE SDK),
????????? Micro Edition, Enterprise Edition,
?????? write once run everywhere - ?????? Java 1.3 ? 1.4 ????????????????
?????????, ?????????? ? ????????? ?????????
??????????? - ?????? 5 ? 6 (? ????????? ?????)
????????????????? ?????, ??????????? ??????,
????????? (????????? ????????? ?????? ?????????
1. ???????) - ?? ??????? Java 7
23(No Transcript)
24(No Transcript)
25??????????? ???????????????? ?? Java
- Java ????????? ??????????? ??????????? ???????
(jvm). ?????????? ?????????????? ?????????? jvm
(?? ??????? ?????? ?? ???, ??? ? ??? ?
?????????), ???? ?????????? ??????????? ??? ????
???????? ???????????? ??????, ?? ?????
???????????? Java Development Kit (JDK) ???
Windows (????? ?????? ?????? ?????????? Java
Software Development Kit (Java SDK)) - ??? ????? ???????????? Java 2SE (Java 2 Standard
Edition) ??????????? ? http//java.sun.com/j2se
(?? ??????? ???, ??? ????? ?? ????? ???????) - ????? ????????? ???????????? ?????????????? ??
?????? ???? (?????) ???????, ??? ????
Java-????????? ????? ???????? ??? ??????
????????????? ?????????.
26- ?????? ????????, ??? java-?????? ? java runtime
environment (jre) ? ????? ??????? ??? ????
?????? ?????????, ???????????? java, ????????
?? ? ????? (?? ???? ?????? ???????????? ?????????
????????? ?????? ?????? java) - ??? ??????????? ? Windows ?????? ??????? ????????
????????? ? ??????????, ??????? ?????? ? ?????
(?????? ????????? ? Program Files ?????
????????????? ????? ? ?????? - ??? ??????
???????) - ????? ????????? ???? ? ?????????? ???? ?????????,
? ????? java ?? ????? ????
27- ???? ??????? ??????, ???? ???????????
- ???-?? ?? ??? ???????????? (????????? ?????????)
- ??? ???? ????????? ?????? java ?????, ??? ?????
?????????/????????? ? ??????? ??????????? ?
??????????? ????????? (PATH, JAVA_HOME) ???
?????????? ??????? ?????????? (??? ??????
????). - Sun ????????????? ??? ??????????? ???????? ?????
(? ???? ??? ????? ?????????? jvm, ???????????, ?
?.?. ?? ??????????? ????????? ????????????
?????? ??? ?????????? ??????????) - ?????? ???????? ?????? ?????? ?????? ?????????
java-????????????????? ? ???????????? ????????
java-????????????
28??? ????????????
- README.html ?????? ??? ????????? ???? ??????
?? Java - Src.zip ??? ?????? ???????? ?????
- bin ??? .exe ????? ???????????? JDK
- lib ??????????? ??????????
- demo, sample ???????????????? ????????? ?
??????? - JRE runtime environment (??? ??????????????)
- Include header-????? ??? ??????????
?????????????????? ?????????
29Java SE 6
30?????? ? ????????? ???????
- ????????? ???????? ??????
- ?????????? Java application
31Integrated Development Environments
- ?? ????????? ???? ????????? ??? ??????????
?????????????? ????????????? ????? ??????????
(???? ?????? ?????????, ???????? ????????? ? ????
????? ?/??? ??????) - Borland JBuilder,
- MS Java,
- CosmoCode (CosmoSoftware, SiliconGraphics),
- Oracle JDeveloper,
- IBM VisualAge For Java,
- Eclipse,
- Sun NetBeans,
- JetBrains IntellyJ IDEA.
- ??? ????? IDEA http//www.jetbrains.com (????
?? ????? ???????)
32????????? IntellyJ IDEA
- ?????????? ??? ?????? ????? ???????? JetBrains
???????????? ???????? (???? ?? ????? ??????) for
free ?????? ?? thanks a lot!
33???????????? (applications, applets)
- Java application
- Java applet
34????? ??????? ?????????? ?? ???????
- ????????? ????????? ? ??????? ?????????????
?????? ??? ????? ??????? ?????. ??? ?? ????????
??????????????? ? ????????????? ? ???? ?????,
????? ???????! - ?? ????? ??????? ???????
- ?????
- ???????? ??????? ????????? ?????????? ????? ?
The Java Language Specification (3d edition) - ??????????? ???????????
- ??????? ? ??????????
-
35QA