Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° JavaΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 21

Автор Н.А. Вязовик

-21 << 27 = 01011000000000000000000000000000 = 1476395008

-21 << 28 = 10110000000000000000000000000000 = -1342177280

-21 << 29 = 01100000000000000000000000000000 = 1610612736

-21 << 30 = 11000000000000000000000000000000 = -1073741824

-21 << 31 = 10000000000000000000000000000000 = -2147483648


Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, нСоТиданности Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΠ΅ Π±ΠΈΡ‚Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΈ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° Π·Π½Π°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.

ΠŸΡ€ΠΈ сдвигС Π²ΠΏΡ€Π°Π²ΠΎ всС Π±ΠΈΡ‚Ρ‹ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΡΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ количСство ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ, соотвСтствСнно, Π²ΠΏΡ€Π°Π²ΠΎ. Однако встаСт вопрос – ΠΊΠ°ΠΊΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ слСва, Π² Ρ‚ΠΎΠΌ числС ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΡƒΡŽ Π·Π° Π·Π½Π°ΠΊ. Π•ΡΡ‚ΡŒ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ >> ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ для заполнСния этих ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ всСгда ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π·Π½Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ >>> заполняСт ΠΈΡ… нулями, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ всСгда ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ.


// Π‘Π΄Π²ΠΈΠ³ Π²ΠΏΡ€Π°Π²ΠΎ для ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ числа 20

// ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ >>

20 >> 00 = 00000000000000000000000000010100 = 20

20 >> 01 = 00000000000000000000000000001010 = 10

20 >> 02 = 00000000000000000000000000000101 = 5

20 >> 03 = 00000000000000000000000000000010 = 2

20 >> 04 = 00000000000000000000000000000001 = 1

20 >> 05 = 00000000000000000000000000000000 = 0

// ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ >>>

20 >>> 00 = 00000000000000000000000000010100 = 20

20 >>> 01 = 00000000000000000000000000001010 = 10

20 >>> 02 = 00000000000000000000000000000101 = 5

20 >>> 03 = 00000000000000000000000000000010 = 2

20 >>> 04 = 00000000000000000000000000000001 = 1

20 >>> 05 = 00000000000000000000000000000000 = 0


ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ для ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ >> ΠΈ >>> Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ. Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΠΉ сдвиг Π½Π° большСС количСство ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.


// Π‘Π΄Π²ΠΈΠ³ Π²ΠΏΡ€Π°Π²ΠΎ для ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ числа -21

// ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ >>

-21 >> 00 = 11111111111111111111111111101011 = -21

-21 >> 01 = 11111111111111111111111111110101 = -11

-21 >> 02 = 11111111111111111111111111111010 = -6

-21 >> 03 = 11111111111111111111111111111101 = -3

-21 >> 04 = 11111111111111111111111111111110 = -2

-21 >> 05 = 11111111111111111111111111111111 = -1

// ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ >>>

-21 >>> 00 = 11111111111111111111111111101011 = -21

-21 >>> 01 = 01111111111111111111111111110101 = 2147483637

-21 >>> 02 = 00111111111111111111111111111010 = 1073741818

-21 >>> 03 = 00011111111111111111111111111101 = 536870909

-21 >>> 04 = 00001111111111111111111111111110 = 268435454

-21 >>> 05 = 00000111111111111111111111111111 = 134217727

...

-21 >>> 24 = 00000000000000000000000011111111 = 255

-21 >>> 25 = 00000000000000000000000001111111 = 127

-21 >>> 26 = 00000000000000000000000000111111 = 63

-21 >>> 27 = 00000000000000000000000000011111 = 31

-21 >>> 28 = 00000000000000000000000000001111 = 15

-21 >>> 29 = 00000000000000000000000000000111 = 7

-21 >>> 30 = 00000000000000000000000000000011 = 3

-21 >>> 31 = 00000000000000000000000000000001 = 1


Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², эти ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ дСлСнию Π½Π° 2n. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ, Ссли для ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² с ростом n Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π·Π°ΠΊΠΎΠ½ΠΎΠΌΠ΅Ρ€Π½ΠΎ стрСмится ΠΊ 0, Ρ‚ΠΎ для ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ являСтся -1.

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

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


* ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ;

* ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ;

* ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΈ строковыС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹.

ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΆΠ΅ ( ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова, числовыС, булСвскиС ΠΈ null- Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹, Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹) Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ лишь ASCII -символов. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя любой Unicode -символ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ASCII -символов.

Π’ΠΎ врСмя Π°Π½Π°Π»ΠΈΠ·Π° компилятор выдСляСт ΠΈΠ· тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ < ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ > (Π±Ρ‹Π»ΠΈ рассмотрСны всС символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ) ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ ΠΈΠ· ΠΊΠΎΠ΄Π° (Π±Ρ‹Π»ΠΈ рассмотрСны всС Π²ΠΈΠ΄Ρ‹ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², Π² частности ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°). ΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈ всС Π²ΠΈΠ΄Ρ‹ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² слуТат для разбиСния тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° лСксСмы. Π‘Ρ‹Π»ΠΈ рассмотрСны всС Π²ΠΈΠ΄Ρ‹ лСксСм, Π² Ρ‚ΠΎΠΌ числС всС Π²ΠΈΠ΄Ρ‹ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ².

Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π±Ρ‹Π»ΠΈ рассмотрСны особСнности примСнСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ².


4. ЛСкция: Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ основныС возмоТности любого языка. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Java являСтся строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ языком, Π° ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Π΅Ρ‚ΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π² написании качСствСнных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ЛСкция начинаСтся с ввСдСния понятия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ особСнности примСнСния Ρ‚ΠΈΠΏΠΎΠ² Π² Java. ΠžΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ΡΡ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ всСх Ρ‚ΠΈΠΏΠΎΠ² Π½Π° ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠ΅ ΠΈ ссылочныС, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ значСниями Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ особый класс Class, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ³Ρ€Π°Π΅Ρ‚ Ρ€ΠΎΠ»ΡŒ мСтакласса Π² Java.


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

Java являСтся строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ языком. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ любая пСрСмСнная ΠΈ любоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ извСстный Ρ‚ΠΈΠΏ Π΅Ρ‰Π΅ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ компиляции. Π’Π°ΠΊΠΎΠ΅ строгоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ позволяСт Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ошибки ΡƒΠΆΠ΅ Π²ΠΎ врСмя компиляции. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€, найдя ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ мСсто (строку) ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ Π΅Π΅ возникновСния, Π° динамичСскиС "Π±Π°Π³ΠΈ" (ΠΎΡ‚ английского bugs) Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ сначала Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСстирования (Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… усилий), Π° Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΉΡ‚ΠΈ мСсто Π² ΠΊΠΎΠ΄Π΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡ… ΠΏΠΎΡ€ΠΎΠ΄ΠΈΠ»ΠΎ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ‡Π΅Ρ‚ΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π² Java ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π² написании качСствСнных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

ВсС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π½Π° Π΄Π²Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹. ΠŸΠ΅Ρ€Π²ΡƒΡŽ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ 8 простых, ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… (ΠΎΡ‚ английского primitive), Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. Они ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π½Π° Ρ‚Ρ€ΠΈ ΠΏΠΎΠ΄Π³Ρ€ΡƒΠΏΠΏΡ‹:


* цСлочислСнныС

- byte

- short

- int

- long

- char (Ρ‚Π°ΠΊΠΆΠ΅ являСтся цСлочислСнным Ρ‚ΠΈΠΏΠΎΠΌ)

* Π΄Ρ€ΠΎΠ±Π½Ρ‹Π΅

- float

- double

* Π±ΡƒΠ»Π΅Π²Ρ‹Π΅

- boolean


Π’Ρ‚ΠΎΡ€ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅, ΠΈΠ»ΠΈ ссылочныС (ΠΎΡ‚ английского reference), Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ всС классы, интСрфСйсы ΠΈ массивы. Π’ стандартных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ… ΠΏΠ΅Ρ€Π²Ρ‹Ρ… вСрсий Java Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ нСсколько сот классов ΠΈ интСрфСйсов, сСйчас ΠΈΡ… ΡƒΠΆΠ΅ тысячи. ΠšΡ€ΠΎΠΌΠ΅ стандартных, написаны ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ классы ΠΈ интСрфСйсы, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Π»ΡŽΠ±ΡƒΡŽ Java-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

Π˜Π»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ‰Π΅ всСго Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ для хранСния Π΄Π°Π½Π½Ρ‹Ρ…. Π›ΡŽΠ±Π°Ρ пСрСмСнная ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Ρ€ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… характСристики:


* имя;

* Ρ‚ΠΈΠΏ;

* Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.


Имя ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ позволяСт ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½Π΅ΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Π’ΠΈΠΏ описываСт, ΠΊΠ°ΠΊΠΈΠ΅ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ пСрСмСнная. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ – тСкущая Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°, хранящаяся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚.

Π Π°Π±ΠΎΡ‚Π° с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ всСгда начинаСтся с Π΅Π΅ объявлСния (declaration). ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя имя объявляСмой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Как Π±Ρ‹Π»ΠΎ сказано, Π² Java любая пСрСмСнная ΠΈΠΌΠ΅Π΅Ρ‚ строгий Ρ‚ΠΈΠΏ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ задаСтся ΠΏΡ€ΠΈ объявлСнии ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ мСняСтся. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½ΠΎ сразу (это называСтся ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ), Π° Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΠΎΡ‚Π»ΠΎΠΆΠΈΡ‚ΡŒ.

НСкоторыС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° int с ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΠΈ Π±Π΅Π· Ρ‚Π°ΠΊΠΎΠ²Ρ‹Ρ…:


int a;

int b = 0, c = 3+2;

int d = b+c;

int e = a = 5;


Из ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ константа, Π½ΠΎ ΠΈ арифмСтичСскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Иногда это Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ вычислСно Π²ΠΎ врСмя компиляции (Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠ°ΠΊ 3+2 ), Ρ‚ΠΎΠ³Π΄Π° компилятор сразу записываСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Иногда это дСйствиС откладываСтся Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, b+c ). Π’ послСднСм случаС нСскольким ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ присваиваСтся ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ лишь пСрвая ΠΈΠ· Π½ΠΈΡ… (Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π΅ ), ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΡƒΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ.

Π Π΅Π·ΡŽΠΌΠΈΡ€ΡƒΠ΅ΠΌ: объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ возмоТная инициализация ΠΏΡ€ΠΈ объявлСнии ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π‘Π½Π°Ρ‡Π°Π»Π° указываСтся Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π·Π°Ρ‚Π΅ΠΌ Π΅Π΅ имя ΠΈ, Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ константой ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, вычисляСмым Π²ΠΎ врСмя компиляции ΠΈΠ»ΠΈ исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ частности, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΠΆΠ΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. Π”Π°Π»Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π·Π°ΠΏΡΡ‚ΡƒΡŽ ΠΈ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ°.

ПослС объявлСния пСрСмСнная ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… выраТСниях, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ Π±Ρ€Π°Ρ‚ΡŒΡΡ Π΅Π΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’Π°ΠΊΠΆΠ΅ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ присваивания, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ это дСлалось Π² ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°Ρ….

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

ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ объявлСния final -ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:


final double pi=3.1415;


ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΈ ссылочныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ ΠΈ ссылочными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΏΡ€ΠΈΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ, Π° Π·Π°Ρ‚Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… измСняСтся. Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ со Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ?

Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ простой Ρ‚ΠΈΠΏ int: