java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚

Java Core для самых ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ…. Π§Π°ΡΡ‚ΡŒ 1. ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΈ пСрвая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

ВступлСниС. ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ история ΠΈ особСнности языка

Как-Ρ‚ΠΎ Π΄Π°Π²Π½ΠΎ ΠΌΡ‹ с ΠΌΠΎΠΈΠΌ Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰Π΅ΠΌ ΠΈ ΠΊΠΎΠ»Π»Π΅Π³ΠΎΠΉ Π•Π³ΠΎΡ€ΠΎΠΌ Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ»ΠΈ ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠΉ курс ΠΏΠΎ Java Core. Но ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π½Π΅ ΡΡ€ΠΎΡΠ»ΠΎΡΡŒ ΠΈ это Π΄Π΅Π»ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ Π΄ΠΎΠ²Π΅Π΄Π΅Π½ΠΎ Π΄ΠΎ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ логичСского ΠΊΠΎΠ½Ρ†Π°. И Π²ΠΎΡ‚, спустя врСмя, я Ρ€Π΅ΡˆΠΈΠ», Ρ‡Ρ‚ΠΎ Π½Π΅ стоит ΠΏΡ€ΠΎΠΏΠ°Π΄Π°Ρ‚ΡŒ Π΄ΠΎΠ±Ρ€Ρƒ ΠΈ ΠΏΠΎ-этому Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽ ΡΠ΅Ρ€ΠΈΡŽ статСй ΠΏΡ€ΠΎ Java Core для самых ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ….

Начало Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ языка Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ Π΅Ρ‰Π΅ Π² 1991 Π³ΠΎΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Sun Microsystems, Inc. Π’Π½Π°Ρ‡Π°Π»Π΅ язык Π±Ρ‹Π» Π½Π°Π·Π²Π°Π½ Oak (Π”ΡƒΠ±), Π½ΠΎ Π² 1995 ΠΎΠ½ Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ Π² Java. ΠŸΡƒΠ±Π»ΠΈΡ‡Π½ΠΎ заявили ΠΎ создании языка Π² 1995 Π³ΠΎΠ΄Ρƒ. ΠŸΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ создания Π±Ρ‹Π»Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² нСзависящСм ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ процСссора языкС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для Π±Ρ‹Ρ‚ΠΎΠ²ΠΎΠΉ элСктротСхники. Но ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Ρ‚Π°ΠΊΠΈΡ… устройствах ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ»ΠΈΡΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ процСссоры, Ρ‚ΠΎ использованиС популярных Π½Π° Ρ‚ΠΎ врСмя языков Π‘/Π‘++ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ… Π±Ρ‹Π»ΠΎ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ написанныС Π½Π° Π½ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ JDK ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, ΠΈ Π² строкС поиска Google Π²Π²ΠΎΠ΄ΠΈΠΌ β€œdownload JDK” ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ этой ссылкС.

java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π€ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚

Π‘ΠΊΡ€ΠΎΠ»ΠΈΠΌ Π½ΠΈΠΆΠ΅ ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ с Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌΠΈ скачивания JDK. Π’ зависимости ΠΎΡ‚ нашСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» для скачивания.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ установки для ОБ Windows ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько этапов. НС стоит ΠΏΡƒΠ³Π°Ρ‚ΡŒΡΡ, всС ΠΎΡ‡Π΅Π½ΡŒ просто ΠΈ дСлаСтся Π² нСсколько ΠΊΠ»ΠΈΠΊΠΎΠ². Π’ΠΎΡ‚ здСсь ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описан процСсс установки. Π‘Π°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Windows это Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ JAVA_HOME. Π’ этой ΠΆΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠ΅ достаточно ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ расписано ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ (Π΅ΡΡ‚ΡŒ Π΄Π°ΠΆΠ΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ).

java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π€ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚

Установка IDE

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΎΠ½Π° ΠΆΠ΅ IDE (Integrated development environment). Π§Ρ‚ΠΎ собой прСдставляСт срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ? На самом Π΄Π΅Π»Π΅ ΠΎΠ½Π° выглядит ΠΊΠ°ΠΊ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкст. Но ΠΏΠΎΠΌΠΈΠΌΠΎ этого, этот тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΡƒΠΌΠ΅Π΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ синтаксиса языка Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅. ДСлаСтся это для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π° Ρ€Π°Π½Π½Π΅ΠΌ этапС ΠΏΠΎΠ΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ допустили ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² своСм ΠΊΠΎΠ΄Π΅.

ΠšΡ€ΠΎΠΌΠ΅ этого, срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΈ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ ваш ΠΊΠΎΠ΄ Π² случаС ошибки. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ Ρ‚Π°ΠΊ, это Π±Ρ‹Π»ΠΈ описаны основныС возмоТности IDE. Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ IDE ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π² написании, ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅, автоматичСской Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΈ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Для Π½Π°Ρ‡Π°Π»Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π˜Ρ… довольно Ρ‚Π°ΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈ самыми популярными ΠΈΠ· Π½ΠΈΡ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ: IntelliJ IDEA, NetBeans, Eclipse. Для сСбя я Π²Ρ‹Π±ΠΈΡ€Π°ΡŽ IntelliJ IDEA. Она являСтся самой ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ Π½Π° ΠΌΠΎΠΉ взгляд, ΠΈ Ρ…ΠΎΡ‚ΡŒ ΠΎΠ½Π° ΠΈ платная, Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π±Π΅ΡΠΏΠ»Π°Ρ‚Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ которая называСтся Community. Π­Ρ‚ΠΎΠΉ вСрсии Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΏΠΎΠ»Π½Π΅ достаточно для изучСния основ Java. Π’ΠΎΠΎΠ±Ρ‰Π΅ΠΌ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² IntelliJ IDEA.

Π˜Ρ‚Π°ΠΊ, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, Π² поисковой строкС Π²Π²ΠΎΠ΄ΠΈΠΌ «Download IntelliJ IDEA Community» ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ этой ссылкС. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π²Π΅Ρ€ΡΠΈΡŽ ОБ ΠΈ ΠΊΠ°Ρ‡Π°Π΅ΠΌ Π²Π΅Ρ€ΡΠΈΡŽ Community.

java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π€ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚

Π’ установкС IntelliJ IDEA Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ Π²ΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ. На ΠΊΡ€Π°ΠΉΠ½ΠΈΠΉ случай Π½Π° ΡŽΡ‚ΡƒΠ±Π΅ Π΅ΡΡ‚ΡŒ мноТСство Π²ΠΈΠ΄Π΅ΠΎ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

ΠŸΠ΅Ρ€Π²Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π°ΡˆΡƒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π’ окошкС Π·Π°ΠΏΡƒΡΡ‚ΠΈΠ²ΡˆΠΈΠΉΡΡ IDE Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ New Project.

java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π€ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚

Π’ Π½ΠΎΠ²ΠΎΠΌ окошкС Π² Π»Π΅Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Java.

java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π€ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! Π’ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ окошкС, справа, Π²ΠΎΠ·Π»Π΅ надписи «Project SDK:» Π΄ΠΎΠ»ΠΆΠ½Π° находится вСрсия Java, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ установили вмСстС с JDK. Если Ρ‚Π°ΠΌ пусто, Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ JDK Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Для этого Π² Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ спискС Π½Π°ΠΆΠΌΠΈΡ‚Π΅ «Add JDK. « ΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ JDK, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ установлСн.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Next. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ окошкС, Π²Π²Π΅Ρ€Ρ…Ρƒ, ΠΏΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π³Π°Π»ΠΎΡ‡ΠΊΡƒ β€œCreate project from template” ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ β€œCommand Line App”. И снова Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Next.

java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π€ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚

Π”Π°Π»ΡŒΡˆΠ΅ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π£ мСня это Π±ΡƒΠ΄Π΅Ρ‚ Hello World, ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±Ρ‹Π»ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΎ Π»Π°Ρ‚ΠΈΠ½ΠΈΡ†Π΅ΠΉ, ΠΈ Π½Π° английском языкС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. ВсС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΠΌΠ΅Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, принято ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° английском языкС, ΠΈ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΎΠ³ΠΎ стиля, Ρ‡Ρ‚ΠΎ являСтся Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Ρ‚ΠΎΠ½ΠΎΠΌ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ.

ПослС ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π€ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚

ПослС этого Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ IDE, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡƒΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ создана ваша пСрвая, ΠΏΠΎΡ‡Ρ‚ΠΈ готовая консольная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.

Π­Ρ‚ΠΎ ΠΎΠΊΠ½ΠΎ, Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ 80-90%, Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ 100% Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, работая программистом.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ вашС ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, останСтся Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ строчку ΠΊΠΎΠ΄Π° System.out.print(«Hello world!»); ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅.

java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π€ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚

java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π€ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚

Π Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ

Π’ своСм ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ нСпонятных символов ΠΈ слов, Π½ΠΎ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ этапС Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ ΠΈΡ… ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΠΎΡΡ‚ΡŒ, ΠΏΠΎΠ·ΠΆΠ΅, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… частях, я расскаТу ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ…, ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹. На Π΄Π°Π½Π½ΠΎΠΌ этапС Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ это стандартныС ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ любого Java-прилоТСния, ΠΈ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… прилоТСниях эти ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ минимально.

ΠŸΡ€ΠΎΠΉΠ΄Π΅ΠΌΡΡ ΠΏΠΎ порядку:

Π€ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки <> Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° main ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽ Π½Π°Ρ‡Π°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ† Ρ‚Π΅Π»Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, вСсь ΠΊΠΎΠ΄ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ этими скобками. АналогичныС скобки Π΅ΡΡ‚ΡŒ ΠΈ Ρƒ класса Main.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ строка являСтся // write your code here однострочным ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ являСтся тСкст ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ игнорируСтся компилятором. По-этому с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π² ΠΊΠΎΠ΄Π΅ подсказки для сСбя ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ…, ΠΊΡ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ваш ΠΊΠΎΠ΄, ΠΈΠ»ΠΈ ΠΆΠ΅ для докумСнтирования вашСго ΠΊΠΎΠ΄Π°. БущСствуСт нСсколько Π²ΠΈΠ΄ΠΎΠ² ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², основными ΠΈΠ· Π½ΠΈΡ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ однострочный, ΠΈ многострочный.

ΠœΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠœΡ‹ просто располагаСм нСсколько строк ΠΌΠ΅ΠΆΠ΄Ρƒ символами /* ΠΈ */

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠ½Ρ†Π΅ стоит Ρ‚ΠΎΡ‡ΠΊΠ° с запятой, Π² языкС Java ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой.

На этом ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ. Автором ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ этого ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° являСтся Π•Π³ΠΎΡ€ ΠΈ всС ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»Π°ΡΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ слов ΡΠΎΡ…Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒ Π² ΠΏΠ΅Ρ€Π²ΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΈΠΏΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² Java.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Java Core

Java Core β€” это Ρ‚Π΅Ρ€ΠΌΠΈΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ Π² Ρ€Π°Π·Π½Ρ‹Ρ… контСкстах. Если ΠΎΠ½ встрСчаСтся Π² вакансиях Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° уровня Junior, Ρ‚ΠΎ ΠΏΠΎΠ΄ Π½ΠΈΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ подразумСваСтся Π±Π°Π·ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Π½ΠΈΠ΅ языка Java. Но компания Sun Microsystems, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ язык Java, опрСдСляСт Core Java ΠΊΠ°ΠΊ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π½Π° Java.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Ρ€ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, основанныС Π½Π° Java:

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ

Π―Π·Ρ‹ΠΊ Java Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π² 1995 Π³ΠΎΠ΄Ρƒ ДТСймсом Гослингом Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Sun Microsystems.

Π‘Π½Π°Ρ‡Π°Π»Π° язык назывался Oak Π² Ρ‡Π΅ΡΡ‚ΡŒ Π΄ΡƒΠ±Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ рос ΠΎΠΊΠΎΠ»ΠΎ офиса Гослинга ( oak Π² ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ с английского β€” Π΄ΡƒΠ±). Π—Π°Ρ‚Π΅ΠΌ язык ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π½ΠΎΠ²ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ β€” Green. Но Π² ΠΈΡ‚ΠΎΠ³Π΅ ΠΎΠ½ стал Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Java Π² Ρ‡Π΅ΡΡ‚ΡŒ ΠΊΠΎΡ„Π΅ с острова Π―Π²Π° Π² ИндонСзии (ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ языка читаСтся Β«Π΄ΠΆΠ°Π²Π°Β»).

java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π€ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Java разрабатывался для ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ тСлСвидСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Ρ€ΠΈΡ‚Π΅Π»ΠΈ взаимодСйствовали с происходящим Π½Π° экранС, Π½ΠΎ Π² Ρ‚ΠΎ врСмя ΠΎΠ½ Π±Ρ‹Π» слишком ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΌ для этой индустрии.

Π“Π΄Π΅ примСняСтся Java?

Java β€” это язык ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ назначСния. Π•Π³ΠΎ основной ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ: «Пиши ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, запускай Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎΒ», ΠΈΠ»ΠΈ WORA (Write Once, Run Anywhere). Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ скомпилированный (ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄) Java-ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½Π° всСх ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Java ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… Π±Π΅Π· нСобходимости ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ компиляции.

Java-прилоТСния ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ (Π½Π°Π±ΠΎΡ€ инструкций, выполняСмый Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной Java). JVM устанавливаСтся Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ прСдстоит Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Java-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. На Windows, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π΅Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π° Π½Π° Android JVM ΡƒΠΆΠ΅ Π²ΡˆΠΈΡ‚Π°.

Достоинство Ρ‚Π°ΠΊΠΎΠ³ΠΎ способа выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” это Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, Ρ‡Ρ‚ΠΎ ΠΈ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Java-прилоТСния Π½Π° Ρ‚Π°ΠΊΠΎΠΌ большом количСствС устройств.

БСйчас Java остаСтся ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ языком программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° Π² своих ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°Ρ…. Π’ΠΎΡ‚ Π³Π΄Π΅ ΠΎΠ½ примСняСтся:

Android. НСсмотря Π½Π° ΠΏΠΎΠΏΡƒΠ»ΡΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ Kotlin Π² послСднСС врСмя, Π½Π° Java написано ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Android.

Π‘Π΅Ρ€Π²Π΅Ρ€Π½Ρ‹Π΅ прилоТСния. Часто Π½Π° Java ΠΏΠΈΡˆΡƒΡ‚ΡΡ прилоТСния, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ интСрфСйса. Они ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для получСния, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° сСрвСрС.

ДСсктопныС прилоТСния. Π’ Ρ‚ΠΎΠΌ числС ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ IDE (интСгрированная срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” комплСкс ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… срСдств, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО) Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Π½Π° Java β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, IntelliJ IDEA, Eclipse, Netbeans.

Π’Π΅Π±-прилоТСния. НапримСр, большоС количСство RESTful-сСрвисов (REST β€” ΡΡ‚ΠΈΠ»ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для распрСдСлСнных систСм) ΠΈ сСрвлСтов (интСрфСйс Java, рСализация ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности сСрвСра) Π±Ρ‹Π»ΠΎ создано с использованиСм Java.

ВстраиваСмыС систСмы. ΠžΡ‚ Π±Π°Π½ΠΊΠΎΠΌΠ°Ρ‚ΠΎΠ², ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½Ρ‹Ρ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ² ΠΈ станков с ЧПУ Π΄ΠΎ Π±Ρ‹Ρ‚ΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ β€” Java ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ практичСски Π²Π΅Π·Π΄Π΅, ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±Π΅Ρ‰Π°Π»ΠΈ Π΅Π³ΠΎ создатСли.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅. Java Π½Π΅ Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Π² этой области, Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΌΠΎΠΆΠ΅Ρ‚.

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅: ΠšΠΎΠΌΡƒ ΠΈ для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ Java?

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° Java

Java Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ‚Ρ€ΠΎΠΉΠΊΡƒ языков ΠΏΠΎ индСксу TIOBE (индСкс, ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ языков программирования) ΡƒΠΆΠ΅ 20 Π»Π΅Ρ‚.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‡Π΅Ρ€Π΅Π· тСстированиС. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π΅ являСтся ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² языка, Π½ΠΎ созданиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования JUnit β€” это ΠΎΠ΄Π½ΠΎ ΠΈΠ· самых Π±ΠΎΠ»ΡŒΡˆΠΈΡ… достиТСний Java.

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅: КакиС Π²ΠΈΠ΄Ρ‹ тСстирования Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΈ Ρ‡Π΅ΠΌ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ тСстировщики?

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ООП позволяСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ бСзопасной, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ доступа Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ. Π’Π°ΠΊΠΆΠ΅ ООП ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ обслуТиваниС ΠΈ ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ старого ΠΊΠΎΠ΄Π°.

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ синтаксис. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, синтаксис Java Π½Π΅ Ρ‚Π°ΠΊ Π΄Ρ€ΡƒΠΆΠ΅Π»ΡŽΠ±Π΅Π½, ΠΊΠ°ΠΊ синтаксис Python. Однако ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Java происходит Π»Π΅Π³Ρ‡Π΅, Ρ‡Π΅ΠΌ C ΠΈΠ»ΠΈ C++, Ρ‡Ρ‚ΠΎ позволяСт Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ быстрСС Π΅Π³ΠΎ ΠΎΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ.

ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Если ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ спСцифичныС для ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚ΠΎ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ пСрСнСсти ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ»ΠΈ частично.

АвтоматичСскоС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ для управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Java Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π½Π΅ΠΉ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² Java Π½Π΅Ρ‚ риска Π·Π°Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ привСсти ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ.

ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ. Java позволяСт эффСктивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ врСмя процСссора, запуская ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

Π‘ΠΎΠ»ΡŒΡˆΠΎΠ΅ сообщСство. Помимо ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Oracle, Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ большоС сообщСство.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ части Java Core

Бинтаксис ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ конструкции Java

Бинтаксис Java Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ C ΠΈ C++, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ мСньшС Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… срСдств, Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ссли Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· си-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… языков, Ρ‚ΠΎ Π²Ρ‹ΡƒΡ‡ΠΈΡ‚ΡŒ Java Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π»Π΅Π³ΠΊΠΎ. Однако, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ C++, Java Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ являСтся строго ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ языком программирования.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Hello World Π½Π° Java:

public class MainClass <
public static void main(String[] args) <
System.out.println(Β«Hello, SkillFactory!Β»); // ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ β€œHello, SkillFactory!” Π² консоль
>
>

Ѐункция main() β€” это Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ β€” ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‚ΡΡŽΠ΄Π° начинаСтся Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.

Π’Π°ΠΊΠΆΠ΅ для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° Java Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ конструкции языка:

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (ООП)

БСйчас структурныС ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ программирования уходят Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ΅, Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΠ΅Ρ‚.

Для понимания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с понятиями класса, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ основныС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ООП: Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡŽ, наслСдованиС, ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ ΠΈ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡŽ.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ β€” это нСкоторая ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ Π² Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΌ пространствС, которая ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ состояниСм (поля класса) ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ (ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹). Класс β€” это описаниС Π΅Ρ‰Π΅ Π½Π΅ созданного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, шаблон, Π½Π° основС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.

Абстракция. Абстракция β€” это Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Ρ… характСристик ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ прСдставлСниС сущностСй Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡ€Π° Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

НаслСдованиС. Π­Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ООП, которая позволяСт ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ классы Π½Π° основС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡƒΡ‚Π΅ΠΌ наслСдования ΠΎΡ‚ Π½ΠΈΡ….

ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ООП, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ интСрфСйсом Π±Π΅Π· ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ устройствС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ. ΠžΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ классС. ΠŸΡ€ΠΈ этом внутрСнняя рСализация ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° скрываСтся, Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌ прСдоставляСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ интСрфСйс.

ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Java ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. НапримСр, Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅ выполняСтся Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· сСти, Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ β€” ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Β«Π±Π΅Π³ΡƒΠ½ΠΊΠ°Β» Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, интСрфСйс Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Β«ΠΏΠΎΠ΄Π²ΠΈΡΠ°Ρ‚ΡŒΒ» Π²ΠΎ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ, Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ класс, ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΎΡ‚ класса Thread ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ run() β€” Π² Π½Π΅ΠΌ прописываСтся Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΡ‚ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ. НиТС β€” ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΎΠ³ΠΎ класса:

public class MyThread extends Thread <
@Override
public void run() <
System.out.println(«НазваниС ΠΏΠΎΡ‚ΠΎΠΊΠ°: Β» + getName());
>
>

Для запуска ΠΏΠΎΡ‚ΠΎΠΊΠ° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр класса MyThread ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° start().

public class Main <
public static void main(String[] args) <
for (int i = 0; i list = new ArrayList<>(); // ΠŸΠΎΠ΄ΡΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ компилятору, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² спискС
list.add(Β«Hello, Β«);
list.add(β€œSkillFactory!”);
for (Object str : list) <
System.out.print(str); // Π—Π΄Π΅ΡΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° ΡƒΠΆΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ
>
>
>

ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ (JCF)

ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, хранящий Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… элСмСнтов ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для опСрирования Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

ΠŸΠ°ΠΊΠ΅Ρ‚ java.util содСрТит Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ Java Collection Framework (JCF). Она позволяСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с мноТСствами, Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ (ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ структура Π΄Π°Π½Π½Ρ‹Ρ… для хранСния ΠΏΠ°Ρ€ Β«ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β»; ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ускорСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ), Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π²ΠΈΠ΄Π°ΠΌΠΈ списков ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

ΠžΡΠ½ΠΎΠ²Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ интСрфСйсы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания собствСнных Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ интСрфСйс опрСдСляСт Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. К интСрфСйсам ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ относятся Collection, Set, SortedSet, List, Map, SortedMap, Queue. Π’Π°ΠΊΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ встроСнныС классы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: ArrayList, LinkedList, HashSet, TreeSet, HashMap, TreeMap.

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (Exceptions)

Π’ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ошибок ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ называСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ.

ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² Java происходит с использованиСм ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов try, catch ΠΈ finally.

Если программист ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ Π±Π»ΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Π΅ΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ эту Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π² Π±Π»ΠΎΠΊ try. Π’ Π±Π»ΠΎΠΊΠ΅ catch Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Π‘Π»ΠΎΠΊ finally являСтся Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Π½ΠΎ Ссли ΠΎΠ½ Π΅ΡΡ‚ΡŒ, Ρ‚ΠΎ выполняСтся Π² любом случаС нСзависимо ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² выполнСния Π±Π»ΠΎΠΊΠ° try.

Π•ΡΡ‚ΡŒ Π΅Ρ‰Ρ‘ 2 ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слова, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ: throw ΠΈ throws. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ throw ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΠ·Π±ΡƒΠ΄ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Π²Ρ‹Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово throws ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² сигнатурС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для прСдупрСТдСния компилятора ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов throw ΠΈ throws:

public String input() throws SomeException < // ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ SomeException
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String s = null;
try < // ΠΌΠ΅Ρ‚ΠΎΠ΄ readLine() ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°
s = reader.readLine();
// ΠΊΠΎΠ΄ ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ IOException
> catch (IOException e) <
System.out.println(e.getMessage());
// Π² Π±Π»ΠΎΠΊΠ΅ finally Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΠΏΠΎΡ‚ΠΎΠΊ чтСния
>
if (s.equals(«»)) <
// допустим, пустая строка ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, поэтому Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ, выбросив ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова throw
throw new SomeException(Β«String can not be empty!Β»);
>
return s; >

ΠŸΠΎΡ‚ΠΎΠΊΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°

ΠšΠ»ΡŽΡ‡Π΅Π²Π°Ρ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ java.io. ΠŸΠΎΡ‚ΠΎΠΊ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ java.io осущСствляСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ², ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

ΠŸΠΎΡ‚ΠΎΠΊΠΈ Π² Java ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для чтСния ΠΈ записи Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»ΠΎΠ², Π²Π²ΠΎΠ΄Π° с консоли.

БущСствуСт Π΄Π²Π° Ρ‚ΠΈΠΏΠ° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΏΠΎ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ:

По Ρ‚ΠΈΠΏΡƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΈ дСлятся Π½Π° Π΄Π²Π° Ρ‚ΠΈΠΏΠ°:

Swing

Swing β€” это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для создания графичСского интСрфСйса для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° языкС Java. Она ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания лСгковСсных ΠΈ платформонСзависимых ΠΎΠΊΠΎΠ½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Swing, Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Java, Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Sun Microsystems.

АрхитСктура Swing Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ программист ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ look and feel прилоТСния, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ внСшний Π²ΠΈΠ΄ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ….

По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Ρ€Π°Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ AWT Swing прСдоставляСт Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ€ Π³ΠΈΠ±ΠΊΠΈΡ… интСрфСйсных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Π’Π°ΠΊΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Swing Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ для кроссплатформСнной Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Java Core

java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π€ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚

java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π€ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚

java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π€ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚

Java β€” соврСмСнный язык программирования высокого уровня, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ ΠΈ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ Π² 1995 Π³ΠΎΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Sun Microsystems. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ создавался для программирования Π±Ρ‹Ρ‚ΠΎΠ²Ρ‹Ρ… элСктронных устройств. Однако с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° появлСния фактичСски ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ клиСнтских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ сСрвСрного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

По ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Π½Π° август 2020 Π³ΠΎΠ΄Π° Java Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ мСсто Π² Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π΅ самых популярных языков программирования. На сайтах для поиска Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ мноТСство вакансий ΠΏΠΎ запросу Β«Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΒ». Π’ спискС Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΡΠΎΠΈΡΠΊΠ°Ρ‚Π΅Π»ΡŽ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, присутствуСт ΠΏΡƒΠ½ΠΊΡ‚ Β«Π·Π½Π°Π½ΠΈΠ΅ Java CoreΒ» ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Β«ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Π½ΠΈΠ΅ Java CoreΒ».

Core Java β€” Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Sun, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для обозначСния Java Standard Edition (Java SE), стандартной вСрсии ΠΈ Π½Π°Π±ΠΎΡ€Π° связанных Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Java VM, CORBA ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΡΠ½ΠΎΡΡ‚ΡŒ вносит ΠΊΠ½ΠΈΠ³Π° с ΠΎΠ΄Π½ΠΎΠΈΠΌΡ‘Π½Π½Ρ‹ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π½Π° английском языкС. Π’ русском ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ ΠΎΠ½Π° называСтся Β«Java. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° профСссионала. Π’ΠΎΠΌ 1. ΠžΡΠ½ΠΎΠ²Ρ‹Β», Π°Π²Ρ‚ΠΎΡ€ β€” Π₯орстманн КСй Π‘. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅ΠΌ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Β«Java 8. ПолноС руководство» Π“Π΅Ρ€Π±Π΅Ρ€Ρ‚Π° Π¨ΠΈΠ»Π΄Ρ‚Π°.

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΎΠ±Π·ΠΎΡ€Π½ΠΎ рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ части Java Core:

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ конструкции

Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ‹Ρ‚ программирования Π½Π° Π‘/C++, Ρ‚ΠΎ знакомство с Java ΠΏΡ€ΠΎΠΉΠ΄Ρ‘Ρ‚ Π»Π΅Π³ΠΊΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ синтаксис этих языков ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ.

Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ начинаСтся с написания ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π²Ρ€ΠΎΠ΄Π΅ Hello World, выводящСй Π² консоль строку привСтствия. Π”Π°Π»Π΅Π΅ Π² Ρ€Π°Π·Π½ΠΎΠΉ стСпСни изучаСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Β«Π΄ΠΆΠ΅Π½Ρ‚Π»ΡŒΠΌΠ΅Π½ΡΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ€Β»:

Π’ этот Ρ€Π°Π·Π΄Π΅Π» Ρ‚Π°ΠΊΠΆΠ΅ входят Π½Π°Π²Ρ‹ΠΊΠΈ ΠΏΠΎ установкС ΠΈ настройкС JDK, Π²Ρ‹Π·ΠΎΠ²Ρƒ компилятора ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ JVM Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС.

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΠΎ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ конструкциям ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² упомянутых Π²Ρ‹ΡˆΠ΅ ΠΊΠ½ΠΈΠ³Π°Ρ…:

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (ООП) Π² настоящСС врСмя Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ вытСсняСт «структурныС» ΠΈ Β«ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹Π΅Β» ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ Π² 1970-Ρ… Π³ΠΎΠ΄Π°Ρ…, фактичСски ΡΡ‚Π°Π½ΠΎΠ²ΡΡΡŒ Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΎΠΉ. Java β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык, ΠΈ для Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ использования Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Π»Π°Π΄Π΅Ρ‚ΡŒ ООП. Для ООП трСбуСтся ΠΈΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π· ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ, Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌ для ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹Ρ… языков.

Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ООП начинаСтся с рассмотрСния класса β€” элСмСнта, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ основу Java. Поля класса содСрТат Π΄Π°Π½Π½Ρ‹Π΅, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ β€” ΠΊΠΎΠ΄. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ значСния. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ β€” особыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π½Π° основании классов. Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ β€” ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ООП β€” ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ связываниС ΠΈ сокрытиС. Π˜Π·ΡƒΡ‡Π°ΡŽΡ‚ΡΡ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²: public, protected, private. Вводится понятиС ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π—Π°Ρ‚Π΅ΠΌ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ понятия ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ наслСдования ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ°. Π Π°Π·ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ статичСскими полями ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΈ нСстатичСскими. ΠžΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ абстрактныС классы ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, вводится понятиС интСрфСйса.

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΠΎ этому Ρ€Π°Π·Π΄Π΅Π»Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΊΠ½ΠΈΠ³Π°Ρ…:

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Swing

Swing β€” это Π½Π°Π±ΠΎΡ€ классов для создания графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (GUI) Π² Java-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…. Π’ сравнСнии с Ρ€Π°Π½Π΅Π΅ использовавшСйся Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ AWT, Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Swing Π΅ΡΡ‚ΡŒ ряд прСимущСств:

Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Swing начинаСтся с написания пустого ΠΎΠΊΠ½Π° Π½Π° основании класса JFrame. Π—Π°Ρ‚Π΅ΠΌ изучаСтся Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ JPanel, JLabel, JButton ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ java.awt, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ элСмСнтов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ BorderLayout ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠ², ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠ»ΠΈΠΊΠΎΠ² ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΈ ΠΊΠ»ΠΈΠΊΠΎΠ² ΠΌΡ‹ΡˆΠΈ ΠΏΠΎ элСмСнту, Π° Ρ‚Π°ΠΊΠΆΠ΅ рисованиС Π½Π° JPanel.

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΠΎ Ρ€Π°Π·Π΄Π΅Π»Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΊΠ½ΠΈΠ³Π°Ρ…:

ΠžΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

ΠžΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΡ β€” это ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹. Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ классы, интСрфСйсы ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π³Π΄Π΅ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΡƒΠΊΠ°Π·Π°Π½ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ обобщСния, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². ΠšΠ»Π°ΡΡΡ‹, интСрфСйсы ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½Ρ‹ΠΌΠΈ.

ΠžΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ бСзопасный ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ читаСтся Π»Π΅Π³Ρ‡Π΅, Ρ‡Π΅ΠΌ ΠΊΠΎΠ΄, ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ° Object ΠΈ привСдСниями Ρ‚ΠΈΠΏΠΎΠ². ΠžΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² классах ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ArrayList.

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΠΎ этому Ρ€Π°Π·Π΄Π΅Π»Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΊΠ½ΠΈΠ³Π°Ρ…:

ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ (JCF)

ΠŸΠ°ΠΊΠ΅Ρ‚ java.util содСрТит, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ (Java Collection Framework ΠΈΠ»ΠΈ JCF), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с мноТСствами, Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ, Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π²ΠΈΠ΄Π°ΠΌΠΈ списков ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, способный Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… элСмСнтов. Она Ρ‚Π°ΠΊΠΆΠ΅ содСрТит ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ прСимущСства классов JCF ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

ΠžΡΠ½ΠΎΠ²Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ интСрфСйсы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания собствСнных ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ интСрфСйс ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅:

РазумССтся, интСрфСйсы Π±Ρ‹Π»ΠΈ Π±Ρ‹ «пустыми», Ссли Π±Ρ‹ Π½Π΅ сущСствовало встроСнных классов, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΠΎ этому Ρ€Π°Π·Π΄Π΅Π»Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΊΠ½ΠΈΠ³Π°Ρ…:

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (Exception)

Π’ ΠΌΠΈΡ€Π΅ программирования Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ошибок ΠΈ Π½Π΅ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½Π½Ρ‹Ρ… ситуаций ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ. Они ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… дСйствий ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, отсутствии Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ рСсурса Π½Π° дискС ΠΈΠ»ΠΈ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ соСдинСния с сСрвСром ΠΏΠΎ сСти. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки программирования ΠΈΠ»ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ использованиС API. Π’Π°ΡˆΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Ρ‡Ρ‘Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π² Ρ‚Π°ΠΊΠΎΠΉ ситуации. Для этого Π² Java прСдусмотрСн ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.

ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки Π² процСссС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ JVM создаёт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΈΠ· ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Java β€” мноТСства Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций, унаслСдованных ΠΎΡ‚ ΠΎΠ±Ρ‰Π΅Π³ΠΎ Β«ΠΏΡ€Π΅Π΄ΠΊΠ°Β» β€” класса Throwable. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° throw. ΠŸΡ€ΠΈ этом Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ основного ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прСрываСтся, Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ JVM пытаСтся Π½Π°ΠΉΡ‚ΠΈ способ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

Π‘Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… прСдусмотрСна ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² Java, ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструкций try<>catch, try<>catch<>finally, try<>finally<>.

ΠŸΡ€ΠΈ Π²ΠΎΠ·Π±ΡƒΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Π±Π»ΠΎΠΊΠ΅ try ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ищСтся Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π·Π° Π½ΠΈΠΌ Π±Π»ΠΎΠΊΠ΅ catch. Если Π² catch Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ этого Ρ‚ΠΈΠΏΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ Π½Π΅ΠΌΡƒ. Если Π½Π΅Ρ‚, Ρ‚ΠΎ JVM ΠΈΡ‰Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ этого Ρ‚ΠΈΠΏΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΉΠ΄Π΅Π½ подходящий catch.

ПослС выполнСния Π±Π»ΠΎΠΊΠ° catch ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаётся Π² Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ finally. Если подходящий Π±Π»ΠΎΠΊ catch Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½, JVM останавливаСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ стСк Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² (stack trace), Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΏΠ΅Ρ€Π΅Π΄ этим ΠΊΠΎΠ΄ Π±Π»ΠΎΠΊΠ° finally ΠΏΡ€ΠΈ Π΅Π³ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ.

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΠΎ этому Ρ€Π°Π·Π΄Π΅Π»Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΊΠ½ΠΈΠ³Π°Ρ…:

ΠŸΠΎΡ‚ΠΎΠΊΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°

Основная Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° сосрСдоточСна Π² классах ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° java.io.

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ здСсь являСтся понятиС ΠΏΠΎΡ‚ΠΎΠΊΠ°. Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ этот Ρ‚Π΅Ρ€ΠΌΠΈΠ½ описываСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ Π²Π²ΠΎΠ΄ΠΎΠΌ-Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ΅ (stream), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для чтСния ΠΈΠ»ΠΈ записи ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ (Ρ„Π°ΠΉΠ»ΠΎΠ², сСтСвых сокСтов, консоли ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅).

ΠŸΠΎΡ‚ΠΎΠΊ связан с Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ физичСским устройством с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ систСмы Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° Java. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½ ΠΏΠΎΡ‚ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ связан с Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ происходит Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ запись Π² Ρ„Π°ΠΉΠ». Или ΠΏΠΎΡ‚ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ связан с сСтСвым сокСтом, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ сСти. ВсС эти Π·Π°Π΄Π°Ρ‡ΠΈ β€” Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΎΠ±ΠΌΠ΅Π½ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ сСти, Π²Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄ Π² консоли β€” Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ Π² Java с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ².

ΠžΠ±ΡŠΠ΅ΠΊΡ‚, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, называСтся ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Π²Π²ΠΎΠ΄Π°, Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ β€” ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Π²Ρ‹Π²ΠΎΠ΄Π°. НапримСр, Ссли Π½Π°Π΄ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ содСрТимоС Ρ„Π°ΠΉΠ»Π°, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΠΎΡ‚ΠΎΠΊ Π²Π²ΠΎΠ΄Π°, Π° Ссли Π½Π°Π΄ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ» β€” ΠΏΠΎΡ‚ΠΎΠΊ Π²Ρ‹Π²ΠΎΠ΄Π°.

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΠΎ этому Ρ€Π°Π·Π΄Π΅Π»Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΊΠ½ΠΈΠ³Π°Ρ…:

ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ языков программирования ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ‚Π°ΠΊΡƒΡŽ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ, ΠΈ Java Π½Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ многопоточности ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Если Ρƒ нас, допустим, графичСскоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ посылаСт запрос ΠΊ сСрвСру ΠΈΠ»ΠΈ считываСт ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Ρ‚ΠΎ Π±Π΅Π· многопоточности Ρƒ нас Π±Ρ‹ блокировался графичСский интСрфСйс Π½Π° врСмя выполнСния Π·Π°Π΄Π°Ρ‡ΠΈ. А благодаря многопоточности ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ запроса ΠΈΠ»ΠΈ Π»ΡŽΠ±ΡƒΡŽ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Β«Π΄ΠΎΠ»Π³ΠΎΠΈΠ³Ρ€Π°ΡŽΡ‰ΡƒΡŽΒ» Π·Π°Π΄Π°Ρ‡Ρƒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ соврСмСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ нСмыслимы Π±Π΅Π· многопоточности.

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ двумя способами:

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΠΎ этому Ρ€Π°Π·Π΄Π΅Π»Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΊΠ½ΠΈΠ³Π°Ρ…:

Если вас заинтСрСсовал язык программирования Java, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с ΠΌΠΎΠΈΠΌΠΈ ΡΡ‚Π°Ρ‚ΡŒΡΠΌΠΈ:

java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. Π€ΠΎΡ‚ΠΎ java core Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚

Java β€” соврСмСнный язык программирования высокого уровня, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ ΠΈ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ Π² 1995 Π³ΠΎΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Sun Microsystems. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ создавался для программирования Π±Ρ‹Ρ‚ΠΎΠ²Ρ‹Ρ… элСктронных устройств. Однако с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° появлСния фактичСски ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ клиСнтских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ сСрвСрного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

По ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Π½Π° август 2020 Π³ΠΎΠ΄Π° Java Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ мСсто Π² Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π΅ самых популярных языков программирования. На сайтах для поиска Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ мноТСство вакансий ΠΏΠΎ запросу Β«Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΒ». Π’ спискС Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΡΠΎΠΈΡΠΊΠ°Ρ‚Π΅Π»ΡŽ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, присутствуСт ΠΏΡƒΠ½ΠΊΡ‚ Β«Π·Π½Π°Π½ΠΈΠ΅ Java CoreΒ» ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Β«ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Π½ΠΈΠ΅ Java CoreΒ».

Core Java β€” Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Sun, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для обозначСния Java Standard Edition (Java SE), стандартной вСрсии ΠΈ Π½Π°Π±ΠΎΡ€Π° связанных Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Java VM, CORBA ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΡΠ½ΠΎΡΡ‚ΡŒ вносит ΠΊΠ½ΠΈΠ³Π° с ΠΎΠ΄Π½ΠΎΠΈΠΌΡ‘Π½Π½Ρ‹ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π½Π° английском языкС. Π’ русском ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ ΠΎΠ½Π° называСтся Β«Java. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° профСссионала. Π’ΠΎΠΌ 1. ΠžΡΠ½ΠΎΠ²Ρ‹Β», Π°Π²Ρ‚ΠΎΡ€ β€” Π₯орстманн КСй Π‘. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅ΠΌ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Β«Java 8. ПолноС руководство» Π“Π΅Ρ€Π±Π΅Ρ€Ρ‚Π° Π¨ΠΈΠ»Π΄Ρ‚Π°.

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΎΠ±Π·ΠΎΡ€Π½ΠΎ рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ части Java Core:

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ конструкции

Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ‹Ρ‚ программирования Π½Π° Π‘/C++, Ρ‚ΠΎ знакомство с Java ΠΏΡ€ΠΎΠΉΠ΄Ρ‘Ρ‚ Π»Π΅Π³ΠΊΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ синтаксис этих языков ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ.

Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ начинаСтся с написания ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π²Ρ€ΠΎΠ΄Π΅ Hello World, выводящСй Π² консоль строку привСтствия. Π”Π°Π»Π΅Π΅ Π² Ρ€Π°Π·Π½ΠΎΠΉ стСпСни изучаСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Β«Π΄ΠΆΠ΅Π½Ρ‚Π»ΡŒΠΌΠ΅Π½ΡΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ€Β»:

Π’ этот Ρ€Π°Π·Π΄Π΅Π» Ρ‚Π°ΠΊΠΆΠ΅ входят Π½Π°Π²Ρ‹ΠΊΠΈ ΠΏΠΎ установкС ΠΈ настройкС JDK, Π²Ρ‹Π·ΠΎΠ²Ρƒ компилятора ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ JVM Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС.

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΠΎ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ конструкциям ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² упомянутых Π²Ρ‹ΡˆΠ΅ ΠΊΠ½ΠΈΠ³Π°Ρ…:

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (ООП) Π² настоящСС врСмя Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ вытСсняСт «структурныС» ΠΈ Β«ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹Π΅Β» ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ Π² 1970-Ρ… Π³ΠΎΠ΄Π°Ρ…, фактичСски ΡΡ‚Π°Π½ΠΎΠ²ΡΡΡŒ Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΎΠΉ. Java β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык, ΠΈ для Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ использования Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Π»Π°Π΄Π΅Ρ‚ΡŒ ООП. Для ООП трСбуСтся ΠΈΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π· ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ, Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌ для ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹Ρ… языков.

Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ООП начинаСтся с рассмотрСния класса β€” элСмСнта, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ основу Java. Поля класса содСрТат Π΄Π°Π½Π½Ρ‹Π΅, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ β€” ΠΊΠΎΠ΄. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ значСния. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ β€” особыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π½Π° основании классов. Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ β€” ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ООП β€” ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ связываниС ΠΈ сокрытиС. Π˜Π·ΡƒΡ‡Π°ΡŽΡ‚ΡΡ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²: public, protected, private. Вводится понятиС ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π—Π°Ρ‚Π΅ΠΌ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ понятия ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ наслСдования ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ°. Π Π°Π·ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ статичСскими полями ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΈ нСстатичСскими. ΠžΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ абстрактныС классы ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, вводится понятиС интСрфСйса.

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΠΎ этому Ρ€Π°Π·Π΄Π΅Π»Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΊΠ½ΠΈΠ³Π°Ρ…:

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Swing

Swing β€” это Π½Π°Π±ΠΎΡ€ классов для создания графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (GUI) Π² Java-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…. Π’ сравнСнии с Ρ€Π°Π½Π΅Π΅ использовавшСйся Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ AWT, Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Swing Π΅ΡΡ‚ΡŒ ряд прСимущСств:

Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Swing начинаСтся с написания пустого ΠΎΠΊΠ½Π° Π½Π° основании класса JFrame. Π—Π°Ρ‚Π΅ΠΌ изучаСтся Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ JPanel, JLabel, JButton ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ java.awt, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ элСмСнтов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ BorderLayout ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠ², ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠ»ΠΈΠΊΠΎΠ² ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΈ ΠΊΠ»ΠΈΠΊΠΎΠ² ΠΌΡ‹ΡˆΠΈ ΠΏΠΎ элСмСнту, Π° Ρ‚Π°ΠΊΠΆΠ΅ рисованиС Π½Π° JPanel.

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΠΎ Ρ€Π°Π·Π΄Π΅Π»Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΊΠ½ΠΈΠ³Π°Ρ…:

ΠžΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

ΠžΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΡ β€” это ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹. Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ классы, интСрфСйсы ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π³Π΄Π΅ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΡƒΠΊΠ°Π·Π°Π½ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ обобщСния, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². ΠšΠ»Π°ΡΡΡ‹, интСрфСйсы ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½Ρ‹ΠΌΠΈ.

ΠžΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ бСзопасный ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ читаСтся Π»Π΅Π³Ρ‡Π΅, Ρ‡Π΅ΠΌ ΠΊΠΎΠ΄, ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ° Object ΠΈ привСдСниями Ρ‚ΠΈΠΏΠΎΠ². ΠžΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² классах ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ArrayList.

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΠΎ этому Ρ€Π°Π·Π΄Π΅Π»Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΊΠ½ΠΈΠ³Π°Ρ…:

ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ (JCF)

ΠŸΠ°ΠΊΠ΅Ρ‚ java.util содСрТит, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ (Java Collection Framework ΠΈΠ»ΠΈ JCF), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с мноТСствами, Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ, Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π²ΠΈΠ΄Π°ΠΌΠΈ списков ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, способный Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… элСмСнтов. Она Ρ‚Π°ΠΊΠΆΠ΅ содСрТит ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ прСимущСства классов JCF ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

ΠžΡΠ½ΠΎΠ²Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ интСрфСйсы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания собствСнных ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ интСрфСйс ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅:

РазумССтся, интСрфСйсы Π±Ρ‹Π»ΠΈ Π±Ρ‹ «пустыми», Ссли Π±Ρ‹ Π½Π΅ сущСствовало встроСнных классов, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΠΎ этому Ρ€Π°Π·Π΄Π΅Π»Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΊΠ½ΠΈΠ³Π°Ρ…:

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (Exception)

Π’ ΠΌΠΈΡ€Π΅ программирования Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ошибок ΠΈ Π½Π΅ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½Π½Ρ‹Ρ… ситуаций ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ. Они ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… дСйствий ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, отсутствии Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ рСсурса Π½Π° дискС ΠΈΠ»ΠΈ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ соСдинСния с сСрвСром ΠΏΠΎ сСти. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ошибки программирования ΠΈΠ»ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ использованиС API. Π’Π°ΡˆΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Ρ‡Ρ‘Ρ‚ΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π² Ρ‚Π°ΠΊΠΎΠΉ ситуации. Для этого Π² Java прСдусмотрСн ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.

ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки Π² процСссС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ JVM создаёт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΈΠ· ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Java β€” мноТСства Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций, унаслСдованных ΠΎΡ‚ ΠΎΠ±Ρ‰Π΅Π³ΠΎ Β«ΠΏΡ€Π΅Π΄ΠΊΠ°Β» β€” класса Throwable. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° throw. ΠŸΡ€ΠΈ этом Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ основного ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прСрываСтся, Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ JVM пытаСтся Π½Π°ΠΉΡ‚ΠΈ способ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

Π‘Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… прСдусмотрСна ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² Java, ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструкций try<>catch, try<>catch<>finally, try<>finally<>.

ΠŸΡ€ΠΈ Π²ΠΎΠ·Π±ΡƒΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Π±Π»ΠΎΠΊΠ΅ try ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ищСтся Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π·Π° Π½ΠΈΠΌ Π±Π»ΠΎΠΊΠ΅ catch. Если Π² catch Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ этого Ρ‚ΠΈΠΏΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ Π½Π΅ΠΌΡƒ. Если Π½Π΅Ρ‚, Ρ‚ΠΎ JVM ΠΈΡ‰Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ этого Ρ‚ΠΈΠΏΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΉΠ΄Π΅Π½ подходящий catch.

ПослС выполнСния Π±Π»ΠΎΠΊΠ° catch ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаётся Π² Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ finally. Если подходящий Π±Π»ΠΎΠΊ catch Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½, JVM останавливаСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ стСк Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² (stack trace), Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΏΠ΅Ρ€Π΅Π΄ этим ΠΊΠΎΠ΄ Π±Π»ΠΎΠΊΠ° finally ΠΏΡ€ΠΈ Π΅Π³ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ.

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΠΎ этому Ρ€Π°Π·Π΄Π΅Π»Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΊΠ½ΠΈΠ³Π°Ρ…:

ΠŸΠΎΡ‚ΠΎΠΊΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°

Основная Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° сосрСдоточСна Π² классах ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° java.io.

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ здСсь являСтся понятиС ΠΏΠΎΡ‚ΠΎΠΊΠ°. Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ этот Ρ‚Π΅Ρ€ΠΌΠΈΠ½ описываСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ Π²Π²ΠΎΠ΄ΠΎΠΌ-Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ΅ (stream), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для чтСния ΠΈΠ»ΠΈ записи ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ (Ρ„Π°ΠΉΠ»ΠΎΠ², сСтСвых сокСтов, консоли ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅).

ΠŸΠΎΡ‚ΠΎΠΊ связан с Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ физичСским устройством с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ систСмы Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° Java. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½ ΠΏΠΎΡ‚ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ связан с Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ происходит Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ запись Π² Ρ„Π°ΠΉΠ». Или ΠΏΠΎΡ‚ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ связан с сСтСвым сокСтом, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ сСти. ВсС эти Π·Π°Π΄Π°Ρ‡ΠΈ β€” Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΎΠ±ΠΌΠ΅Π½ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ сСти, Π²Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄ Π² консоли β€” Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ Π² Java с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ².

ΠžΠ±ΡŠΠ΅ΠΊΡ‚, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, называСтся ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Π²Π²ΠΎΠ΄Π°, Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ β€” ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Π²Ρ‹Π²ΠΎΠ΄Π°. НапримСр, Ссли Π½Π°Π΄ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ содСрТимоС Ρ„Π°ΠΉΠ»Π°, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΠΎΡ‚ΠΎΠΊ Π²Π²ΠΎΠ΄Π°, Π° Ссли Π½Π°Π΄ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ» β€” ΠΏΠΎΡ‚ΠΎΠΊ Π²Ρ‹Π²ΠΎΠ΄Π°.

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΠΎ этому Ρ€Π°Π·Π΄Π΅Π»Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΊΠ½ΠΈΠ³Π°Ρ…:

ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ языков программирования ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ‚Π°ΠΊΡƒΡŽ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ, ΠΈ Java Π½Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ многопоточности ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Если Ρƒ нас, допустим, графичСскоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ посылаСт запрос ΠΊ сСрвСру ΠΈΠ»ΠΈ считываСт ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Ρ‚ΠΎ Π±Π΅Π· многопоточности Ρƒ нас Π±Ρ‹ блокировался графичСский интСрфСйс Π½Π° врСмя выполнСния Π·Π°Π΄Π°Ρ‡ΠΈ. А благодаря многопоточности ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ запроса ΠΈΠ»ΠΈ Π»ΡŽΠ±ΡƒΡŽ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Β«Π΄ΠΎΠ»Π³ΠΎΠΈΠ³Ρ€Π°ΡŽΡ‰ΡƒΡŽΒ» Π·Π°Π΄Π°Ρ‡Ρƒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ соврСмСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ нСмыслимы Π±Π΅Π· многопоточности.

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ двумя способами:

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΠΎ этому Ρ€Π°Π·Π΄Π΅Π»Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΊΠ½ΠΈΠ³Π°Ρ…:

Если вас заинтСрСсовал язык программирования Java, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с ΠΌΠΎΠΈΠΌΠΈ ΡΡ‚Π°Ρ‚ΡŒΡΠΌΠΈ:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *