Π”ΠΈΠΏΠ»ΠΎΠΌΡ‹, курсовыС, Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚Ρ‹, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅...
Брочная ΠΏΠΎΠΌΠΎΡ‰ΡŒ Π² ΡƒΡ‡Ρ‘Π±Π΅

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ слов

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π―Π·Ρ‹ΠΊ программирования Java Π½Π΅ ΠΏΠΎΡ…ΠΎΠΆ Π½ΠΈ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π½Π΅. Он Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… Π² WWW посрСдством Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ². Π’ Π½Π°ΡΡ‚оящСС врСмя Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ имССтся Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. Π’ ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Java. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, хранящиСся Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡ΠΊΠ°Ρ… Π·Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡˆΠ°Ρ€Π°, ΠΈ, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² Π½Π° ΡΡΡ‹Π»ΠΊΠ΅, Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ слов (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚

Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… выполнСния курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сортировщика ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ. Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ языка программирования прСдлагаСтся Java. Java ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ прСимущСства ΠΊΠ°ΠΊ:

язык программирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½, Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя довольно прост для освоСния;

ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ получаСтся автоматичСски пСрСносимым ΠΌΠ΅ΠΆΠ΄Ρƒ мноТСством ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм;

Π·Π° ΡΡ‡Π΅Ρ‚ встроСнной систСмы сборки мусора программист освобоТдаСтся ΠΎΡ‚ Π½Π΅ΠΎΠ±Ρ…одимости явного управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ;

Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ достигнута высокая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ (быстрый ΠΎΡ‚ΠΊΠ»ΠΈΠΊ Π½Π° Π²Π²ΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ);

ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π»Π΅Π³ΠΊΠΎ сопровоТдаСтся ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ицируСтся, Ρ‚.ΠΊ. ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹ с ΡΠ΅Ρ‚ΠΈ.

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

Π“Π»Π°Π²Π° 1. ОписаниС языка программирования Java

1.1 ΠžΠ±Ρ‰ΠΈΠ΅ характСрисики Java

1.2 Бвойства Java, ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€

1.3 ΠΠ°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ

1.4 ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

1.5 Базовая систСма Java

Π“Π»Π°Π²Π° 2. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ поиска ΠΏΠΎ ΡΠ»ΠΎΠ²Π°Ρ€ΡŽ

2.1 ΠžΠ±Ρ‰ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

2.2 Код ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… источников

Данная Ρ€Π°Π±ΠΎΡ‚Π° посвящСна ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· ΡΠ°ΠΌΡ‹Ρ… пСрспСктивных Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡˆΠ½ΠΈΠΉ дСнь языков программирования — языку «Java». Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ «Java» ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· прСувСличСния Π½Π°Π·Π²Π°Ρ‚ΡŒ Ρ€Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π² ΠΈΠ½Π΄ΡƒΡΡ‚Ρ€ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ PHP, C++ ΠΈ Ρ‚. Π΄. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Java Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ‹Π³ΠΎΠ΄Π½Π΅Π΅. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ рассматриваСтся Π½ΠΈΠΆΠ΅. Новизна состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π½Π΅Π΅ Π½Π΅ Π±Ρ‹Π»Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сортировки Π½Π° Π΄Π°Π½Π½ΠΎΠΌ языкС ΠΈ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ.

Для осущСствлСния Π·Π°Π΄Π°Ρ‡ΠΈ Π±Ρ‹Π» ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π”Π°Π»Π΅Π΅ этот Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π±Ρ‹Π» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Java.

Π“Π»Π°Π²Π° 1. ОписаниС языка программирования Java

1.1 ΠžΠ±Ρ‰ΠΈΠ΅ характСристики Java

Для написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ сортировщика Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ язык Java. Java — ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Sun Microsystems с 1991 Π³ΠΎΠ΄Π° ΠΈ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ 23 ΠΌΠ°Ρ 1995 Π³ΠΎΠ΄Π°. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ язык программирования назывался Oak (James Gosling) ΠΈ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚ывался для Π±Ρ‹Ρ‚ΠΎΠ²ΠΎΠΉ элСктроники, Π½ΠΎ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡ‚Π²ΠΈΠΈ Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ Π² Java ΠΈ ΡΡ‚Π°Π» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для написания Π°ΠΏΠΏΠ»Π΅Ρ‚ΠΎΠ², ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

Π―Π·Ρ‹ΠΊ программирования Java Π½Π΅ ΠΏΠΎΡ…ΠΎΠΆ Π½ΠΈ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π½Π΅. Он Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… Π² WWW посрСдством Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ². Π’ Π½Π°ΡΡ‚оящСС врСмя Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ имССтся Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. Π’ ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Java. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, хранящиСся Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡ΠΊΠ°Ρ… Π·Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡˆΠ°Ρ€Π°, ΠΈ, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² Π½Π° ΡΡΡ‹Π»ΠΊΠ΅, Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Java-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π° Ρ‡Π΅Ρ€Π΅Π· ΡΠ΅Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° Π½Π° Π²Π°ΡˆΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.

Одно ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… прСимущСств языка Java — Π΅Π³ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм Windows, Linux, FreeBSD, Solaris, Apple Mac ΠΈ Π΄Ρ€. Π­Ρ‚ΠΎ становится ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹ΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ посрСдством глобальной сСти ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ся Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…. Π―Π·Ρ‹ΠΊ программирования Java ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ со ΡΡ‚Π°Ρ‚ΠΈΡ‡Π½Ρ‹ΠΌΠΈ тСкстами ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ, Π½ΠΎ ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ динамичСскими ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

Π”Ρ€ΡƒΠ³ΠΈΠΌ, Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΌ прСимущСством Java, являСтся большая ΡΡ…ΠΎΠΆΠ΅ΡΡ‚ΡŒ с ΡΠ·Ρ‹ΠΊΠΎΠΌ программирования C++. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ‚Π΅ΠΌ программистам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с ΡΠΈΠ½Ρ‚аксисом Π‘ ΠΈ Π‘++ Π±ΡƒΠ΄Π΅Ρ‚ просто ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Java.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Java — ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык, Π΄Π°ΠΆΠ΅ Π² Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΉ стСпСни, Ρ‡Π΅ΠΌ Π‘++. ВсС сущности Π² ΡΠ·Ρ‹ΠΊΠ΅ Java ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΡ… основных Ρ‚ΠΈΠΏΠΎΠ² (primitive types), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ чисСл.

Π’Π°ΠΆΠ½ΠΎ ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Java ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ ошибок, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»Π΅Π³Ρ‡Π΅, Ρ‡Π΅ΠΌ Π½Π° Π‘++.

ВсС Π΄Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ языка Java ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Sun Π±Ρ‹Π» ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘++. ΠΠ½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ «ΡƒΠ·ΠΊΠΈΠ΅ мСста» исходного ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΡΡ‚ ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡŽ трудновыявимых ошибок. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π±Ρ‹Π»ΠΎ принято Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ язык Java с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ возмоТности ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±Ρ‹Π»ΠΈ Π±Ρ‹ скрыты Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнныС ошибки.

Для этого Π±Ρ‹Π»ΠΎ сдСлано ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ явного выдСлСния ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ памяти.

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

Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅

истинных массивов ΠΈ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ программисты Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π΅Ρ€Π΅Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΏΠ°ΠΌΡΡ‚ΠΈ ΠΏΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ использования ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ.

Π±Ρ‹Π»Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ присваивания с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ сравнСния Π½Π° Ρ€Π°Π²Π΅Π½ΡΡ‚Π²ΠΎ. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° со Π·Π½Π°ΠΊΠΎΠΌ «=» ΠΎΡ‡Π΅Π½ΡŒ часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ Π² Π‘ ΠΈ Π‘++ ΠΊ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΠΈΠΌ ошибкам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ‚Π°ΠΊ просто ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ. ОсобСнно Π² ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ….

ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ мноТСствСнноС наслСдованиС. Оно Π±Ρ‹Π»ΠΎ Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΎ Π½ΠΎΠ²Ρ‹ΠΌ понятиСм — интСрфСйсом, идСя ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Ρ‹Π»Π° позаимствована ΠΈΠ· ΡΠ·Ρ‹ΠΊΠ° Objective C.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Π΄Π°Π΅Ρ‚ программисту практичСски всС, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚ ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ³ΠΎ наслСдования, избСгая ΠΏΡ€ΠΈ этом слоТностСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ иСрархиями классов.

1.2 Бвойства Java, ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€

Java проста, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΈ Π·Π½Π°ΠΊΠΎΠΌΠ°.

БистСма Java создана Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ *простого* языка программирования, Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° использования ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Π»ΠΈΠ·ΠΊΠ° ΠΊ ΠΎΠ±Ρ‰Π΅ΠΏΡ€ΠΈΠ½ΡΡ‚ΠΎΠΉ ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… усилий. Π―Π·Ρ‹ΠΊ Java ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ ΡΠ΅Ρ‚Π΅Π²Ρ‹Ρ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² Π΄ΠΎ Π³Ρ€Π°Ρ„ичСских ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов. Π­Ρ‚ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹.

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

1.3 ΠΠ°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ

Java сущСствСнно ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ созданиС Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ΠšΡ€ΠΎΠΌΠ΅ ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° ΡΡ‚Π°ΠΏΠ΅ компиляции, систСма прСдусматриваСтся Π°Π½Π°Π»ΠΈΠ· Π½Π° ΡΡ‚Π°ΠΏΠ΅ выполнСния. Π‘Π°ΠΌ язык спроСктирован Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Π° ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΡƒ ΠΏΠΈΡΠ°Ρ‚ΡŒ «ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ». МодСль Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ использованиС ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ, Π΄Π΅Π»Π°Π΅Ρ‚ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌΠΈ Ρ†Π΅Π»Ρ‹ΠΉ класс ошибок, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Ρ… для Π‘ ΠΈ Π‘++.

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

ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Java ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Ρ‹, Ρ‚. Π΅. ΠΌΠΎΠ΄ΡƒΠ»ΠΈ прилоТСния ΠΈΠΌΠ΅ΡŽΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎ-нСзависимый Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ. Π­Ρ‚ΠΎ ΡƒΠΆΠ΅ Π½Π΅ ΠΈΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ тСксты, Π½ΠΎ Π΅Ρ‰Π΅ Π½Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ½ΠΎ-зависимыС ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг — «Π·Π°ΠΌΠΎΡ€Π°ΠΆΠΈΠ²Π°Π½ΠΈΠ΅» стандарта Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ основных встроСнных Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, созданная Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° Π²ΡΠ΅Ρ… ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ….

Π­Ρ‚ΠΎΡ‚ стандарт фиксирован Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π΅ΠΌ Java Virtual Machine. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° Π»ΡŽΠ±ΠΎΠΉ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΡΡ‚ΡŒ.

1.4 ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

Π‘Ρ…Π΅ΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы ΠΈ Π½Π°Π±ΠΎΡ€ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ΠΎΠ² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Java Ρ‚Π°ΠΊΠΎΠ²Ρ‹, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π° ΡΡ‚Π°ΠΏΠ΅ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄ΠΎΠ² Π½Π° ΡΠΎΠ±Π»ΡŽΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ» бСзопасности производится ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π΄ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ° ΠΊΠΎΠ΄ΠΎΠ² Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ выполнСния Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ ΡƒΠΆΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, ΠΈ ΠΊΠΎΠ΄Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ максимально эффСктивно.

Π Π°Π±ΠΎΡ‚Π° с Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ максимально эффСктивна, для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с Π½ΠΈΠΌΠΈ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Ρ‹.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² ΠΊΠ»Π°ΡΡΠ°Ρ… Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ΡΡ динамичСски. АвтоматичСский сборщик мусора Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ, Π½Π΅ Π·Π°ΠΌΠ΅Π΄Π»ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½ΠΎ Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя обСспСчивая своСврСмСнный Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ свободной памяти Π² ΡΠΈΡΡ‚Π΅ΠΌΡƒ.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ прСдусматриваСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ написания критичСских ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ участков ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠ΄Π°Ρ…: ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ, ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹ΠΉ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΈΠΉ.

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠ°Ρ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π° языка позволяСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ„Π°Π·Ρƒ линкования простой, ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, быстрой. Π­Ρ‚ΠΎ Ρ€Π΅Π·ΠΊΠΎ сокращаСт Ρ†ΠΈΠΊΠ» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Ρ‚Сстирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ².

ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΡΡ‚ΡŒ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ прилоТСния нСсколько Π·Π°Π΄Π°Ρ‡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Π­Ρ‚ΠΎ становится особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ Π² ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… распрСдСлСнных прилоТСниях, ΠΊΠΎΠ³Π΄Π° процСссы сСтСвого ΠΎΠ±ΠΌΠ΅Π½Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ΄Ρ‚ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎ. ΠŸΡ€ΠΈ этом ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π²Π²ΠΎΠ΄ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π±Π΅Π· нСприятных Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ.

ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΡΡ‚ΡŒ поддСрТиваСтся Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ языка — Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ² синхронизации встроСна Π² ΡΠΈΡΡ‚Π΅ΠΌΡƒ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° содСрТит Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс Thread. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ систСмныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ написаны thread-safe, Ρ‚. Π΅. всС ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹Ρ… прилоТСниях.

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

1.5 Базовая систСма Java

ΠžΠΏΡ‹Ρ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ отсутствиС стандартных Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для языка Π‘++ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ затрудняСт Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π½ΠΈΠΌ. Π’ ΡΠΈΠ»Ρƒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ любоС Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ наличия Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Π±Π°Π·ΠΎΠ²Ρ‹Ρ… классов, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ приходится ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ нСсовмСстимыми ΠΌΠ΅ΠΆΠ΄Ρƒ собой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ свой собствСнный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π°. ВсС это затрудняСт ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, Ρ‚Π°ΠΊ ΠΈ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, затрудняСт стыковку ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, написанных Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ людьми.

Полная систСма Java Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹:

java.lang — Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Ρ‚ΠΈΠΏΠΎΠ², ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹Ρ… Π² ΡΠ°ΠΌΠΎΠΌ языкС. Π­Ρ‚ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΡΠΎΡΡ‚Π°Π² любого прилоТСния. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ описания классов Object ΠΈ Class, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ многопотоковости, ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций, ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ для Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ классы.

java.io — ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ доступа. Аналог Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ стандартного Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° систСмы UNIX. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сСтСвого доступа (sockets, telnet, URL) содСрТится Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ java.net.

java.util — классы-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ (Dictionary, HashTable, Stack) ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹. ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ΠšΠ»Π°ΡΡΡ‹ Date ΠΈ Time.

java.awt — Abstract Windowing Toolkit, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎ-нСзависимый ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ интСрфСйс, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΎΠΊΠΎΠ½Π½Ρ‹Π΅ Java-прилоТСния Π½Π° Π»ΡŽΠ±ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ интСрфСйса, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ события, Ρ†Π²Π΅Ρ‚Π°, Ρ„ΠΎΠ½Ρ‚Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ основныС ΠΎΠΊΠΎΠ½Π½Ρ‹Π΅ элСмСнты — ΠΊΠ½ΠΎΠΏΠΊΠΈ, scrollbars ΠΈ Ρ‚. Π΄.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ — Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ вычислСниям КаТдая ΠΈΠ· ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… характСристик ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΠΉΠ΄Π΅Π½Π° Π² ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ…. Новым являСтся соСдинСниС ΠΈΡ… Π² ΡΡ‚Ρ€ΠΎΠΉΠ½ΡƒΡŽ Π½Π΅ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ²ΡƒΡŽ систСму, которая Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡ‚Π°Ρ‚ΡŒ всСобщим стандартом.

Π“Π»Π°Π²Π° 2. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ сортировки

2.1 ΠžΠ±Ρ‰ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ написания этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ всСх классов ΠΏΠ°ΠΊΠ΅Ρ‚Π° java. util для удобства доступа ΠΊ ΠΊΠ»Π°ΡΡΠ°ΠΌ этого ΠΏΠ°ΠΊΠ΅Ρ‚Π° (Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ класса Π² Π΄Π΅Ρ€Π΅Π²Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²):

import java.util.*;

Π“Π»Π°Π²Π½Ρ‹ΠΉ класс ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

public class sort

ΠœΠ΅Ρ‚ΠΎΠ΄, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ начинаСтся Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

public static void main (String[] args)

Установка Π½ΠΎΠΌΠ΅Ρ€ слова Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅ для сортировки (Ссли Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, Ρ‚ΠΎ -1)

int sortIndex = -1;

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса Scanner ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° java. util:

Scanner in = new Scanner (System.in);

Начало Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΏΠΎ ΡΡ‚Ρ€ΠΎΡ‡ΠΊΠ°ΠΌ, ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π° Π½ΠΈΠΌ дСйствия

while (in.hasNext ()){

sortList.add (new MyString (in.nextLine (), sortIndex));

}

Collections.sort (sortList);

System.out.print («nn»);

for (int i=0; i

{

MyString str = (MyString)sortList.get (i);

System.out.println (str.getStr ());

}

in.close ();

}

Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ класс, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π½Π°ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ строк

class MyString implements Comparable{

private String interString;

private int sortIndex = -1;

public MyString (String str, int wordNum)

{

this.interString = str;

this.sortIndex = wordNum;

}

public String getStr ()

{

return interString;

}

public int compareTo (Object arg0)

{

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° рСгистра

return str. toLowerCase ().compareTo (arg0.getStr ().toLowerCase ());

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ (Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, Ссли ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π½Π΅ Π·Π°Π΄Π°Π½)

if (sortIndex == -1){

return interString. length () — ((MyString)arg0).getStr ().length ();

}

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎ sortIndex`ΠΎΠ²ΠΎΠΌΡƒ слову Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅

String str1 = null, str2 = null;

try

{

str1 = interString. split (««)[sortIndex];

}

catch (Exception e)

Если Π½Π΅Ρ‚ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ слова Π² 1ΠΎΠΉ строкС, Ρ‚ΠΎ ΡΡ‡ΠΈΡ‚аСтся Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ слово мСньшС 2ΠΎΠ³ΠΎ.

return -1;

Π—Π΄Π΅ΡΡŒ сравниваСтся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ

return str1. compareTo (str2);

Π’ ΡΠ·Ρ‹ΠΊΠ΅ Java ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ массивы. Массив являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ всСми Π΅Π³ΠΎ свойствами ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ массива производится с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° new. Ρ€Π°Π·ΠΌΠ΅Ρ€ массива ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½ явно, Ρ‡Π΅Ρ€Π΅Π· свойство.length.Π’ Java ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄Π° Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ массива. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€, Π² ΡΠ»ΡƒΡ‡Π°Π΅ Π²Ρ‹Ρ…ΠΎΠ΄Π° индСкса Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ массива Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ java.lang.ArrayIndexOutOfBoundsException. ΠŸΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚.ΠΊ. это RuntimeException ΠΈ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ½ΠΎ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. И ΡƒΠΆ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΡΡ‚ΠΎΠΈΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ€Π°ΡΡ‡Π΅Ρ‚Π΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ послС прохоТдСния всСго массива Π±ΡƒΠ΄Π΅Ρ‚ Π±Ρ€ΠΎΡˆΠ΅Π½ΠΎ это ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΈ ΡΡ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ сигналом ΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ Ρ†ΠΈΠΊΠ»Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ПослС создания массив инициализируСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Ρ‚ΠΈΠΏΠ° Π΅Π³ΠΎ элСмСнтов. Π­Ρ‚ΠΎ гарантируСтся спСцификациСй языка. Π’ ΠΌΠ°ΡΡΠΈΠ²Π΅ хранятся ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Как любая пСрСмСнная ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° являСтся ссылкой Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρ‚Π°ΠΊ ΠΈ Π»ΡŽΠ±ΠΎΠΉ элСмСнт массива Ρ‚ΠΎΠΆΠ΅ являСтся ссылкой. А Π΄Π»Ρ ссылки Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ — null!

ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Π›ΡŽΠ±ΠΎΠ΅ дСйствиС Π½Π°Π΄ Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ — ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ. БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΊΠ° Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ ΡΠΌΠΎΠ³ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ, которая прСкрасно ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΠ»Π° Π±Ρ‹ для всСх Π²ΠΈΠ΄ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½Π΅ΠΉ. Одни ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ элСмСнты, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ — Π½Π΅Ρ‚. Π‘ ΠΎΠ΄Π½ΠΈΠΌΠΈ коллСкциями ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ надСТная Ρ€Π°Π±ΠΎΡ‚Π° Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ируСтся. Одни ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ сразу ΡΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ всС Π΄Π°Π½Π½Ρ‹Π΅, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ хранят Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ‚ΠΎΠΌ порядкС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΡ… Π΄ΠΎΠ±Π°Π²Π»ΡΠ»ΠΈ. ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ всС-Ρ‚Π°ΠΊΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ, Π½Π° Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ рСализация этими коллСкциями ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… интСрфСйсов. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ. ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π² ΡΠΊΠΎΡ€ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹. ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡ‡Π΅Π½ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр всСвозмоТных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ — ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»ΠΈΠ²Π°Ρ‚ΡŒ Π² ΠΎΠ΄Π½Ρƒ, ΡƒΠ·Π½Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ элСмСнты Π΅ΡΡ‚ΡŒ Π² ΠΎΠ±Π΅ΠΈΡ… коллСкциях, ΠΊΠ°ΠΊΠΈΠ΅ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ. ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ — Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свои ΠΏΡ€Π°Π²ΠΈΠ»Π° сортировки.

Π”ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ класс Iterator. Π­Ρ‚ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ. ΠŸΡ€ΠΈ создании ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π½Π°Ρ‡Π°Π»ΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ся ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ элСмСнту Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° next. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ· ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€. ΠœΠ΅Ρ‚ΠΎΠ΄ hasNext провСряСт — Π΅ΡΡ‚ΡŒ Π»ΠΈ Π΅Ρ‰Π΅ элСмСнты Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ.

java ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ язык Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ

2.2 Код ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

import java.util.*;

public class Sort

{

// Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ

public static void main (String[] args)

{

//устанавливаСм Π½ΠΎΠΌΠ΅Ρ€ слова Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅ для сортировки (Ссли Π½Π΅ ΡƒΠΊΠ°Π·Π°Π», Ρ‚ΠΎ -1)

int sortIndex = -1;

//провСряСм количСство Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

if (args.length ≠ 0){

sortIndex = Integer. valueOf (args[0]);

}

Scanner in = new Scanner (System.in);

ArrayList sortList = new ArrayList ();

//Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Ρ€Π°Π·Π±ΠΎΡ€ ΠΏΠΎ ΡΡ‚Ρ€ΠΎΡ‡ΠΊΠ°ΠΌ, ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°

while (in.hasNext ()){

sortList.add (new MyString (in.nextLine (), sortIndex));

}

Collections.sort (sortList);

System.out.print («nn»);

for (int i=0; i

{

MyString str = (MyString)sortList.get (i);

System.out.println (str.getStr ());

}

in.close ();

}

}

//Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ класс, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π½Π°ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ строк

class MyString implements Comparable{

private String interString;

private int sortIndex = -1;

public MyString (String str, int wordNum)

{

this.interString = str;

this.sortIndex = wordNum;

}

public String getStr ()

{

return interString;

}

public int compareTo (Object arg0)

{

//сортировка Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° рСгистра

//return str. toLowerCase ().compareTo (arg0.getStr ().toLowerCase ());

//сортировка ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ (Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, Ссли ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π½Π΅ Π·Π°Π΄Π°Π½)

if (sortIndex == -1){

return interString. length () — ((MyString)arg0).getStr ().length ();

}

//сортировка ΠΏΠΎ sortIndex`ΠΎΠ²ΠΎΠΌΡƒ слову Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅

String str1 = null, str2 = null;

try

{

str1 = interString. split (««)[sortIndex];

}

catch (Exception e)

{

//Ссли Π½Π΅Ρ‚ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ слова Π² 1ΠΎΠΉ строкС, Ρ‚ΠΎ ΡΡ‡ΠΈΡ‚Π°Π΅ΠΌ Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ слово мСньшС 2ΠΎΠ³ΠΎ.

return -1;

}

try

{

str2 = ((MyString)arg0).getStr ().split (««)[sortIndex];

}

catch (Exception e)

{

//Ссли Π½Π΅Ρ‚ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ слова Π²ΠΎ 2ΠΎΠΉ строкС, Ρ‚ΠΎ ΡΡ‡ΠΈΡ‚Π°Π΅ΠΌ Ρ‡Ρ‚ΠΎ 2ΠΎΠ΅ слово мСньшС 1ΠΎΠ³ΠΎ

return 1;

}

//здСсь сравниваСм ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ

return str1. compareTo (str2);

}

}

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π°Ρ сортировки слов ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ. УсловиС устанавливаСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° составлСна Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ Π·Π°Ρ€Π°Π½Π΅Π΅ Π½Π΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ сортировки, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ (ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅).

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ продСмонстрировала Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ особСнности ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ языка Java ΠΈ Π΅Π³ΠΎ стандартного ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Java Standard Edition 6.0 Software Development Kit, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π»Π°, Ρ‡Ρ‚ΠΎ язык Java ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ использован для написания кроссплатформСнных ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘Ρ€Π΅Π΄Π° программирования JDK + NetBeans оказалась Π»Ρ‘Π³ΠΊΠΎΠΉ Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΡΡ‚Π° Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ.

ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, смоТСт ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡƒ слов Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹

Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… источников

1. Π’. ЦишСвский, Π―Π·Ρ‹ΠΊ ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Java

2. К. Π₯орстманн, Π“. ΠšΠΎΡ€Π½Π΅Π»Π» Java 2. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° профСссионала. Π’ΠΎΠΌ 1. ΠžΡΠ½ΠΎΠ²Ρ‹. — Πœ.: «Π’ΠΈΠ»ΡŒΡΠΌΡ», 2010. — 816 с.

3. Π“ΡƒΠ»ΡŒΡ‚ΡΠ΅Π² К. Π₯орстманн, Π“. ΠšΠΎΡ€Π½Π΅Π»Π» Java 2. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° профСссионала. Π’ΠΎΠΌ 2. Вонкости программирования. — Πœ.: «Π’ΠΈΠ»ΡŒΡΠΌΡ», 2010. — 992 с.

4. Π”. Π‘ΠΈΡˆΠΎΠΏ ЭффСктивная Ρ€Π°Π±ΠΎΡ‚Π°: Java 2- БПб.: ΠŸΠΈΡ‚Π΅Ρ€, 2002. — 592 с.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ