На Ρ‡Π΅ΠΌ написан язык java

Π£Ρ€ΠΎΠΊ 2. ΠžΠ±Π·ΠΎΡ€ Java: Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅, прСимущСства ΠΈ история создания языка программирования

ΠŸΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ, Π½Π°Ρ‡Π½Ρ‘ΠΌ с ввСдСния Π² java-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, разбСрёмся ΠΊΡ€Π°Ρ‚ΠΊΠΎ, Ρ‡Ρ‚ΠΎ это Π·Π° Ρ‚Π°ΠΊΠΎΠΉ язык программирования. НСмного истории языка java. Π―Π·Ρ‹ΠΊ Java Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Sun Microsystems, создатСлСм ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Ρ‹Π» ДТСймс Гослинг, ΠΈ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ Π² 1995 Π³ΠΎΠ΄Ρƒ Π² качСствС основных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Sun Microsystems β€” Java ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ (Java 1.0 [J2SE]).

По ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Π½Π° 2017 Π³ΠΎΠ΄ послСднСй вСрсиСй Java Standard Edition являСтся 8 (J2SE). Π‘ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ Java, ΠΈ Π΅Ρ‘ ΡˆΠΈΡ€ΠΎΠΊΠΎΠΉ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΡŽ, нСсколько ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π±Ρ‹Π»ΠΈ построСны для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ. НапримСр: J2EE β€” прилоТСния для прСдприятий, J2ME β€” для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Sun Microsystems ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π»Π° ΠΏΡ€Π΅ΠΆΠ½ΡŽΡŽ Π²Π΅Ρ€ΡΠΈΡŽ J2 ΠΈ Π²Π²Π΅Π»Π° Π½ΠΎΠ²Ρ‹Π΅: Java SE, Java EE ΠΈ Java ME. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Java Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… вСрсий ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π»ΠΎ Π·Π½Π°ΠΌΠ΅Π½ΠΈΡ‚Ρ‹ΠΉ слоган ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ «Напиши ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, запускай Π²Π΅Π·Π΄Π΅Β».

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ создания языка Java

Но ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄Π°Ρ‚ΠΎΠΉ создания языка Java считаСтся 23 мая 1995 Π³ΠΎΠ΄Π°, послС выпуска ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Sun ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Java 1.0. Она Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»Π° «Напиши ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, запускай Π²Π΅Π·Π΄Π΅Β», обСспСчивая Π½Π΅Π΄ΠΎΡ€ΠΎΠ³ΠΎΠΉ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Π½Π° популярных ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ….

13 ноября 2006 Π³ΠΎΠ΄Π°, Sun выпустила Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠ°ΠΊ свободноС ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Π² соотвСтствии с условиями GNU General Public License (GPL).

ПослС 8 мая 2007 Π³ΠΎΠ΄Π° ΡΡƒΠ΄ΡŒΠ±Π° Java слоТилась ΠΈΠ½Π°Ρ‡Π΅. Компания Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»Π° процСсс, дСлая всС Ρ‡Ρ‚ΠΎΠ±Ρ‹ исходный ΠΊΠΎΠ΄ Π±Ρ‹Π» бСсплатным ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ, ΠΊΡ€ΠΎΠΌΠ΅ нСбольшой части ΠΊΠΎΠ΄Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ компания Π½Π΅ ΠΈΠΌΠ΅Π»Π° авторских ΠΏΡ€Π°Π².

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° языка Java: ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ: Π² Π΄ΠΆΠ°Π²Π° всС являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ. Π”ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ основан Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ.

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡ‹ΠΉ: Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языков, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ C ΠΈ C++, Java, ΠΊΠΎΠ³Π΄Π° Π±Ρ‹Π» создан, ΠΎΠ½ Π½Π΅ компилировался Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, Π° Π² нСзависимом ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π΅. Π­Ρ‚ΠΎΡ‚ Π±Π°ΠΉΡ‚ ΠΊΠΎΠ΄ распространяСтся Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΈ интСрпрСтируСтся Π² Java Virtual Machine (JVM), Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ Π² настоящСС врСмя Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ: процСссы изучСния ΠΈ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² язык программирования Java ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ простыми. Если Π’Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ основныС ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования, Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ прост для Вас Π² освоСнии.

БСзопасным: ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ подлинности основаны Π½Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ.

АрхитСктурно-Π½Π΅ΠΉΡ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ: компилятор Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎ-Π½Π΅ΠΉΡ‚Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Ρ„Π°ΠΉΠ»Π°, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ скомпилированный ΠΊΠΎΠ΄ исполняСмым Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ… процСссорах, с Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ΠΌ систСмС Java Runtime.

ΠŸΠΎΡ€Ρ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ: Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎ-Π½Π΅ΠΉΡ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ зависимости ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ аспСктов спСцификаций β€” всС это Π΄Π΅Π»Π°Π΅Ρ‚ Java ΠΏΠΎΡ€Ρ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π² Java написан Π½Π° ANSI C с чистой ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся подмноТСством POSIX.

ΠŸΡ€ΠΎΡ‡Π½Ρ‹ΠΉ: ΠΏΡ€ΠΈΠ»Π°Π³Π°Π΅Ρ‚ усилия, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ошибки Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ситуациях, дСлая ΡƒΠΏΠΎΡ€ Π² основном Π½Π° врСмя компиляции, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ошибок ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π²ΠΎ врСмя выполнСния.

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

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ: Java Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ пСрСводится Π½Π° Π»Π΅Ρ‚Ρƒ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ инструкции ΠΈ Π½ΠΈΠ³Π΄Π΅ Π½Π΅ сохраняСтся. ДСлая процСсс Π±ΠΎΠ»Π΅Π΅ быстрым ΠΈ аналитичСским, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ связываниС происходит ΠΊΠ°ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ с нСбольшим вСсом процСсса.

Π’Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ: Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Just-In-Time компилятора, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

РаспространСнный: ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для распрСдСлСнной срСды ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°.

ДинамичСский: ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Java считаСтся Π±ΠΎΠ»Π΅Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Ρ‹ΠΌ, Ρ‡Π΅ΠΌ Π½Π° C ΠΈΠ»ΠΈ C++, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ ΠΊ ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΌΡΡ условиям. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠ±ΡˆΠΈΡ€Π½ΠΎΠ΅ количСство Π²ΠΎ врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ доступа ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Π½Π° врСмя выполнСния.

ПослС нСбольшого ввСдСния, ΠΎΠ±Π·ΠΎΡ€Π° прСимущСств ΠΈ истории Java, приступим ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ понадобятся

Для выполнСния ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², рассмотрСнных Π² этом ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ΅, Π’Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Pentium 200 ΠœΠ“Ρ† с минимальной ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ 64 Мб (рСкомСндуСтся опСративная ΠΏΠ°ΠΌΡΡ‚ΡŒ 128 Мб).

Π’Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ понадобится ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС:

Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ обСспСчит Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ Π½Π°Π²Ρ‹ΠΊΠ°ΠΌΠΈ для создания GUI, сСтСвых ΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

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

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

Π―Π·Ρ‹ΠΊ программирования Java

Π―Π·Ρ‹ΠΊ программирования Java

Java

Java Standard Edition 6 (1.6.14)

Java β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Sun Microsystems ΠΈ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ 23 мая 1995 Π³ΠΎΠ΄Π°. Π’ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π½ΠΎΡˆΠ΅Π½ΠΈΡ Π² русском языкС, ΠΊΠ°ΠΊ ΠΈ Π² рядС Π΄Ρ€ΡƒΠ³ΠΈΡ…, ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π»ΠΈΡΡŒ Π΄Π²Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π½ΠΎΡ€ΠΌΡ‹ β€” заимствованная англоязычная /ˈdʒɑːvΙ™/ [1] ΠΈ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ-Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ Β«Π―Π²Π°Β», ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠΈΠ·Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ названия острова Π―Π²Π°.

Java β€” Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сам язык, Π½ΠΎ ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ для создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ уровня прСдприятий Π½Π° основС Π΄Π°Π½Π½ΠΎΠ³ΠΎ языка.

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ язык программирования назывался Oak (русск. Π”ΡƒΠ± ) ΠΈ разрабатывался ДТСймсом Гослингом для Π±Ρ‹Ρ‚ΠΎΠ²ΠΎΠΉ элСктроники, Π½ΠΎ впослСдствии Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ Π² Java ΠΈ стал ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для написания клиСнтских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ сСрвСрного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Назван Π² Ρ‡Π΅ΡΡ‚ΡŒ ΠΌΠ°Ρ€ΠΊΠΈ ΠΊΠΎΡ„Π΅ Java, любимого программистами, поэтому Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ эмблСмС языка Java ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° Ρ‡Π°ΡˆΠΊΠ° с дымящимся ΠΊΠΎΡ„Π΅.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ особСнности языка

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Java Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄, выполняСмый Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ java-машиной (JVM) β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‰Π΅ΠΉ инструкции ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΡŽ ΠΊΠ°ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€, Π½ΠΎ с Ρ‚Π΅ΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ тСкста, обрабатываСтся Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ быстрСС.

Достоинство ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ способа выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” Π² ΠΏΠΎΠ»Π½ΠΎΠΉ нСзависимости Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° ΠΎΡ‚ ОБ ΠΈ оборудования, Ρ‡Ρ‚ΠΎ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Java-прилоТСния Π½Π° любом устройствС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ. Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Java являСтся гибкая систСма бСзопасности благодаря Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ исполнСниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ контролируСтся Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной. Π›ΡŽΠ±Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‚ установлСнныС полномочия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° нСсанкционированного доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈΠ»ΠΈ соСдинСния с Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ) Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅. Π­Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанныС Π½Π° Java, Π½Π° ΠΈΡ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ (ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ устройства, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹) ΠΈΠ· нСизвСстных источников, ΠΏΡ€ΠΈ этом Π½Π΅ опасаясь зараТСния вирусами, ΠΏΡ€ΠΎΠΏΠ°ΠΆΠΈ Ρ†Π΅Π½Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΈ Ρ‚. ΠΏ.

Часто ΠΊ нСдостаткам ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ относят Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ исполнСниС Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ½ΠΈΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π½Π° языкС Java. Π”Π°Π½Π½ΠΎΠ΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ справСдливо для ΠΏΠ΅Ρ€Π²Ρ‹Ρ… вСрсий Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Java, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² послСднСС врСмя ΠΎΠ½ΠΎ практичСски потСряло Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π­Ρ‚ΠΎΠΌΡƒ способствовал ряд ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠΉ: ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ native-ΠΊΠΎΠ΄Π° Π² стандартных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ срСдства, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΡƒΡΠΊΠΎΡ€Π΅Π½Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, тСхнология ARM).

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ вСрсий

Java 1.0

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Java Π½Π°Ρ‡Π°Π»Π°ΡΡŒ Π² 1990 Π³ΠΎΠ΄Ρƒ, пСрвая ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ вСрсия β€” Java 1.0, β€” Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² 1995 Π³ΠΎΠ΄Ρƒ.

Java 2.0

К 1998 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° обновлённая спСцификация JDK 1.2, Π²Ρ‹ΡˆΠ΅Π΄ΡˆΠ°Ρ ΠΏΠΎΠ΄ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Java 2. БобствСнно языковых ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π΄Π°Π½Π½ΠΎΠΉ вСрсии Π½Π΅ появилось. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дополнСния:

Java 5

БпСцификация Java 5 Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° Π² сСнтябрС 2004 Π³ΠΎΠ΄Π°. Π’ Π΄Π°Π½Π½ΠΎΠΉ вСрсии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ внСсли Π² язык Ρ†Π΅Π»Ρ‹ΠΉ ряд ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ:

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ Java

Π’Π½ΡƒΡ‚Ρ€ΠΈ Java ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Ρ€ΠΈ основных сСмСйства Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ:

Π‘Π°ΠΌΡ‹ΠΌΠΈ популярными ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ сСрвСрныС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ сСмСйства J2EE.

ПослСдним Ρ€Π΅Π»ΠΈΠ·ΠΎΠΌ являСтся вСрсия 1.6, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ систСмы бСзопасности, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ скриптового языка Mozilla Rhino (Π°Π½Π³Π».), ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° интСграция с Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ столом, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΎΠ²Ρ‹Π΅ возмоТности Π² создании графичСских интСрфСйсов.

Java ΠΈ Microsoft

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Java

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

ΠΠ°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈΠΌ. Н. Π­. Π‘Π°ΡƒΠΌΠ°Π½Π°
Bauman National Library

ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ инструмСнты

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

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

ДТСймс Гослинг, Майк Π¨Π΅Ρ€ΠΈΠ΄Π°Π½ ΠΈ ΠŸΠ°Ρ‚Ρ€ΠΈΠΊ НСйтон ΠΏΠΎΠ»ΠΎΠΆΠΈΠ»ΠΈ Π½Π°Ρ‡Π°Π»ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ языка Java Π² 1991 Π³ΠΎΠ΄Ρƒ. Java задумывался ΠΊΠ°ΠΊ язык программирования для ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ тСлСвидСния, Π½ΠΎ оказался слишком прогрСссивным для индустрии кабСльного Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ³ΠΎ тСлСвидСния Ρ‚ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ язык носил Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Oak(Β«Π”ΡƒΠ±Β»), Π² Ρ‡Π΅ΡΡ‚ΡŒ Π΄Π΅Ρ€Π΅Π²Π°, Ρ€ΠΎΡΡˆΠ΅Π³ΠΎ ΠΏΠΎΠ΄ ΠΎΠΊΠ½ΠΎΠΌ офиса ДТСймса Гослинга. ПозТС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ смСнил Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π½Π° Green ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ Π² Java, Π² Ρ‡Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΡ„Π΅. ДТСймс Гослинг сдСлал синтаксис Java Π² стилС C/C++, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠΉ синтаксис Π±Ρ‹Π» Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°ΠΊΠΎΠΌ систСмным ΠΈ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹ΠΌ программистам.

Π’ 1997 Π³ΠΎΠ΄Ρƒ компания Sun Microsystems ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ»Π°ΡΡŒ ΠΊ ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚Ρƒ ΠΏΠΎ стандартизации ISO/IEC JTC 1 ΠΈ ΠΏΠΎΠ·ΠΆΠ΅ ΠΊ Ecma International с Ρ†Π΅Π»ΡŒΡŽ создания ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ стандарта Java, Π½ΠΎ вскорС ΠΎΡ‚ΠΊΠ°Π·Π°Π»Π°ΡΡŒ ΠΎΡ‚ этой ΠΈΠ΄Π΅ΠΈ. Java ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ»Π° подчиняСтся стандарту Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ контролируСтся посрСдством Java Community Process. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя Sun Microsystems прСдоставила свободный доступ ΠΊ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ своих Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ Java, Π½ΠΎ ΠΏΡ€ΠΈ этом ΠΎΠ½ΠΈ ΠΈΠΌΠ΅Π»ΠΈ статус ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Sun ΠΏΠΎΠ»ΡƒΡ‡Π°Π»Π° Π΄ΠΎΡ…ΠΎΠ΄ ΠΎΡ‚ Java Π·Π° счСт ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΉ для спСциализированных ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Java Enterprise Systems.

13 ноября 2006 Π³ΠΎΠ΄Π°, Sun ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° своСй JVM Π² качСствС свободного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ (FOSS – Π°Π½Π³Π». Free and Open-Source Software), Π² соотвСтствии с условиями GNU General Public License. 8 мая 2007 Π³ΠΎΠ΄Π° ΠΏΠΎΡ‡Ρ‚ΠΈ вСсь ΠΊΠΎΠ΄ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин Java ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Sun Microsystems распространялся ΠΊΠ°ΠΊ FOSS, ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ составляла Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСбольшая Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρƒ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π½Π΅ Π±Ρ‹Π»ΠΎ авторских ΠΏΡ€Π°Π².

Π’ΠΈΡ†Π΅-ΠΏΡ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Sun Π ΠΈΡ‡ Π“Ρ€ΠΈΠ½ заявил, Ρ‡Ρ‚ΠΎ Sun выполняСт Ρ€ΠΎΠ»ΡŒ «СвангСлиста» ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Java. ΠšΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΡ Oracle послС поглощСния Sun Microsystems описала свою Ρ€ΠΎΠ»ΡŒ ΠΊΠ°ΠΊ Β«Ρ€Π°ΡΠΏΠΎΡ€ΡΠ΄ΠΈΡ‚Π΅Π»ΡŒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Java с Π½Π΅ΠΎΡΠ»Π°Π±Π΅Π²Π°ΡŽΡ‰ΠΈΠΌ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎΠΌ ΡΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ сообщСству соучастия ΠΈ открытости». [3] Но практичСски сразу послС этого заявлСния Oracle ΠΏΠΎΠ΄Π°Π΅Ρ‚ иск ΠΏΡ€ΠΎΡ‚ΠΈΠ² Google Π·Π° использованиС Java Π² Android SDK. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС написанноС Π½Π° Java Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²Π΅Π·Π΄Π΅, начиная ΠΎΡ‚ Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠΎΠ² ΠΈ ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Ρ… консолСй ΠΈ заканчивая Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π°ΠΌΠΈ ΠΈ ΡΡƒΠΏΠ΅Ρ€ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌΠΈ. 2 апрСля 2010 Π³ΠΎΠ΄Π° ДТСймс Гослинг ΡƒΡˆΠ΅Π» ΠΈΠ· Oracle.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹

ΠŸΡΡ‚ΡŒ основных ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ², Π² соотвСтствии с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ создавался язык Java:

ВСрсии

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ вСрсии Java ΠΈ Π΄Π°Ρ‚Ρ‹ ΠΈΡ… выпуска:

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Java

Один ΠΈΠ· ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² Π² соотвСтствии с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ создавалась Java β€” это ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанныС для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Java, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Π΅Π·Π΄Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈΡ… выполнСния Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ обСспСчСния ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. Π­Ρ‚ΠΎ достигаСтся посрСдством трансляции исходного ΠΊΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ прСдставлСниС, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ΠΎΠΌ, Π° Π½Π΅ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, зависимый ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ машинного языка, Π½ΠΎ ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для выполнСния Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной, рСализация ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ написана для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹. ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ для запуска Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹Ρ… Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Java-Π°ΠΏΠΏΠ»Π΅Ρ‚ΠΎΠ² Π² web-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ JVM β€” Java Runtime Environment (JRE), которая устанавливаСтся Π½Π° ΠΈΡ… собствСнной машинС.Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΠ±Ρ‰ΠΈΠΉ способ доступа ΠΊ хост-спСцифичным функциям, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π° с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ, ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ выполнСния ΠΈ ΡΠ΅Ρ‚ΡŒΡŽ. ИспользованиС ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° сильно ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΈΠ·-Π·Π° Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов, связанных с ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ инструкции, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‡Π΅ΠΌ исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° машинном языкС. НСсмотря Π½Π° это, JIT-компиляторы, Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π²ΠΎ врСмя выполнСния, Π±Ρ‹Π»ΠΈ Π²Π²Π΅Π΄Π΅Π½Ρ‹ Π½Π° Ρ€Π°Π½Π½Π΅ΠΉ стадии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π‘Π°ΠΌ ΠΏΠΎ сСбС язык Java являСтся платформонСзависимым, Π΅Π³ΠΎ Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠ΅ΠΉ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, занимаСтся Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина Java (JVM), написанная для этой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. JVM транслируСт Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ Java Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ язык ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Π Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

Π‘Ρ‚ΠΎΠΈΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Java SE-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ β€” OpenJDK, которая распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GNU GPL. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° OpenJDK Π½Π°Ρ‡Π°Π»ΠΎΡΡŒ, ΠΊΠΎΠ³Π΄Π° компания Sun выпустила исходный ΠΊΠΎΠ΄ Java ΠΏΠΎΠ΄ GPL-Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ. Начиная с вСрсии Java SE 7, OpenJDK ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ являСтся эталонной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Java.

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Java особСнно Π²Π°ΠΆΠ½Π° для Java EE. И для сСртификации Ρ€Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Java EE Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ строгиС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это сСрвСрная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для Π·Π°Π΄Π°Ρ‡ срСдних ΠΈ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… прСдприятий.

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

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ написанныС Π½Π° Java ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ†ΠΈΡŽ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Ρ… ΠΈ Π±ΠΎΠ»Π΅Π΅ Π·Π°Ρ‚Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΏΠΎ памяти, Ρ‡Π΅ΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π‘++. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния Java-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ возросла с Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ΠΌ JIT-компиляции Π² вСрсии Java 1.1 Π² 1997/1998 Π³ΠΎΠ΄Ρƒ, с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²Ρ‹Ρ… языковых возмоТностСй, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Π±ΠΎΠ»Π΅Π΅ эффСктивно Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… классов, класса StringBuilder, условных ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ (asssertions) ΠΈ Ρ‚.ΠΏ.) ΠΈ с ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ JVM (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π±ΠΎΠ»Π΅Π΅ эффСктивная Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина β€” HotSpot β€” стала основной с Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ Java 1.3).

НСкоторыС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Java Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ обСспСчСния. Π•ΡΡ‚ΡŒ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Java-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° Π°ΠΏΠΏΠ°Ρ€Ρ‚Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ Π±Π΅Π· использования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Java, ΠΈ ARM-процСссоры, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° Java посрСдством Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Jazelle (ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° этой Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ снизилась Π² послСдних рСализациях ARM-процСссоров).

АвтоматичСскоС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ

Π’ Java для управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Π² ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ автоматичСский сборщик мусора. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ опрСдСляСт, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π° срСда выполнСния Java нСсСт ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° освобоТдСниС памяти, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большС Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ. Π’ΠΎ Π΅ΡΡ‚ΡŒ сборщик мусора автоматичСски освобоТдаСт участки памяти, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большС Π½Π΅Ρ‚ ссылок. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΡƒΡ‚Π΅Ρ‡ΠΊΠ°ΠΌ памяти всС Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ, Ссли ΠΊΠΎΠ΄ программиста содСрТит ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ большС Π½Π΅ Π½ΡƒΠΆΠ΅Π½. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ это встрСчаСтся ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большС Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹, хранятся Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ всё Π΅Ρ‰Ρ‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ. Если вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ‚ΠΎ возбуТдаСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ β€” NullPointerException.

Одна ΠΈΠ· ΠΈΠ΄Π΅ΠΉ, Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… Π² основС ΠΌΠΎΠ΄Π΅Π»ΠΈ автоматичСского управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Java, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ программисты ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·Π±Π°Π²Π»Π΅Π½Ρ‹ ΠΎΡ‚ слоТностСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠΌ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языках ΠΏΠ°ΠΌΡΡ‚ΡŒ для создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² нСявно выдСляСтся Π² стСкС, Π»ΠΈΠ±ΠΎ явно выдСляСтся ΠΈ освобоТдаСтся Π² ΠΊΡƒΡ‡Π΅. Π’ послСднСм случаС ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Π»ΠΎΠΆΠΈΡ‚ΡŒΡΡ Π½Π° программиста. Если программист Π½Π΅ удаляСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΡƒΡ‚Π΅Ρ‡ΠΊΠ° памяти. Если ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° пытаСтся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΈΠ»ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ участок памяти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ Π±Ρ‹Π» освобоТдСн, Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ повСдСния Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ Π»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ/ΠΈΠ»ΠΈ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ. Π­Ρ‚Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ частично Ρ€Π΅ΡˆΠ΅Π½Π° ΠΏΡƒΡ‚Π΅ΠΌ использования ΡƒΠΌΠ½Ρ‹Ρ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ (Π°Π½Π³Π». smart pointer), Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ сопряТСн с ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ слоТности ΠΈ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов. НС стоит Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ сбор мусора Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ появлСнию «логичСских» ΡƒΡ‚Π΅Ρ‡Π΅ΠΊ памяти, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ситуаций, ΠΊΠΎΠ³Π΄Π° ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ссылки/ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ.

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

Java Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с указатСлями Π² стилС Π‘ ΠΈΠ»ΠΈ Π‘++, Π³Π΄Π΅ адрСса ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ числами (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚ΠΈΠΏΠ° long int). Π­Ρ‚ΠΎ позволяСт сборщику мусора ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ ссылки ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π² Ρ†Π΅Π»ΠΎΠΌ.

Π’Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ Π² C ++ ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ языках, значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π² Java хранятся нСпосрСдствСнно ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (Π² случаС ΠΏΠΎΠ»Π΅ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°) ΠΈΠ»ΠΈ Π² стСкС (Π² случаС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…), Ρ‚Π°ΠΊ ΠΆΠ΅ Π² стСкС ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ хранятся Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° (см. Escape-Analysis). Π­Ρ‚ΠΎ осознанноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Java, принятоС с Ρ†Π΅Π»ΡŒΡŽ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Π’ Java Π΅ΡΡ‚ΡŒ нСсколько Ρ‚ΠΈΠΏΠΎΠ² сборщиков мусора. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина HotSpot ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ сборщик мусора PS Scavenge. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π΅ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для управлСния ΠΊΡƒΡ‡Π΅ΠΉ. Для 90% ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Java достаточно сборщика мусора Concurrent Mark-Sweep. Oracle стрСмится Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° Garbage-first (G1).

Бинтаксис

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Β«Hello World!Β»

Врадиционная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Β«Hello World!Β», написанная Π½Π° Java, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСна Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅:

Π­Ρ„Ρ„Π΅ΠΊΡ‚ ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ объявлСния сСмантичСски ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½ (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ args всё Ρ‚Π°ΠΊ ΠΆΠ΅ остаСтся массивом ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ‚ΠΈΠΏΠ° String ), Π½ΠΎ Π·Π°Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΅ΡΡ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ синтаксис создания ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ массива Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°.

Π‘Ρ‚Ρ€ΠΎΠΊΠ° Β«Hello World!Β» автоматичСски прСобразуСтся Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ струнного компилятором.

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ классы

АпплСты

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ import Π΄Π°Π΅Ρ‚ компилятору Java ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ классы javax.swing.JApplet ΠΈ java.awt.Graphics ΠΏΡ€ΠΈ компиляции. Π­Ρ‚ΠΎ позволяСт ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° эти классы Π² исходном ΠΊΠΎΠ΄Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ простого ΠΈΠΌΠ΅Π½ΠΈ класса (Ρ‚.Π΅. JApplet) вмСсто ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ (Ρ‚.Π΅. javax.swing.JApplet).

Π‘Π΅Ρ€Π²Π»Π΅Ρ‚Ρ‹

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°-ΠΎΡ‚Π²Π΅Ρ‚Π° setContentType(String) вызываСтся для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ MIME-Ρ‚ΠΈΠΏ Β«text/htmlΒ» для Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. ΠœΠ΅Ρ‚ΠΎΠ΄ getWriter() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ PrintWriter, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, для записи Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ. ΠœΠ΅Ρ‚ΠΎΠ΄ println(String) вызываСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Β«Hello, world!Β» Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° запрос, Π° Π·Π°Ρ‚Π΅ΠΌ вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ сlose() ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° PrintWriter, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Ρƒ всСх Π΄Π°Π½Π½Ρ‹Ρ…, записанных Π² ΠΏΠΎΡ‚ΠΎΠΊ ΠΎΡ‚Π²Π΅Ρ‚Π°, ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ.

JavaServer Pages

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ Π² Java (generics)

Π’ 2004 Π³ΠΎΠ΄Ρƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² язык Java ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ J2SE 5.0. Π”ΠΎ ΠΈΡ… ввСдСния ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΈΠΏ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π­Ρ‚ΠΎ являлось ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹Ρ… классов, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ Π±Ρ‹Π»ΠΎ простого способ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². Π›ΠΈΠ±ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ всСх классов, ΡΠ²Π»ΡΡŽΡ‰ΠΈΡ…ΡΡ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°ΠΌΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ класса Object) ΠΈΠ»ΠΈ интСрфСйса, Π»ΠΈΠ±ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ класса Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ свой класс-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. Π¨Π°Π±Π»ΠΎΠ½Ρ‹ ΠΆΠ΅ позволяю ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ‚ΠΈΠΏΠΎΠ² Π²ΠΎ врСмя компиляции, Π±Π΅Π· нСобходимости ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ мноТСство ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹Ρ… классов, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТит практичСски ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄. Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ возмоТности ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ эффСктивно, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π»ΠΈΡΡŒ Π² ошибки Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ компиляции, Ρ‡Ρ‚ΠΎ извСстно ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ.

ΠšΡ€ΠΈΡ‚ΠΈΠΊΠ°

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

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ языка программирования Java

Π―Π·Ρ‹ΠΊ для смарт устройств

На Ρ‡Π΅ΠΌ написан язык java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ На Ρ‡Π΅ΠΌ написан язык java. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ На Ρ‡Π΅ΠΌ написан язык java. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ На Ρ‡Π΅ΠΌ написан язык java. Π€ΠΎΡ‚ΠΎ На Ρ‡Π΅ΠΌ написан язык javaΠ―Π·Ρ‹ΠΊ Java ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½ΡƒΡŽ ΠΈ Π½Π΅ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ создания ΠΈ развития с Π½Π°Ρ‡Π°Π»Π° 1990-Ρ… Π³ΠΎΠ΄ΠΎΠ². ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Java язык вовсС Π½Π΅ прСдусматривался Π² качСствС языка программирования для ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

Π―Π·Ρ‹ΠΊ разрабатывался для программирования Π±Ρ‹Ρ‚ΠΎΠ²Ρ‹Ρ… устройств. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ языка Java тСсно связано с ΠΈΠΌΠ΅Π½Π΅ΠΌ James Arthur Gosling (ДТСймс Артур Гослинг), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Β«Π”ΠΎΠΊΡ‚ΠΎΡ€ Π―Π²Π°Β», канадского ΡƒΡ‡Π΅Π½ΠΎΠ³ΠΎ, извСстного ΠΊΠ°ΠΊ основатСля ΠΈ Π²Π΅Π΄ΡƒΡ‰Π΅Π³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π° языка Java.

Команда для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ языка

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΈ язык Java Π½Π°Ρ‡ΠΈΠ½Π°Π»ΠΈΡΡŒ ΠΊΠ°ΠΊ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Sun Microsystems Π² Π΄Π΅ΠΊΠ°Π±Ρ€Π΅ 1990 Π³ΠΎΠ΄Π°, прСдоставляя Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρƒ языкам программирования C ΠΈ C++. Π˜Π½ΠΆΠ΅Π½Π΅Ρ€ Patrick Naughton (ΠŸΠ°Ρ‚Ρ€ΠΈΠΊ Нотон, амСриканский Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния) ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π» ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ…ΠΎΠ΄ΠΈΠ»ΠΈ ДТСймс Гослинг (James Gosling), Майк Π¨Π΅Ρ€ΠΈΠ΄Π°Π½ (Mike SheridaΠΏ), ΠšΡ€ΠΈΡ Π£Π°Ρ€Ρ‚ (Chris Warth) ΠΈ Π­Π΄ Π€Ρ€Π°Π½ΠΊ (Ed Frank).

Команда Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ Green Project ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы для элСктронных Π±Ρ‹Ρ‚ΠΎΠ²Ρ‹Ρ… устройств. Π’ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ языка приняли участиС Π½Π΅ΠΌΠ°Π»ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… спСциалистов: Π‘ΠΈΠ»Π» Π”ΠΆΠΎΠΉ (Bill Joy), Артур Π²Π°Π½ Π₯ΠΎΡ„Ρ„ (Arthur van Hoff), Π”ΠΆΠΎΠ½Π°Ρ‚Π°Π½ Пэйн (Jonathan Payne), Π€Ρ€Π°Π½ΠΊ Π™Π΅Π»Π»ΠΈΠ½ (Frank Yellin) ΠΈ Π’ΠΈΠΌ Π›ΠΈΠ½Π΄Ρ…ΠΎΠ»ΡŒΠΌ (Π’lm Lindholm) ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ внСсли основной Π²ΠΊΠ»Π°Π΄ Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ исходного ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ° Java.

Поиск Π±Π°Π·Ρ‹ для Π½ΠΎΠ²ΠΎΠ³ΠΎ языка

ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° рассматривала Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ языка C++, Π½ΠΎ ΠΎΡ‚ΠΊΠ»ΠΎΠ½ΠΈΠ»Π° Π΅Π³ΠΎ ΠΏΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊ объСмам памяти ΠΈ высокой слоТности. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Π² Π‘++ сборки мусора ΠΎΠ·Π½Π°Ρ‡Π°Π»ΠΎ, Ρ‡Ρ‚ΠΎ программистам ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ систСмной ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, слоТной ΠΈ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Π½ΠΎΠΉ ошибкам Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. Π’Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»ΠΈ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ систСму с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ рСсурсами. НаконСц, ΠΎΠ½ΠΈ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄Π΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π»ΡŽΠ±Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ устройств. Но всС ΠΆΠ΅ синтаксис Java Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ заимствован ΠΈΠ· C ΠΈ C ++, Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ смодСлированы Π½Π° основС языков Π‘++, Smalltalk and Objective-C.

Π―Π·Ρ‹ΠΊ программирования Oak

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π½ΠΎΠ²ΠΎΠ³ΠΎ языка Π²ΠΏΠ»ΠΎΡ‚Π½ΡƒΡŽ занимался ДТСймс Гослинг ΠΈ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π½Π°Π·Π²Π°Π» Π΅Π³ΠΎ Оak (Π² ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ с английского Π”ΡƒΠ±). Рядом с офисом Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ рос Π΄ΡƒΠ±. НавСрноС ДТСймс, работая Π² офисС, поглядывал Π² ΠΎΠΊΠ½ΠΎ ΠΈ видя ΠΊΡ€Π΅ΠΏΠΊΠΈΠΉ Π΄ΡƒΠ±, ΠΈΠ·Π»ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΠ΅ ΠΈ Π΄ΠΎΠ»Π³ΠΎΠ»Π΅Ρ‚ΠΈΠ΅, Ρ€Π΅ΡˆΠΈΠ» Π½Π°Π·Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ язык Π² Ρ‡Π΅ΡΡ‚ΡŒ Π·Π΅Π»Π΅Π½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°. К Π»Π΅Ρ‚Ρƒ 1992 Π³ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° смогла ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ части Π½ΠΎΠ²ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму Green OS, язык Oak, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ΅ обСспСчСниС.

Π˜Ρ… пСрвая ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°, продСмонстрированная 3 сСнтября 1992 Π³ΠΎΠ΄Π°, Π±Ρ‹Π»Π° сосрСдоточСна Π½Π° создании устройства PDA (Personal Digital Assistant, ΠΊΠ°Ρ€ΠΌΠ°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€) ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Star7, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠΌΠ΅Π»ΠΎ графичСский интСрфСйс ΠΈ смарт-Π°Π³Π΅Π½Ρ‚Π° ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«DukeΒ» для ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. ΠšΠ°Ρ€ΠΌΠ°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Star7 Π±Ρ‹Π» ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ Π½ΠΎΠ²Ρ‹ΠΌ устройством, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π΅Π΄ΠΈΠ»ΠΎ своё врСмя, Π½ΠΎ ΠΈΠ·-Π·Π° высокой стоимости Π½Π΅ смогло произвСсти ΠΏΠ΅Ρ€Π΅Π²ΠΎΡ€ΠΎΡ‚ Π² ΠΌΠΈΡ€Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ постСпСнно Π±Ρ‹Π»ΠΎ Π·Π°Π±Ρ‹Ρ‚ΠΎ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² настоящСС врСмя ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΠ»ΠΎΡΡŒ ΠΊ Π½Π°ΠΌ Π² Π²ΠΈΠ΄Π΅ ΡƒΠΌΠ½Ρ‹Ρ… Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ устройств.

ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ названия Java

1994 Π³ΠΎΠ΄Ρƒ язык Oak Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Ρƒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Β«OakΒ» ΡƒΠΆΠ΅ использовалось ΠΊΠ°ΠΊ торговая ΠΌΠ°Ρ€ΠΊΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Oak Technology (амСриканская организация, поставщик элСктронных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²). Oak Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ Π² Java, Π² Ρ‡Π΅ΡΡ‚ΡŒ ΠΌΠ°Ρ€ΠΊΠΈ ΠΊΠΎΡ„Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ острова Π―Π²Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ эмблСмС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° Ρ‡Π°ΡˆΠΊΠ° с горячим ΠΊΠΎΡ„Π΅. БущСствуСт ΠΈ другая вСрсия происхоТдСния названия языка, связанная с ΡˆΡƒΡ‚Π»ΠΈΠ²Ρ‹ΠΌ Π½Π°ΠΌΠ΅ΠΊΠΎΠΌ Π½Π° ΠΊΠΎΡ„Π΅-ΠΌΠ°ΡˆΠΈΠ½Ρƒ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π±Ρ‹Ρ‚ΠΎΠ²ΠΎΠ³ΠΎ устройства, для программирования ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ язык ΠΈ создавался. НаконСц Java 1.0 Π±Ρ‹Π»Π° ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° Π² 1996 Π³ΠΎΠ΄Ρƒ.

ΠŸΡ€Π΅Π΄ΠΏΠΎΡΡ‹Π»ΠΊΠΈ Java

Π”ΠΎ появлСния языка Java программистам, ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ языками, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ обСспСчивали Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ·ΠΊΠΈΠΉ спСктр характСристик. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ языки программирования BASIC, COBOL ΠΈ FORTRAN Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² структурирования. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык Pascal Π½Π΅ Π±Ρ‹Π» ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для написания Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π―Π·Ρ‹ΠΊ Π‘++ частично Ρ€Π΅ΡˆΠ°Π» эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Но Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΡΡ‚ΡŒ примСнСния Π‘ ΠΈ Π‘++ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ написанныС Π½Π° Π½ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

ΠŸΡ‹Ρ‚Π°ΡΡΡŒ Π½Π°ΠΉΡ‚ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ этих ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ДТСймс Гослинг ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π°Ρ‡Π°Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ пСрСносимым, Π½Π΅ зависящим ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ языком. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, созданный Π½Π° Ρ‚Π°ΠΊΠΎΠΌ языкС, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π° Ρ€Π°Π·Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… процСссорах Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах. И Π² ΠΈΡ‚ΠΎΠ³Π΅ ΠΈΡ… усилия ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ ΠΊ созданию ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π² ΠΌΠΈΡ€Π΅ кроссплатформСнного языка ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Java.

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ языка Java

Java ΠΈ Π‘++

МногиС особСнности JΠ°vΠ° унаслСдованы ΠΎΡ‚ языков Π‘ ΠΈ Π‘++. ВмСстС с Ρ‚Π΅ΠΌ языку Java присущи Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ практичСскиС ΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ отличия. Π₯отя Π‘++ ΠΎΠΊΠ°Π·Π°Π» влияниС Π½Π° характСристики JΠ°vΠ°, Π½ΠΎ всё ΠΆΠ΅ язык программирования Java Π½Π΅ являСтся ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Π½ΠΎΠΉ вСрсиСй Π‘++. РазумССтся, Ρƒ Π½Π΅Π³ΠΎ Π½Π΅ΠΌΠ°Π»ΠΎ сходств с языком Π‘++, ΠΈ Π² исходном ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Java программист Π‘++ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ сСбя ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΊΠ°ΠΊ Π΄ΠΎΠΌΠ°.

Но Π΅ΡΡ‚ΡŒ ΠΈ ΠΊΠΎΡ€Π΅Π½Π½Ρ‹Π΅ отличия Π΄Π²ΡƒΡ… языков: ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° C++ компилируСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ срСды выполнСния, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ C++ зависимым ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ языком. Π’ Java исходный ΠΊΠΎΠ΄ сначала прСобразуСтся Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ Π²ΠΎ врСмя компиляции. Π­Ρ‚ΠΎΡ‚ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ Π·Π°Ρ‚Π΅ΠΌ интСрпрСтируСтся ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈ срСдой выполнСния для создания Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ Java нСзависимым ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ языком. Π―Π·Ρ‹ΠΊ JΠ°vΠ° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π½Π΅ для Π·Π°ΠΌΠ΅Π½Ρ‹ Π‘++, Π° для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… язык Π‘++ Π½Π΅ годится.

Java ΠΈ C#

Π―Π·Ρ‹ΠΊΠΈ C# ΠΈ Java появились Π² Ρ€Π°Π·Π½ΠΎΠ΅ врСмя. Π―Π·Ρ‹ΠΊ Java Π±Ρ‹Π» создан Π·Π°Π΄ΠΎΠ»Π³ΠΎ Π΄ΠΎ появлСния C#. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли Java создавался, ΠΎΠΏΠΈΡ€Π°ΡΡΡŒ Π² большСй стСпСни Π½Π° ΠΎΠΏΡ‹Ρ‚ языков Objective-C ΠΈ C, Π‘++, Ρ‚ΠΎ для C# Ρ‚Π°ΠΊΠΎΠΉ ΠΎΠΏΠΎΡ€ΠΎΠΉ ΡƒΠΆΠ΅ являлись C++ ΠΈ сам Java. И, нСсмотря Π½Π° своё Π½Π°Π·Π²Π°Π½ΠΈΠ΅, C# оказался Π±Π»ΠΈΠΆΠ΅ ΠΊ Java, Ρ‡Π΅ΠΌ ΠΊ C++.

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° языки Java ΠΈ C# ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈ. Оба языка ΡΠ²Π»ΡΡŽΡ‚ΡΡ строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ. Оба языка ΠΎΠΏΠΈΡ€Π°ΡŽΡ‚ΡΡ Π½Π° сборку мусора. Оба языка ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΌΠΈ коллСкциями Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Но Π΅ΡΡ‚ΡŒ Π² языках Ρ‚Π°ΠΊΠΆΠ΅ свои особСнности ΠΈ различия. C# ΡƒΡ‡Ρ‘Π» ΠΌΠ½ΠΎΠ³ΠΈΠ΅ нСдостатки Java, ΠΈ исправил ΠΈΡ… Π² своСй Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Но ΠΈ Java Π½Π΅ стоит Π½Π° мСстС, Ρ€Π°Π·Π²ΠΈΠ²Π°ΡΡΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ с C#.

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Java

Π’ настоящСС врСмя язык ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Java Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ развиваСтся. 3 ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Π° устройств Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Javaβ€”Π΄ΠΎΠΌΠ°, Π² Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ ΠΈ офисС. 12 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Java ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ. НСдавно Π±Ρ‹Π»ΠΎ объявлСно, Ρ‡Ρ‚ΠΎ для Java Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡˆΠ΅ΡΡ‚ΠΈΠΌΠ΅ΡΡΡ‡Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» выпуска. Java сСгодня ΡƒΡΠΏΠ΅ΡˆΠ½Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ΄, написанный 20 Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄, ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

ΠžΠ±Ρ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄ получаСтся Ρ‚Π°ΠΊΠΈΠΌ: насчёт «самого популярного» языка ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΠΎΡ€ΠΈΡ‚ΡŒ, Π½ΠΎ Ρ‡Ρ‚ΠΎ Java Β«ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых популярных» β€” бСзусловно.

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

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

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

Класс языка: